CommentCaMarche
Recherche
Posez votre question Signaler

VBA Excel : Comparaison de cellules et BDD

clementt - Dernière réponse le 18 avril 2012 à 14:02
Bonjour,
Je suis débutant sur VBA et j'ai besoin de votre aide (comme beaucoup de gens qui postent dans cette section).
Le problème est le suivant:
J'ai sur une feuille "Ecran_Consultation" deux cellules O2, P2, et je veux les comparer à une base de données présente sur une autre feuille portant le nom de "BDD"
Si les deux cellules existent dans la BDD sur une même ligne (dans les colonnes A et C), je les copie dans uns troisième feuille, qui s'appelle "Mise_en_forme".
Je pense avoir deux problèmes:
- le premier est dans la comparaison des cellules, je n'arrive pas à faire en sorte que celà fonctionne.
- Le deuxième est dans la boucle, je ne suis pas certain qu'elle ratisse l'ensemble de la feuille "BDD"
Voici le code:
Sub Bouton_Consultation_TEST()
Dim Source As Range
Dim Destination As Range
Dim DernLigne As Long
Dim TEST1 As Range
Dim TEST2 As Range
Dim TEST11 As Range
Dim TEST22 As Range
Dim i As Integer
DernLigne = Sheets("BDD").Range("A65536").End(xlUp).Row
Set TEST1 = Sheets("Ecran_Consultation").Range("O2")
Set TEST2 = Sheets("Ecran_Consultation").Range("P2")
For i = 2 To DernLigne = Sheets("BDD").Range("A65536").End(xlUp).Row
Set TEST11 = Sheets("BDD").Range("A" & i)
Set TEST22 = Sheets("BDD").Range("C" & i)
If TEST1.Value = TEST11.Value Then
If TEST2.Value = TEST22.Value Then
Set Source = TEST11 'Définition de la plage à copier
Set Destination = Sheets("Mise_en_forme").Range("A1")
Source.Copy
Destination.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Set Source = TEST22
Set Destination = Sheets("Mise_en_forme").Range("B1")
Source.Copy
Destination.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End If
Next
End Sub
Merci!
Cleément
Lire la suite 
Réponse
+0
moins plus
Bonjour,

voici comment j'écrirai la boucle For

For i = 2 To DernLigne
   Set TEST11 = Sheets("BDD").Range("A" & i) 
   Set TEST22 = Sheets("BDD").Range("C" & i) 
   If TEST1.Value = TEST11.Value Then 
      If TEST2.Value = TEST22.Value Then 
         Set Source = TEST11 'Définition de la plage à copier 
         Set Destination = Sheets("Mise_en_forme").Range("A1") 
         Destination.Value = Source.Value
         Set Source = TEST22 
         Set Destination = Sheets("Mise_en_forme").Range("B1") 
         Destination.Value = Source.Value
      End If 
   End If 
Next 


A+.
Ajouter un commentaire
Ce document intitulé «  VBA Excel : Comparaison de cellules et BDD  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.