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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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