Rechercher l'adresse d'une cellule

Bonjour,

Pour les besoins de mon programme VBA, je cherche à trouver l'adresse d'une cellule afin d'utiliser cette dernière.

Dans le fichier joint en exemple, (feuille 'Archives') j'ai une colonne "reçu ?". J'aimerais qu'en fonction du numéro de commande, le programme m'indique les coordonnées de la cellule à compléter se trouvant dans la colonne "reçu ?".

Par exemple : je cherche la commande 1/11 => le programme doit m'indiquer que la cellule à compléter est "C5".

J'ai essayé par différents moyens (EQUIV / ADRESSE / CHERCHE ....) mais je n'arrive pas à faire remonter les bonnes coordonnées.

Merci d'avance pour vos lumières.

Je reste à disposition au besoin.

Bien cordialement,

Baptiste

Bonjour,

Pas de rapport avec VBA ici. La formule que tu cherches peut être la suivante :

=ADRESSE(EQUIV($C$2;Archives!$A$1:$A$18;0);3;4;1)

Bonjour,

Quel rapport avec VBA ?

Peut-être :

Bonjour,

Merci pour vos réponses.

En fait dans mon fichier final, j'ai un formulaire qui permettra à l'utilisateur de compléter la colonne "reçu ?" en fonction du numéro de commande sélectionné.

Je cherche une formule qui me permettra d'indiquer à ce formulaire dans quelle cellule mettre l'information complétée par l'utilisateur.

Par écrit cela donne :

- L'utilisateur sélectionne la commande '9/11'

- La cellule à compléter correspond à 'C13'

Ainsi je peux récupérer C13 (que j'aurai stocké dans une variable) pour indiquer à mon formulaire (par exemple) :

Feuil1.Range("C13") = Textbox1

Merci d'avance pour votre aide,

Baptiste

Salut Horusbk, ça faisait un bout de temps, dis donc...
Salut les as,

mais, si, bien sûr, en VBA...

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, [C2]) Is Nothing Then _
    [C3].Resize(1, 3) = "": _
    If [C2] <> "" Then _
        Set rCel = Worksheets("Archives").Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues): _
        [C3].Resize(1, 3) = Array(Replace(rCel.Offset(0, 2).Address, "$", ""), CDate(rCel.Offset(0, 1)), IIf(rCel.Offset(0, 2) = "", "?", rCel.Offset(0, 2)))
'
Application.EnableEvents = True
'
End Sub


A+

Bonjour curulis57 :)

Effectivement cela faisait longtemps !

Si je veux uniquement la référence de la cellule, c'est bien cette partie de code que je dois garder ?

Par contre ça duplique la référence de la cellule sur les cellules C3 / D3 / E3 (comment puis-je faire pour que ça soit uniquement en C3 ?)

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, [C2]) Is Nothing Then _
    [C3].Resize(1, 3) = "": _
    If [C2] <> "" Then _
        Set rCel = Worksheets("Archives").Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues): _
        [C3].Resize(1, 3) = Array(Replace(rCel.Offset(0, 2).Address, "$", ""))
'
Application.EnableEvents = True
'
End Sub

Merci d'avance,

Horusbk

Salut Horusbk,

pouvons-nous avoir ce formulaire, histoire de savoir comment tu obtiens la référence de la commande ?
Sauf erreur, pour moi, pas besoin de stocker cette adresse dans une variable..


A+

Bonjour curulis57,

Navré de cette réponse tardive, j'ai eu beaucoup de travail ces derniers jours...

Voici le fichier avec le formulaire, j'ai réexpliqué mon problème dans le classeur.

Merci de votre aide et à bientôt,

Baptiste

5horusbk-form.xlsm (30.08 Ko)

Salut Horusbk,

je ne sais évidemment pas comment tu utilises ton fichier mais l'USF n'est absolument pas utile dès lors que tu as tes deux listes de validation, en [C2:C3] ou ailleurs...

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, [C2]) Is Nothing Then _
    [C3] = "": _
    If [C2] <> "" Then _
        Set rCel = Worksheets("Archives").Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues): _
        [C3] = IIf(rCel.Offset(0, 2) = "", "?", rCel.Offset(0, 2))
'
If Not Intersect(Target, [C3]) Is Nothing Then _
    If [C2] <> "" And [C3] <> "" Then Worksheets("Archives").Columns(1).Find(what:=[C2], lookat:=xlWhole, LookIn:=xlValues).Offset(0, 2) = [C3]
'
Application.EnableEvents = True
'
End Sub

Si tu tiens à utiliser l'USF, dis-le moi et on arrangera ça !

6horusbk-form.xlsm (30.27 Ko)


A+

Bonsoir curulis57,

Je trouve que ta solution est un excellent compromis. Je vais l'adopter !

Merci encore maintenant je vais essayer de l'adapter à mon fichier final.

Horusbk

Rechercher des sujets similaires à "rechercher adresse"