Combiner find et offset

Combiner find et offset Vba excel : utilisation de .Find et Offset (Résolu) » Forum - VB / VBA Fonction FIND en VBA et Offset [Résolu] » Forum - Bureautique Find my order (Résolu) » Forum - Logiciels Find grep (Résolu) » Forum - Linux / Unix Vba find » Conseils pratiques - Visual Basic

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.

Forum

Combiner find et offset Vba excel : utilisation de .Find et Offset (Résolu) » Forum - VB / VBA Fonction FIND en VBA et Offset [Résolu] » Forum - Bureautique Find my order (Résolu) » Forum - Logiciels Find grep (Résolu) » Forum - Linux / Unix Vba find » Conseils pratiques - Visual Basic

Web: www.shapebootstrap.net

10 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Merci ThauTheme 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 25511 internautes ce mois-ci

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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...

Reply
réponses:
  • auteur

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

La foule en délire : Le fichier ! Le fichier !... Voir par exemple https://www.cjoint.com/

Reply
réponses:
  • auteur

    Effectivement, cela sera plus parlant
    https://www.cjoint.com/c/HJln4SV4b7J

  • auteur

    bah j'ai mis le fichier et je le remets : https://www.cjoint.com/c/HJln4SV4b7J

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

T'es gentil mais ça se trouve où ?

Reply
réponses:
  • auteur

    https://www.cjoint.com/c/HJln4SV4b7J

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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...

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed