Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Copie conditionnelle de données

  • Initiateur de la discussion Initiateur de la discussion CARL 31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.

 
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.
 
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…