copie macro muliticritère sur cellule non vide

sigma

XLDnaute Occasionnel
bonsoir à tous les acteurs du forum,

encore une fois j'ai besoin de vos lumières.

en feuille 1, j'ai 3 cellules :
B4 = un N°
B6 = le résultat d'une liste de validation prise sur la feuille 2
B8 = une date (jj/mm/aaaa)

en feuille 2
colonne A = ma miste de validation
le reste des colonnes = les mois

j'aimerai avoir une macro qui me permette de mettre dans une colonne mois de ma feuille 2 (en fonction de celui de ma cellule B8 de la feuille 1) le N° qui se trouve en B4.

jusqu'ici c'est déjà pas simple, mais rien n'empêche que la cellule de destination soit déjà renseignée, dans ce cas il ne faut pas l'effacer mais rajouter la nouvelle donnée à l'ancienne.

il y aurait il un moyen ?

merci à tous

[file name=essai_20050629185202.zip size=8815]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essai_20050629185202.zip[/file]
 

Pièces jointes

  • essai_20050629185202.zip
    8.6 KB · Affichages: 9

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Sigma, bonsoir le forum,

En pièce jointe ton fichier modifié.
[file name=Sigma.zip size=15403]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Sigma.zip[/file]
 

Pièces jointes

  • Sigma.zip
    15 KB · Affichages: 24
  • Sigma.zip
    15 KB · Affichages: 22
  • Sigma.zip
    15 KB · Affichages: 19

G.David

XLDnaute Impliqué
Salut Sigma
Robert j'tavions point vu
bon j'ai travaillé un petit truc j'vais pas l'fou... aux orties
Sub passe_num()
Application.ScreenUpdating = False ' evite le sintillement de l'ecran
Sheets(1).Select
t = Cells(8, 2).Value
t = Month(t) + 3
num = CStr(Cells(4, 2).Value)
cont = Cells(6, 2).Value
'test de la colonne pour identifier la valeur
Sheets(2).Select
For lg = 2 To 70
If Cells(lg, 1).Value = cont Then ' si la valeur outil ets trouve
Exit For ' on sort de la bouvle
End If
Next
Sheets(2).Select
If CStr(Cells(lg, t).Value) = '' Then ' test si la cellule de destination est vide
Else ' si non on ajoute un / et le contenu de cette cellule
num = num + '/' + CStr(Cells(lg, t).Value) ' on cree la chaine
End If
Cells(lg, t).Value = num 'on rempli la cellule
Sheets(1).Select ' retour à la page 1
End Sub
 

G.David

XLDnaute Impliqué
Robert tu es sur que la demande est une addition .perso j'ai compri ce truc comme une gestion de pret de materiel atelier . Gabarit 2B emprunter par l'operateur ayant le jeton 123 peut etre me gourre-je (j'aime assez cette inversion de sujet plus facile a ecrire qu'a dire)
Cordialement
G.David
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir le fil, bonsoir le forum,

Ben non G.David, je ne suis sûr de rien...

jusqu'ici c'est déjà pas simple, mais rien n'empêche que la cellule de destination soit déjà renseignée, dans ce cas il ne faut pas l'effacer mais rajouter la nouvelle donnée à l'ancienne.

C'est vrai que maintenant le doute m'habite ! Mais finalement nous avons en gros la même approche sauf que j'ai utilisé la methode Find plutôt qu'une boucle pour rechercher B6. Donc tant mieux pour Sigma qui a les deux propositions. Il n'aura plus qu'à nous dire quelle était sa pensée... et un petit merci.
 

sigma

XLDnaute Occasionnel
Robert, G.David, le forum

bonjour a tous,

merci à vous 2 (pas petit, juste sincère).

effectivement c'est G.David qui a raison par 'rajouter la nouvelle donnée à l'ancienne' je ne voulais pas dire ajouter au sens littéral mais bien ajouter la seconde valeur derrière la première.

je vais tester vos propositions dans la matinée et je vous tiens au courant quoiqu'il arrive

A+
 

sigma

XLDnaute Occasionnel
re,

j'ai finalement choisi le modèle de G.David, c'est exactement ce qu'il me fallait mais il me reste encore un problème.

j'ai copié le formule dans le module 4
j'aimerai que lorsque je clique sur mon bouton vert (clic 2) :

1 il m'ouvre un USF avec un code d'entrée (ça c'est OK)
2 qu'il prenne en compte ensuite mon module 4, qu'il enregistre ce classeur vers un chemin déterminé à l'avance et qu'à chaque enregistrement il écrase le précédent.

en effet si le modèle fonctionne lorsque je l'associe avec un bonton simple, je n'arrive pas à le faire fonctionner après l'USF.

je joint le fichier entier pour plus de compréhension

merci [file name=sigma_20050630110758.zip size=31969]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/sigma_20050630110758.zip[/file]
 

Pièces jointes

  • sigma_20050630110758.zip
    31.2 KB · Affichages: 15

G.David

XLDnaute Impliqué
Je regardes ça ce soir par contre il ne vaut mieux ne pas écraser le fichier mais le modifier .il reste que si l'interpretation d'un gestion de pret est exat il faudra egalement prevoir le rendu de l'outil .A moins que le retrait ne soit a fond perdu
Cordialement
G.David
 

sigma

XLDnaute Occasionnel
re,

merci G.David tu as tout compris, le retrait est à fond perdu.


j'ai réussi à le faire fonctionner avec le bouton de l'usf mais je n'ai toujours pas trouver le moyen d'écraser le fichier précédent par le nouveau, j'utilise ActiveWorkbook.SaveAs Filename:='' et bien evidemment il me répète à chaque fois qu'un fichier identiquement nommé existe.

existe t'il une ligne de code qui annule et remplace ?

merci
 

G.David

XLDnaute Impliqué
Je reviens
pour ta demande de sauvegarde il faut désactiver le message d'alerte

Application.DisplayAlerts = False
ActiveWorkbook.save
remet les alert a true une fois l'enregistrement terminé
je n'ai pas encor regardé scette histoire d'USF
Cordialement
G.David
 

G.David

XLDnaute Impliqué
J'avais pas tout suivi
pour le module 4
'Sauve le classeur vers chemin déterminé
ChDir 'D:\\FAUCHARD\\IMS\\Production' ' determine le repertoir par défaut
ActiveWorkbook.SaveAs filname:='Récapitulatif.xls' là tu oubliais le filname:='mon_dossier.xls' une syntax error
Cordialement
G.DAvid
 

Discussions similaires

Réponses
3
Affichages
299

Statistiques des forums

Discussions
312 276
Messages
2 086 713
Membres
103 377
dernier inscrit
fredy45