XL 2016 Copie conditionnelle de données

CARL 31

XLDnaute Nouveau
Bonjour à tous,

Les discussions concernant la copie conditionnelle sont nombreuses mais je ne trouve pas la réponse à ma question.

J'ai des données à copier de mon fichier "source" vers mon fichier "destination" si le libellé est identique
(tailles réelles, 2 000 lignes dans le fichier source, 5 000 dans le fichier destination, d'où le besoin d'automatisation).

Avez-vous une solution en VBA ?
Merci d'avance.

upload_2018-3-1_17-33-15.png
 

gosselien

XLDnaute Barbatruc
Bonjour,

je n'ai pas le temps aujourd'hui et d'autres passeront lire ton post, mais je pense que si tes fichiers se présentent comme ça (avec les date en ligne) tu n'auras pas la facilité de faire des TCD ensuite qui résument et permettent des stat à la fin des l'année (par ex) :)
Perso, je mettrais les dates dans une seule colonne (si tu as le choix bien sur)
ps: une copie anonymisé viendrait à point et non un dessin ou copie écran ...
P.
 

CARL 31

XLDnaute Nouveau
Bonjour à tous,

Les discussions concernant la copie conditionnelle sont nombreuses mais je ne trouve pas la réponse à ma question.

J'ai des données à copier de mon fichier "source" vers mon fichier "destination" si le libellé est identique
(tailles réelles, 2 000 lignes dans le fichier source, 5 000 dans le fichier destination, d'où le besoin d'automatisation).

Avez-vous une solution en VBA ?
Merci d'avance.

Regarde la pièce jointe 1007311
 

CARL 31

XLDnaute Nouveau
Après enquête : la solution est la suivante :

Sub COPIECHAMP()
Workbooks.Open Filename:="FICHIER D'ORIGINE", _
UpdateLinks:=0
Workbooks.Open Filename:="FICHIER DE DESTINATION" _
, UpdateLinks:=0
'IMPORTANT saisir les rang des colonnes à copier avant de lancer la macro'

For i = 2 To 200
'détermination de la zone d'origine de ligne 2 à la ligne 200'
Workbooks("ORIGINE.xlsx").Activate
Libelle = Cells(i, 9).Value
'cellule de test en colonne i =9 dans le fichier d'origine'

Workbooks("DESTINATION.xlsx").Activate
For j = 2 To 200
'j = variable dans le fichier destination, ici zone de test en colonne 9 aussi'
trouve = 0
If Cells(j, 9).Value = Libelle Then
trouve = j
Exit For
End If
Next
'copie les cellules des colonnes 10 à 21'
If trouve > 0 Then
Workbooks("ORIGINE.xlsx").Activate
Zone1 = Range(Cells(i, 10), Cells(i, 21)).Value

Workbooks("DESTINATION.xlsx").Activate
Range(Cells(j, 10), Cells(j, 21)).Value = Zone1
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 134
Membres
103 129
dernier inscrit
Atruc81500