HELP COPIER COLLER DES CELLULES SOUS CONDITION ENTRE 2 CLASSEURS

jennings92 Messages postés 4 Date d'inscription samedi 8 mai 2010 Statut Membre Dernière intervention 11 mai 2010 - 8 mai 2010 à 14:23
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 - 11 mai 2010 à 14:41
Bonjour à tous,
J'ai besoin de mettre en place une macro qui permet de recopier les données de la colonne u du classeur B vers le classeur A (à la colonne Ap), à chaque fois qu'il retrouvera la ref du classeur A ds le classeur B. Je bloque au niveau du code. quelqu'un pourrait il m'aider?
Voici le code que j'ai essayé de mettre en place.
Sub contrepartie()
Dim i As Integer
Dim j As Integer
i = 2
Worksheets("rappro det").Activate

For i = 2 To 100
If ThisWorkbook.Worksheets("rappro det").Cells(i, 5).Value = ThisWorkbook.Worksheets("test").Cells(i, 5).Value Then
Worksheets("test").Range("e" & i).Copy
Worksheets("rappro det").Select
Worksheets("rappro det").Cells(j, 42).Select
ActiveSheet.Paste
j = j + 1
End If
Next i
End Sub

Merci d'avance pour votre aide.....

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 mai 2010 à 16:37
Salut
Et quel est ton problème ?

Si tu dois copier une cellule d'une feuille vers une autre cellule d'une autre feuille, pourquoi passer par Copy ?
Je pense que ceci est plus direct (à tester)
Worksheets("rappro det").Cells(j, 42) = Worksheets("test").Range("e" & i).Value
ou même
Worksheets("rappro det").Cells(j, 42) = Worksheets("test").Cells(i, 5).Value


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 mai 2010 à 16:38
Oups
Tu parles de classeur A et B
De classeur ou de feuille ?
Cela fait une grosse différence
0
jennings92 Messages postés 4 Date d'inscription samedi 8 mai 2010 Statut Membre Dernière intervention 11 mai 2010
10 mai 2010 à 10:33
je dois en effet recopier les cellules du classeurs B ("test") vers le classeur A ("rappro det") en fonction de la réference inscrite dans la colonne 5 des 2 classeurs.
J'ai repris ton code ci-dessous mais il bug :

Worksheets("rappro det").Cells(j, 42) = Worksheets("test").Range("e" & i).Value

Merci pour ton aide....
0
jennings92 Messages postés 4 Date d'inscription samedi 8 mai 2010 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 07:01
quelqu'un pourrait m'aider??????????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
11 mai 2010 à 08:48
Quand tu travailles sur deux classeurs, il faut préciser la référence du classeur

Workbooks("Classeur A.xls").Worksheets("rappro det").Cells(j, 42).value = Workbooks("Classeur B.xls").Worksheets("test").Range("e" & i).Value 


Ca, c'est pour copier la valeur d'une cellule dans une autre.
Tu n'as plus qu'à écrire une boucle qui défile ta colonne de référence, avec la ligne en paramètre. En fonction de son contenu, tu déclenches ou non la copie de la cellule.

Molenn
0
jennings92 Messages postés 4 Date d'inscription samedi 8 mai 2010 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 09:48
Excusez moi je me suis mal exprimé. il s'agirait de recopier les cellules d'une feuille à une autre ( et non d'un classeur à un autre). j'ai mis en place une boucle ( for... next ) comme indiqué plus haut, mais le code bug à l'intérieur du code.
j'ai beau reprendre vos différents code, ça bug ; et je ne comprend pas pourquoi car ça m'a l'air d'être correct....
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
11 mai 2010 à 14:40
Ben Jack t'a déjà tout donné pourtant.
Faudrait nous remontrer ton code qui ne fonctionne pas, nous donner le message d'erreur et la ligne sur laquelle ça buggue, etc ...

Mais sinon, en reprenant ton bout de code initial :
'Définition des variables
    Dim i As Integer
    Dim j As Integer
    
    'Initialisation des variables
    j = 2   'Première ligne où reporter les données dans l'onglet "rappro det"
    
    'Boucle de défilement de l'onglet "test"
    For i = 2 To 100
        If Worksheets("test").Cells(i, 5).Value = Worksheets("rappro det").Cells(i, 5).Value Then
            Worksheets("rappro det").Cells(j, 42).Value = Worksheets("test").Cells(i, 5).Value
            j = j + 1
        End If


Molenn
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
11 mai 2010 à 14:41
Ah petit pb de copier coller que tu auras rectifié :

Next i

à la fin :p

Molenn
0
Rejoignez-nous