Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trouver la position d'une cellule contenant la chaine de caractère recherchée

Trashboy666

XLDnaute Nouveau
Bonjour à tous!

J'ai trouvé beaucoup de sujet sur le moyen de trouver une chaine de caractère dans une cellule, mais pas de trouver une cellule contenant la chaine de caractère recherchée.

Voici mon besoin :

L'utilisateur choisi dans un menu déroulant un mot.
Dans un autre onglet (le 3eme), il y a la liste des mots qu'il peut choisir (colonne A), avec leur identifiant correspondant dans la colonne B.

Exemple:

COL-A COL-B

Jean 1J87
Albert 58R9
Bob 78ET
etc...

Je voudrai pouvoir, en VBA, récupérer la position du mot qu'il a choisi dans la première feuille afin de récupérer son identifiant correspondant dans la colonne B de la 3eme feuille.

En algo ça donnerait :

(Position x;y de la chaine de caractère dans feuille3) = recherche de la position dans colonne A de la feuille 3 de (chaine de caractère sélectionnée dans feuille 1)
(identifiant de la chaine de caractère) = (position x;y de la chaine de caractère dans feuille3) + (0;1)

Mais à part rechercher_champs, dont je ne comprend pas la manipulation, je n'ai rien trouvé qui puisse faire cela.
Il y a une contrainte :
- la liste sera appelée à évoluer (mais restera toujours dans la colonne A de la feuille3 et chaque mot aura son identifiant associé)
Et une facilité :
- les chaines de caractère étant sélectionnée dans un menu déroulant défini par la colonne A de la feuille3, il n'y a pas d'édition manuelle du menu déroulant possible. donc c'est une recherche de chaine de caractère pleine, et pas partielle. Il ne peut y avoir qu'un seul résultat.

PS : est-il possible de prendre en compte les espaces et les accents? ou on reste sur un seul mot pour plus de facilité?

Avez-vous une idée à me soumettre?

Merci à tous d'avance!!
 

Dull

XLDnaute Barbatruc
Re : Trouver la position d'une cellule contenant la chaine de caractère recherchée

Salut le Fil

Pas trop compris non plus mais juste pour mettre une autre proposition à celle de Dranreb qui fait normalement la même chose

Code:
Option Explicit

Private Sub CommandButton1_Click()
Dim C As Range
Set C = Sheets("ID").Range("liste").Find(What:=[A1])
If Not C Is Nothing Then MsgBox C.Offset(, 1)
End Sub

A voir si c'est plus facile à intégrer
Bonne Journée
 

Discussions similaires

Réponses
20
Affichages
663
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…