Recherche d'une valeur dans une colonne VBA
toroto
-
chico95 -
chico95 -
Bonjour,
Voici mon petit problème.
Je débute en vba et je cherche à faire quelque chose qui me semblait tout simple.
Dans la colonne A j'ai des valeurs et je souhaite vérifier si j'ai les mêmes valeurs dans la colonne B. Si je n'ai pas les mêmes valeurs dans B, j'écris les valeurs qui diffère dans la colonne C.
J'ai fait des recherches sur le net et j'ai lancé l'enregistreur de macro.
Voila, au final, à quoi j'arrive:
Thisbook = ActiveWorkbook.Name
i = 1 'pour les lignes
While Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i) <> ""
valeur_compare = Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i).Value
If valeur_compare <> Columns("B:B").Select Then
Workbooks(Thisbook).Sheets("Feuil1").Range("C" & i) = valeur_compare
End If
i = i + 1
Wend
Le problème est que dans l'état il m'écrit dans la colonne C les mêmes valeurs que dans la colonne A.
Avez-vous une idée à me proposer ?
Merci
Voici mon petit problème.
Je débute en vba et je cherche à faire quelque chose qui me semblait tout simple.
Dans la colonne A j'ai des valeurs et je souhaite vérifier si j'ai les mêmes valeurs dans la colonne B. Si je n'ai pas les mêmes valeurs dans B, j'écris les valeurs qui diffère dans la colonne C.
J'ai fait des recherches sur le net et j'ai lancé l'enregistreur de macro.
Voila, au final, à quoi j'arrive:
Thisbook = ActiveWorkbook.Name
i = 1 'pour les lignes
While Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i) <> ""
valeur_compare = Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i).Value
If valeur_compare <> Columns("B:B").Select Then
Workbooks(Thisbook).Sheets("Feuil1").Range("C" & i) = valeur_compare
End If
i = i + 1
Wend
Le problème est que dans l'état il m'écrit dans la colonne C les mêmes valeurs que dans la colonne A.
Avez-vous une idée à me proposer ?
Merci
A voir également:
- Vba rechercher une valeur dans une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Rechercher ou saisir une url - Guide
- Colonne word - Guide
- Rechercher une chanson - Guide
4 réponses
tu fonctionne par lignes ou par colonnes ?
Car si c'est en ligne tu fais une boucle :
for (i=1 To 20) /*si tu as 20 lignes
If Cell(i, A) <> Cell(i, B) Then /*si A1 est différent de B1
Cell(i,C) = Cell(i, B) /*on affiche ce qu'il y a de différent dans la collone B1
End If
Next i
Car si c'est en ligne tu fais une boucle :
for (i=1 To 20) /*si tu as 20 lignes
If Cell(i, A) <> Cell(i, B) Then /*si A1 est différent de B1
Cell(i,C) = Cell(i, B) /*on affiche ce qu'il y a de différent dans la collone B1
End If
Next i
En fait, je souhaite prendre chaque valeur dans A(a1=4, a2=8, a3=9...) et vérifier si ces valeurs apparaissent dans toute la colonne B.
Car dans B, je n'ai pas de correspondance avec chaque ligne de la colonne A.
Par exemple, dans A1 je peux avoir 4 et je peux retrouver 4 dans B54.
Merci chico95, je vais essayer ta solution pour voir le résultat.
Car dans B, je n'ai pas de correspondance avec chaque ligne de la colonne A.
Par exemple, dans A1 je peux avoir 4 et je peux retrouver 4 dans B54.
Merci chico95, je vais essayer ta solution pour voir le résultat.
J'ai essayé la solution de chico95 mais malheureusement, il ne me donne pas le résultat attendu.
Une autre idée ?
Merci
Une autre idée ?
Merci
euh...lol essaye ça !
'pour le nombre de lignes mais le assez haut pour pas être embeté !
For ( a = 1 To 500 )
For ( b = 1 To 500 )
If Cell(a, A) <> Cell(b, B) Then
Cell(a, C) = Cell(a , C) & "," & " " & Cell(b, B) 'on affiche ce qu'il y avait de different dans la colonne C, le tout séparés par des virgules !
End If
Next b
Next a
'pour le nombre de lignes mais le assez haut pour pas être embeté !
For ( a = 1 To 500 )
For ( b = 1 To 500 )
If Cell(a, A) <> Cell(b, B) Then
Cell(a, C) = Cell(a , C) & "," & " " & Cell(b, B) 'on affiche ce qu'il y avait de different dans la colonne C, le tout séparés par des virgules !
End If
Next b
Next a