[VBA] Récupérer la valeur d'une cellule après une recherche
Bonjour à tous,
Je suis assez peu expérimentée en VBA mais j'arrive d'habitude à bricoler quelques petites macros qui m'aident au quotidien.
Mais là, je bloque sur une chose assez banale, j'ai passé deux soirées dessus et je ne comprends pas ce qui cloche dans mon code.
Ma macro doit chercher une valeur dans la colonne A de mon tableau (un code postal) et placer dans la variable ville la valeur de la cellule B de la même ligne (la ville correspondante).
Ma feuille contient 37193 lignes (eh oui il y a beaucoup de villes en France).
Pour tester les valeurs, j'ai écrit le petit programme suivant qui fonctionne très bien:
(dans cet exemple admettons que je cherche le code postal 90000)
Code:
1 2 3 4 5
| With Worksheets("CP").Range("A2:A39173")
Set codep = .Find("90000", LookIn:=xlValues)
MsgBox "Ligne: " & codep.Row
Msgbox "Colonne: " & codep.Column + 1
End With |
Msgbox me rapporte bien la ligne 31178 (juste) et la colonne 2 (juste puisque je me place immédiatement dans la colonne qui contient les noms des villes).
Mais quand je veux stocker les données de la cellule, là ça ne fonctionne plus:
Code:
1 2 3 4
| With Worksheets("CP").Range("A2:A39173")
Set codep = .Find("90000", LookIn:=xlValues)
ville = Cells(codep.Row, codep.Column + 1).Value
End With |
Et là >>> ma variable reste désespérément vide... Aucun message d'erreur.
Pour continuer les tests j'ai demandé à Excel de sélectionner la cellule demandée:
Code:
Cells(codep.Row, codep.Column + 1).Select
et j'ai cette fois une erreur d'exécution 1004 : la méthode Select de la classe Range a échoué.
Je n'arrive pas à comprendre ce que je fais de travers...
Merci de m'avoir lue, et merci d'avance pour votre aide :)
Bien cordialement