OVH Cloud OVH Cloud

[aïïï] utiliser "find" ou "match" .... difficultés...

5 réponses
Avatar
Alfred WALLACE
Bonsoir,

J'ai une "LISTE_DES_CHAMPS" dans une feuille "PARAMETRES"

Dans une autre feuille ("base complete"), j'ai des colonnes avec la
premi=E8re ligne de toutes
ces colonnes nomm=E9e "LISTE_DE_TITRES"

je parcours toutes les cellules de "liste_des_champs", et, d=E8s que je
trouve
une valeur <> de "" alors, je souhaiterai selectionner la colonne de
"liste_de_titres"
afin d'appliquer un format de date particulier =E0 toute la colonne....
J'ai essay=E9 ce code, mais, je n'y arrive pas :


Set Plage =3D Range("LISTE_DES_CHAMPS")
For Each c In Plage

Sheets("base compl=E8te").Select :
Range("LISTE_DE_TITRES").Select

val_de_test =3D c.Offset(0, 2).Value <- ceci me trouve bien les
valeurs cherch=E9es

if val_de_test <> "" then

Position =3D Application.Match(val_de_test,
["LISTE_DE_TITRES"], 0)
oubien
Set Rg =3D ["LISTE_DE_TITRES"].Find(val_de_test)

Range(Rg.adress).Select <<---- ceci ne marche pas, je
voudrais selectionner le
lieu ou se
trouve la val_de_test
ActiveCell.EntireColumn.Select
Selection.NumberFormat =3D Range("FORMAT_DATES_APPLI").Value

end if
=20
Next c

5 réponses

Avatar
Daniel
Bonjour.
Utilise :
Position = Application.Match(val_de_test, Range("LISTE_DE_TITRES"), 0)
Set rg = Range("LISTE_DE_TITRES").Find(val_de_test)
Range(rg.Address).Select
Cordialement.
Daniel
"Alfred WALLACE" a écrit dans le message de news:

Bonsoir,

J'ai une "LISTE_DES_CHAMPS" dans une feuille "PARAMETRES"

Dans une autre feuille ("base complete"), j'ai des colonnes avec la
première ligne de toutes
ces colonnes nommée "LISTE_DE_TITRES"

je parcours toutes les cellules de "liste_des_champs", et, dès que je
trouve
une valeur <> de "" alors, je souhaiterai selectionner la colonne de
"liste_de_titres"
afin d'appliquer un format de date particulier à toute la colonne....
J'ai essayé ce code, mais, je n'y arrive pas :


Set Plage = Range("LISTE_DES_CHAMPS")
For Each c In Plage

Sheets("base complète").Select :
Range("LISTE_DE_TITRES").Select

val_de_test = c.Offset(0, 2).Value <- ceci me trouve bien les
valeurs cherchées

if val_de_test <> "" then

Position = Application.Match(val_de_test,
["LISTE_DE_TITRES"], 0)
oubien
Set Rg = ["LISTE_DE_TITRES"].Find(val_de_test)

Range(Rg.adress).Select <<---- ceci ne marche pas, je
voudrais selectionner le
lieu ou se
trouve la val_de_test
ActiveCell.EntireColumn.Select
Selection.NumberFormat = Range("FORMAT_DATES_APPLI").Value

end if

Next c
Avatar
G.W.
Bonsoir,

Position = Application.Match(val_de_test, Range("LISTE_DE_TITRES"), 0)
Columns(Position).EntireColumn.NumberFormat Range("FORMAT_DATES_APPLI").Value
'ou
'Rg = Range("LISTE_DE_TITRES").Find(val_de_test).Address
'Range(Rg).EntireColumn.NumberFormat Range("FORMAT_DATES_APPLI").Value

devrait fonctionner

GW

"Alfred WALLACE" a écrit dans le message news:

Bonsoir,

J'ai une "LISTE_DES_CHAMPS" dans une feuille "PARAMETRES"

Dans une autre feuille ("base complete"), j'ai des colonnes avec la
première ligne de toutes
ces colonnes nommée "LISTE_DE_TITRES"

je parcours toutes les cellules de "liste_des_champs", et, dès que je
trouve
une valeur <> de "" alors, je souhaiterai selectionner la colonne de
"liste_de_titres"
afin d'appliquer un format de date particulier à toute la colonne....
J'ai essayé ce code, mais, je n'y arrive pas :


Set Plage = Range("LISTE_DES_CHAMPS")
For Each c In Plage

Sheets("base complète").Select :
Range("LISTE_DE_TITRES").Select

val_de_test = c.Offset(0, 2).Value <- ceci me trouve bien les
valeurs cherchées

if val_de_test <> "" then

Position = Application.Match(val_de_test,
["LISTE_DE_TITRES"], 0)
oubien
Set Rg = ["LISTE_DE_TITRES"].Find(val_de_test)

Range(Rg.adress).Select <<---- ceci ne marche pas, je
voudrais selectionner le
lieu ou se
trouve la val_de_test
ActiveCell.EntireColumn.Select
Selection.NumberFormat = Range("FORMAT_DATES_APPLI").Value

end if

Next c
Avatar
Alfred Wallace
Bonjour.
Utilise :
Position = Application.Match(val_de_test, Range("LISTE_DE_TITRES"), 0)
Set rg = Range("LISTE_DE_TITRES").Find(val_de_test)
Range(rg.Address).Select
Cordialement.
Daniel



Bonsoir Daniel et merci (et à GW aussi) pour votre aide.

mais, en fait peux tu rapidement me dire la différence entre

Position = Application.Match(val_de_test, Range("LISTE_DE_TITRES"), 0)

et

Set rg = Range("LISTE_DE_TITRES").Find(val_de_test)


Merci

José

Avatar
Daniel
Bonjour.
La première instruction est l'équivalent de la fonction EQUIV; elle renvoie
la position de val_de_test dans
LISTE_DE_TITRES.
la seconde est l'équivalent de la commande Edition / Rechercher; elle
renvoie un objet rg (tu peux d'ailleurs écrire plus simplement la ligne
suivante :
rg.Select
Daniel
"Alfred Wallace" a écrit dans le message de news:
44ece0bb$0$857$
Bonjour.
Utilise :
Position = Application.Match(val_de_test, Range("LISTE_DE_TITRES"), 0)
Set rg = Range("LISTE_DE_TITRES").Find(val_de_test)
Range(rg.Address).Select
Cordialement.
Daniel



Bonsoir Daniel et merci (et à GW aussi) pour votre aide.

mais, en fait peux tu rapidement me dire la différence entre

Position = Application.Match(val_de_test, Range("LISTE_DE_TITRES"), 0)

et

Set rg = Range("LISTE_DE_TITRES").Find(val_de_test)


Merci

José



Avatar
Alfred WALLACE
Daniel wrote:
Bonjour.
La première instruction est l'équivalent de la fonction EQUIV; elle r envoie
la position de val_de_test dans
LISTE_DE_TITRES.
la seconde est l'équivalent de la commande Edition / Rechercher; elle
renvoie un objet rg (tu peux d'ailleurs écrire plus simplement la ligne
suivante :
rg.Select
Daniel


çà marche super ! (comme la tarte aux pommes d'ailleurs)

Merci.

José