[VBA Excel 2K] Comparaison
Résolu/Fermé
LeDénicheur
Messages postés
565
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
-
23 juil. 2009 à 10:12
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 - 24 juil. 2009 à 08:35
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 - 24 juil. 2009 à 08:35
A voir également:
- [VBA Excel 2K] Comparaison
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
8 réponses
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
23 juil. 2009 à 13:57
23 juil. 2009 à 13:57
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...
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
23 juil. 2009 à 14:00
23 juil. 2009 à 14:00
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"
LeDénicheur
Messages postés
565
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
362
23 juil. 2009 à 14:35
23 juil. 2009 à 14:35
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) ?
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
23 juil. 2009 à 14:43
23 juil. 2009 à 14:43
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
LeDénicheur
Messages postés
565
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
362
23 juil. 2009 à 14:48
23 juil. 2009 à 14:48
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
LeDénicheur
Messages postés
565
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
362
23 juil. 2009 à 15:04
23 juil. 2009 à 15:04
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 !
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
24 juil. 2009 à 08:33
24 juil. 2009 à 08:33
ok, J'ais pas dit que mon code était parfait, mais je pense qu il a le mérite de marcher et d etre assez simple. Apres, il faut l adapter à ce que tu veux en faire ;)
Au plaisir de t aider si tu as encore besoin ;)
Au plaisir de t aider si tu as encore besoin ;)
LeDénicheur
Messages postés
565
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
362
24 juil. 2009 à 08:35
24 juil. 2009 à 08:35
Alors ça pour marcher, il marche ! J'suis aux anges ^^