Combiner find et offset

Gipsy -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un peu le même problème.
Je voudrais aller chercher une valeur (combobox18, je précise que l'utilisateur ne PEUT PAS modifier combobox18, donc la valeur est forcément exacte) dans plusieurs colonnes différentes dans un classeur A (BDD Clients) et une fois la valeur trouvée, renvoyer la valeur de la colonne à sa droite dans une cellule d'un classeur B (BL).
Voici mon code (il est partiel) :

With Workbooks("BL.xlsx").Sheets("BL")
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String
Dim tel As String, mail As String

Valeur_Cherchee = ComboBox18.Value
PlageDeRecherche = Workbooks("BDD Clients.xls").Sheets("BD").Range("B2:X65536")
Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
tel = Range(Trouve.Address).Offset(, 1).Value
mail = Range(Trouve.Address).Offset(, 2).Value

.Range("D11") = tel 'tel du contact
.Range("D12") = mail 'mail du contact
End With

J'ai beau chercher sur les divers forums avec offset et find, je ne trouve rien dans mon cas.
A voir également:

6 réponses

ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour Gipsy, bonjour le forum,

Puisque tu as déclaré la variable Trouve de type Range le code correct serait :
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Dim tel As String, mail As String

Valeur_Cherchee = ComboBox18.Value
PlageDeRecherche = Workbooks("BDD Clients.xls").Sheets("BD").Range("B2:X65536")
Trouve = PlageDeRecherche.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
tel = Trouve.Offset(, 1).Value
mail = Trouve.Offset(, 2).Value
With Workbooks("BL.xlsx").Sheets("BL")
    .Range("D11") = tel 'tel du contact
    .Range("D12") = mail 'mail du contact
End With

1
Gipsy
 
Bonjour ThauTheme,

Je te remercie pour ta réactivité.
J'ai remplacé mon précédent code par le tien et je n'ai toujours rien d'affiché. Le fichier ne plante pas.
Penses-tu que l'erreur provienne d'ailleurs ?

Merci encore pour ton aide,
Gipsy.
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

Ton code était fonctionnel en effet mais il te faut le faire tourner pas à pas (avec la touche [F8] ) et mettre des espions sur les variables tel et mail. Si ces cellules sont vide le code fonctionne parfaitement mais D11 et D12 resteront vides...
0
Gipsy
 
N'y arrive pas non plus, quand je fais F8, il me renvoie sur mon uerform_initialize alors que ce code se trouve sur combobox1_change car ma combobox18 dépend de ce qui est inscrit dans la combobox1.

J'ai essayé une autre méthode par index, mais pareil, ça tourne mais c'est vide...
.Range("D11") = Application.WorksheetFunction.Index(ComboBox18.Value, 0, 1)

Range D11 est la cellule dans laquelle je veux inscrire la valeur de la colonne à droite de la valeur trouvée

Merci pour ton aide,
Gipsy
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
La foule en délire : Le fichier ! Le fichier !... Voir par exemple https://www.cjoint.com/
0
Gipsy
 
Effectivement, cela sera plus parlant
https://www.cjoint.com/c/HJln4SV4b7J
0
Gipsy
 
bah j'ai mis le fichier et je le remets : https://www.cjoint.com/c/HJln4SV4b7J
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
T'es gentil mais ça se trouve où ?
0
Gipsy
 
https://www.cjoint.com/c/HJln4SV4b7J
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Le fichier je l'ai ouvert mais j'ai fait une recherche dans le code et je n'ai pas trouvé ce que tu as mis dans ton premier post.
Mais si tu ne veux pas perdre de temps à m'expliquer où se trouve le code je ne vais pas, non plus perdre mon temps à t'aider...
0