1 réponse
Bonjour,
La méthode pour copier est certainement, en VBA, la plus facile. La syntaxe est elle même implicite :
Le tout en une seule ligne de code avec juste un espace entre Copy et la suite.
Il faut bien entendu que vos deux classeurs soient ouverts, sinon ça se complique considérablement...
A titre d'exemple, le code suivant boucle sur les lignes (de 1 à 10) du classeur 1 et si cette ligne contient "Absent" en colonne A alors la macro copie cette ligne et la colle dans le classeur 2 :
La méthode pour copier est certainement, en VBA, la plus facile. La syntaxe est elle même implicite :
Workbook(ClasseurSource.xls).Sheets(FeuilleSource).Range(Source).Copy Workbook(ClasseurDestination.xls)).Sheets(FeuilleDestination).Range(Destination)
Le tout en une seule ligne de code avec juste un espace entre Copy et la suite.
Il faut bien entendu que vos deux classeurs soient ouverts, sinon ça se complique considérablement...
A titre d'exemple, le code suivant boucle sur les lignes (de 1 à 10) du classeur 1 et si cette ligne contient "Absent" en colonne A alors la macro copie cette ligne et la colle dans le classeur 2 :
Sub CopiColleSiAbsent() Dim Lign As Integer For Lign = 1 To 10 'on boucle de la ligne 1 à 10 'Si on trouve Absent en colonne A de la feuille 1 du classeur1 Alors If Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A" & Lign) = "Absent" Then 'On copie la ligne vers le classeur 2, première ligne vide Workbooks("Classeur1.xls").Sheets("Feuil1").Rows(Lign).Copy Workbooks("Classeur2.xls").Sheets("Feuil2").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Offset(1, 0) 'fin du test End If 'Ligne suivante Next Lign End Sub