[déplacé VB.NET -> VBA] Comparer 2 colonnes puis copier une plage de cellule en

kazede28 Messages postés 2 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 22 février 2011 - 17 févr. 2011 à 11:17
kazede28 Messages postés 2 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 22 février 2011 - 22 févr. 2011 à 08:55
Bonjour à tous,

Je vous expose mon problème, je n'arrive pas à me lancer (je débute en vba).

J'ai une base de donnée à mettre à jour en fonction d'un autre fichier lui aussi mis à jour mais par quelqu'un d'autre.

En gros les choses se presentent de la manière suivante:

Fichier 1:

Colonnes A à G par exemple.

Fichier 2:
Colonne A à Z.

J'ai besoin de comparer les colonnes A du fichier 1 à la colonne A du fichier 2.

La ligne 1 de la colonne A du fichier 1 correspond à (exemple) "abcd".
J'ai besoin de retrouver cette valeur qui peut être sur n'importe qu'elle ligne de la colonne A du fichier 2.

Une fois la valeur "abcd" trouvée dans le fichier 2 en colonne A, j'ai besoin de copier ce qu'il y a dans les cellules H à Z de la ligne ou est trouvée "abcd" (dans le fichier 2) pour ensuite venir les copier en colonne H de mon fichier 1 (sur la bonne ligne bien sur).

Une fois l'opération terminée, je dois passer à la ligne 2 du fichier 1 prendre la valeur et à nouveau scanner la colonne A du fichier 2 pour la retrouver, puis pour copier a nouveau les valeurs correspondantes.

Voila.

J'espère avoir été clair dans mon explication, désolé si ce n'est pas le cas.

Merci d'avance.

Ps: Je ne cherche pas une solution toute faite, j'aime apprendre, me mettre sur la voie m'aiderait tout autant.

1 réponse

kazede28 Messages postés 2 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 22 février 2011
22 févr. 2011 à 08:55
Je vois que j'ai pas beaucoups de réponses...

J'ai essayé de me debrouiller et je suis arrivé a faire ça:

Sub test()
'
' test Macro
' Macro enregistrée le 21/02/2011 par a869143
'

Application.ScreenUpdating = False

Sheets("essai").Select
Dim C1 As Variant
Dim C2 As Variant
Dim toto As Range
Dim Compteur1 As Double
Dim Compteur2 As Double
Compteur1 = 0
Compteur2 = 0
For Each toto In Range("A2:A20")
If toto.Value <> "" Then Compteur1 = Compteur1 + 1
Next

C1 = Compteur1
Range("A2").Select
donnee1 = ActiveCell
Sheets("test").Select
Range("A1").Select
ActiveCell.Offset(1, 0).Select
While Compteur2 < Compteur1

If ActiveCell = donnee1 Then
Ligne = ActiveCell.Row
Range("B" & Ligne, "E" & Ligne).Select
Selection.Copy
Sheets("essai").Select
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -1).Select
donnee1 = ActiveCell
Sheets("test").Select
Range("A1").Select
ActiveCell.Offset(1, 0).Select
Compteur2 = Compteur2 + 1
Else
Sheets("essai").Select
ActiveCell.Offset(1, 0).Select
donnee1 = ActiveCell
Sheets("test").Select
Range("A1").Select
ActiveCell.Offset(1, 0).Select
Compteur2 = Compteur2 + 1
End If
Wend

Application.ScreenUpdating = True

End Sub

Seulement quand je fais un pas à pas détaillé, je vois que le problème, c'est qu'une fois que j'ai scanné ma première case sur ma feuille 2 je ne passe pas a la suivante...

Quelqu'un peut m'éclairer?
0
Rejoignez-nous