Aide language VBA!

Fermé
yassine_bha Messages postés 1 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 8 août 2011 - 8 août 2011 à 17:31
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 9 août 2011 à 08:18
Bonjour,

Mes amis je veux connaitre comment copier de cellules d'une feuille exel (entre deux variables) à une autre feuille d'un autre classeur à l'aide de language VBA !!!
Merci d'avance!

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
9 août 2011 à 08:18
Bonjour,
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
0