[VBA Excel 2K] Comparaison
Résolu
LeDénicheur
Messages postés
565
Date d'inscription
Statut
Membre
Dernière intervention
-
LeDénicheur Messages postés 565 Date d'inscription Statut Membre Dernière intervention -
LeDénicheur Messages postés 565 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [VBA Excel 2K] Comparaison
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
8 réponses
Salut
J'ai peut être une solution mais c'est un peu de la bidouille
Disons que tu compares ta deuxième colonne à ta première...
Dans un premier temps tu utilise une troisième colonne qui référence les cellules de la deuxième colonne qui ne sont pas dans la première:
For i = x to y
'x correspond au numéro de la première ligne utile de la deuxième colonne et y le numéro de la dernière
For j = w to z
'w correspond au numéro de la première ligne utile de la première colonne et z le numéro de la dernière
if Sheets("Nomdela feuille").cells(i,2)=Sheets("Nomdela feuille").cells(j,1) then
Sheets("Nomdela feuille").cells(i,3)=1
end if
next j
next i
Cette étape va définir toute les cellules qui existent dans les deux colonnes
ensuite tu recherche dans la troisième colonne les cellules vides et tu affiche une msg box signifiant l'abscence de ta valeur dans la liste:
Dim val as string
'On crée une variable val qui prend la valeur du contenu de la cellule (i,2)
for i = x to y
Val=Sheets("Nomdela feuille").cells(i,2).value
if Sheets("Nomdela feuille").cells(i,3)="" then
msg box(Val & "présent dans la deuxième colonne n'est pas dans la première")
end if
next i
Voilà, c'est un peu long et un peu tordu mais ça doit marché...
Tu troiuvera peut être plus court avec d'autres personnes...
J'ai peut être une solution mais c'est un peu de la bidouille
Disons que tu compares ta deuxième colonne à ta première...
Dans un premier temps tu utilise une troisième colonne qui référence les cellules de la deuxième colonne qui ne sont pas dans la première:
For i = x to y
'x correspond au numéro de la première ligne utile de la deuxième colonne et y le numéro de la dernière
For j = w to z
'w correspond au numéro de la première ligne utile de la première colonne et z le numéro de la dernière
if Sheets("Nomdela feuille").cells(i,2)=Sheets("Nomdela feuille").cells(j,1) then
Sheets("Nomdela feuille").cells(i,3)=1
end if
next j
next i
Cette étape va définir toute les cellules qui existent dans les deux colonnes
ensuite tu recherche dans la troisième colonne les cellules vides et tu affiche une msg box signifiant l'abscence de ta valeur dans la liste:
Dim val as string
'On crée une variable val qui prend la valeur du contenu de la cellule (i,2)
for i = x to y
Val=Sheets("Nomdela feuille").cells(i,2).value
if Sheets("Nomdela feuille").cells(i,3)="" then
msg box(Val & "présent dans la deuxième colonne n'est pas dans la première")
end if
next i
Voilà, c'est un peu long et un peu tordu mais ça doit marché...
Tu troiuvera peut être plus court avec d'autres personnes...
donc, disons que 1 2 3 4 5 est respectivement en A1 A2 A3 A4 A5 et 7 4 3 est en B1 B2 B3
ValeurNonComune = ""
B = 1
ValCherche = Worksheets("Feuil1").Cells(B, 2)
Do While ValCherche <> ""
With Worksheets("Feuil1").Range("a1:a500")
Set trouvé1 = .Find(ValCherche, LookIn:=xlValues)
If trouvé1 Is Nothing Then
ValeurNonComune = ValeurNonComune & ValCherche & ";"
End If
End With
B = B + 1
ValCherche = Worksheets("Feuil1").Cells(B, 2)
Loop
MsgBox Left(ValeurNonComune, Len(ValeurNonComune) - 1) & " introuvable"
ValeurNonComune = ""
B = 1
ValCherche = Worksheets("Feuil1").Cells(B, 2)
Do While ValCherche <> ""
With Worksheets("Feuil1").Range("a1:a500")
Set trouvé1 = .Find(ValCherche, LookIn:=xlValues)
If trouvé1 Is Nothing Then
ValeurNonComune = ValeurNonComune & ValCherche & ";"
End If
End With
B = B + 1
ValCherche = Worksheets("Feuil1").Cells(B, 2)
Loop
MsgBox Left(ValeurNonComune, Len(ValeurNonComune) - 1) & " introuvable"
Je comprends rien à ton code :'(
xlValues ? qu'est-ce ?
"Set" Qu'est-ce ?
Je dois remplacer "ValCherche et Valcommune" par quelque chose ?
Cell(b,2) => Qu'indique le "2" ?
Le B de B= B+1 à un rapport avec le B de Cell(B,2) ?
xlValues ? qu'est-ce ?
"Set" Qu'est-ce ?
Je dois remplacer "ValCherche et Valcommune" par quelque chose ?
Cell(b,2) => Qu'indique le "2" ?
Le B de B= B+1 à un rapport avec le B de Cell(B,2) ?
xlValues ? qu'est-ce ?
il va chercher la valeur de la cellule.. donc meme si c'est une formule, il prendra le resultat de cette formule
"Set" Qu'est-ce ?
Set me sert à affecter le résultat de l objet .find à trouvé1
Je dois remplacer "ValCherche et Valcommune" par quelque chose ?
Non il se débrouille tout seul
Cell(b,2) => Qu'indique le "2" ?
La 2ème colonne (en l occurrence B, mais tu peux donner un nom à cette colonne)
Le B de B= B+1 à un rapport avec le B de Cell(B,2) ?
ben oui, c'est la meme variable B.. elle sert à changer de ligne.. passer de B1 à B2...
il va chercher la valeur de la cellule.. donc meme si c'est une formule, il prendra le resultat de cette formule
"Set" Qu'est-ce ?
Set me sert à affecter le résultat de l objet .find à trouvé1
Je dois remplacer "ValCherche et Valcommune" par quelque chose ?
Non il se débrouille tout seul
Cell(b,2) => Qu'indique le "2" ?
La 2ème colonne (en l occurrence B, mais tu peux donner un nom à cette colonne)
Le B de B= B+1 à un rapport avec le B de Cell(B,2) ?
ben oui, c'est la meme variable B.. elle sert à changer de ligne.. passer de B1 à B2...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je retire ce que j'ai dis, j'ai supprimer deux lignes de codes que j'avais écris -_- indispensable
J'te dis si j'ai encore un soucis dans 2 min :p
Merci JJsteing
J'te dis si j'ai encore un soucis dans 2 min :p
Merci JJsteing
Je pense qu'il y a un soucis dans ton code, dans le cas ou "ValeurNonComune" est vide :
MsgBox Left(ValeurNonComune, Len(ValeurNonComune) - 1) & " introuvable" ne peut pas marcher.
Pour corriger ça, j'ai mis un "If ValeurNonComune <> "" Then" juste avant =)
Tout fonctionne comme je le voulais ! Merci !!! =) J'en apprends tous les jours avec toi !
MsgBox Left(ValeurNonComune, Len(ValeurNonComune) - 1) & " introuvable" ne peut pas marcher.
Pour corriger ça, j'ai mis un "If ValeurNonComune <> "" Then" juste avant =)
Tout fonctionne comme je le voulais ! Merci !!! =) J'en apprends tous les jours avec toi !