Comment utiliser la valeur renvoyée par un FIND comme un range?

Fermé
TOM - 25 nov. 2013 à 16:41
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 3 déc. 2013 à 18:24
Bonjour,
J'ai un problème pour utiliser comme je le souhaite la valeur renvoyée par le Find ci dessous ( dans une boucle for each):

Set result = RangeColonneMISEAJOUR.Find(What:=CellActiveTSUP.Value2, LookIn:=xlValues, LookAt:=xlWhole)

result est sensé être un objet "range" et pourtant la seule propriété que je peux appliquer au "result" est "result.Address" qui me donne une valeur de type "$A$2" (ses coordonnées quand je fais un MsgBox result.Address)
le resultat du FIND ne fais pas de result la cellule active de l'onglet par ailleurs.....
je souhaite appliqué un offset à partir de la cellule du "result" c'est pourquoi j'ai besoin du range du result en question..!!
est ce que quelqu'un vois une solution?
peut être une conversion de coordonnées "$A$2" en range est possible-> soit "result.Address" à convertir en range.........
Merci d'avance pour votre aide....

A voir également:

4 réponses

TOM411 Messages postés 2 Date d'inscription lundi 25 novembre 2013 Statut Membre Dernière intervention 28 novembre 2013
28 nov. 2013 à 14:35
Bonjour à tous..................je m'AUTO répond car j'ai trouver ma propre solution..
et je pense que cela pourra servir à d'autres................... :

Le but était donc d'exploiter le résultat d'un FIND comme un OBJET RANGE....
Pour se faire il est nécessaire de récupérer l'adresse de la cellule trouvée par le FIND
ex : Set result = RangeColonneMISEAJOUR.Find(What:=CellActiveTSUP.Value2)
AdressTSUP = result.Address

ensuite utiliser la technique ci dessous pour récupérer l'adresse sans le caractère $

TotalAdressTSUP = Replace(AdressTSUP, "$", "") ' suppression de la syntaxe $ dans l'adresse de la cellule

ensuite on défini ligne et colone de la cellule du résultat du FIND comme ci dessous :

ColonneTSUP = Left(TotalAdressTSUP, 1) ' Récupération du Digit String de l'adresse de la Colonne cellule
'MsgBox ColonneTSUP

LigneTSUP = Mid$(TotalAdressTSUP, 2) ' Récupération du Digit Integer de l'adresse de la Ligne cellule
'MsgBox LigneTSUP

ensuite :
Cells(LigneTSUP, ColonneTSUP) défini la cellule du RESULTAT du FIND sur laquelle nous pouvons par ewemple appliquer un OFFSET ou autre pour travailler avec un OBJET RANGE..............

VOILA...........................................
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
28 nov. 2013 à 15:08
Bonjour,

Tout cela me semble bien compliqué !
Set resultat = MaPlage.find(........
Le résultat de la recherche avec Find étant un objet range, tu peux connaitre directement
La ligne avec resultat.row
La colonne avec resultat.column
Et appliquer un décalage avec resultat.offset(x,y)

A+
0
Bonjour......j'ai bien lu le message précédent ...cependant les propriétés .Row et .Column ne passait pas pas sur le résultat du FIND....
je ne sais pas pourquoi......
ma méthode et plus complexe...mais je suis arrivé à mes fins....
si quelqu'un a une réponse je suis curieux...........
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
3 déc. 2013 à 18:24
Bonjour,

Avec un fichier exemple on pourrait sûrement trouver pourquoi.

A+
0