Nommer en VBA une cellule en fonction de son contenu

Le
Fredo(67)
Bonjour,

J'ai un tableau de plusieurs centaine de lignes.
Je présente ce tableau selon certain type de tri (tri sur le nom, tri sur=
le matricule, tri sur le chantier)

Je voudrais pouvoir nommer la cellule contenant le nom "ZAZA" (en lui donna=
nt le nom "N_ZaZa"

Bien évidemment je ne connais pas l'adresse de cette cellule, car elle ch=
ange en fonction du type de tri.

Voilà la syntaxe auquel j'ai pensé :

Suppression nom N_ZaZa
Recherche cellule contenant ZAZA
attribution du nom N_ZaZA

Mais je ne sais comment faire

lors de mes recherches j'ai trouvé et crée ces bouts de codes

Cells.Find(What:="ZAZA", After:=ActiveCell, LookIn:=xlFormulas, L=
ookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, Mat=
chCase:= _
False, SearchFormat:=False).Activate

et

ActiveWorkbook.Names.Add Name:="N_ZaZa", RefersToR1C1:="=Feuil1!R=
87C3"

Une idée ou une aide ?

Merci
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ThomThom63
Le #26032322
Bonjour,

Si mes souvernirs sont exacts, tu dois pouvoir utiliser la formule
INDIRECT, qui te permet de composer une référence que tu peux exploiter.

Cells.Find(What:=INDIRECT("N_ZaZa")...


Le 13/03/2014 09:40, Fredo(67) a écrit :
Bonjour,

J'ai un tableau de plusieurs centaine de lignes.
Je présente ce tableau selon certain type de tri (tri sur le nom, tri sur le matricule, tri sur le chantier)

Je voudrais pouvoir nommer la cellule contenant le nom "ZAZA" (en lui donnant le nom "N_ZaZa"

Bien évidemment je ne connais pas l'adresse de cette cellule, car elle change en fonction du type de tri.

Voilà la syntaxe auquel j'ai pensé :

Suppression nom N_ZaZa
Recherche cellule contenant ZAZA
attribution du nom N_ZaZA

Mais je ne sais comment faire

lors de mes recherches j'ai trouvé et crée ces bouts de codes

Cells.Find(What:="ZAZA", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Activate

et

ActiveWorkbook.Names.Add Name:="N_ZaZa", RefersToR1C1:="þuil1!R87C3"

Une idée ou une aide ?

Merci

Fredo(67)
Le #26032312
Voilà les résultats de mon travail


cela semble marcher, mais je suis sur qu'il y a plu ssimple

Sub Macro2()
Dim LiGNe
Dim CoLoNe
ActiveWorkbook.Names("N_ZaZa").Delete
Application.Goto Reference:="noms"
Cells.Find(What:="ZAZA", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNe xt, _
MatchCase:úlse, SearchFormat:úlse).Activate
LiGNe = ActiveCell.Row
CoLoNe = ActiveCell.Column
ActiveWorkbook.Names.Add Name:="N_ZaZa", RefersToR1C1:="þuil1!R" & LiGNe & "C" & CoLoNe


End Sub


Le jeudi 13 mars 2014 09:51:32 UTC+1, ThomThom63 a écrit :
Bonjour,



Si mes souvernirs sont exacts, tu dois pouvoir utiliser la formule

INDIRECT, qui te permet de composer une référence que tu peux exploit er.



Cells.Find(What:=INDIRECT("N_ZaZa")...





Le 13/03/2014 09:40, Fredo(67) a écrit :

> Bonjour,

>

> J'ai un tableau de plusieurs centaine de lignes.

> Je présente ce tableau selon certain type de tri (tri sur le nom, tri sur le matricule, tri sur le chantier)

>

> Je voudrais pouvoir nommer la cellule contenant le nom "ZAZA" (en lui d onnant le nom "N_ZaZa"

>

> Bien évidemment je ne connais pas l'adresse de cette cellule, car ell e change en fonction du type de tri.

>

> Voilà la syntaxe auquel j'ai pensé :

>

> Suppression nom N_ZaZa

> Recherche cellule contenant ZAZA

> attribution du nom N_ZaZA

>

> Mais je ne sais comment faire

>

> lors de mes recherches j'ai trouvé et crée ces bouts de codes

>

> Cells.Find(What:="ZAZA", After:¬tiveCell, LookIn:=xlFormul as, LookAt _

> :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext , MatchCase:= _

> False, SearchFormat:úlse).Activate

>

> et

>

> ActiveWorkbook.Names.Add Name:="N_ZaZa", RefersToR1C1:="þu il1!R87C3"

>

> Une idée ou une aide ?

>

> Merci

>
Publicité
Poster une réponse
Anonyme