VBA Condition si valeur non trouvée Cells.Fin

Fermé
Meg - 21 mai 2011 à 12:30
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 - 21 mai 2011 à 16:38
Bonjour,

Je débute avec les macros et j'aurais besoin de l'aide d'une âme charitable.

J'ai un tableau avec deux onglets. Le premier comporte un champ de recherche et un champ de résultat et le second onglet est en fait la liste de référence.
Je voudrais pouvoir taper un mot dans le champ de recherche de mon premier onglet, la recherche se fera sur le second onglet. Si le mot est trouvée, il reporte la valeur de la cellule d'à côté dans le champ résultat.

Jusque là tout va bien. Sauf que j'ai 2 soucis :

- La recherche se fait sur tout ou une partie de la cellule, ex si je tape Paul, il me trouvera Pauline et mettra alors le mauvais résultat.
Je voudrais que ce soit uniquement le champ exact.

- Et plus casse tête encore pour moi, lorsqu'il ne trouve pas du tout, je voudrais qu'il m'affiche un msgbox disant "Pas de contact". Pour le moment j'ai "Erreur d'execution 91: Variable objet ou variable de bloc With non définie"


Voici le détail....


Sheets("Feuil1").Select
Range("F9").Select
Selection.Copy
Sheets("Liste").Select
Cells.Find(What:=Feuil1.Range("f9"), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("F12").Select
ActiveSheet.Paste





1 réponse

ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 21/05/2011 à 16:40
bonjour,

il faut donc que dans ta feuille liste le mot 'Paul' cherché soit séparé par quelque chose des mots qui l'encadrent par exemple par un caractère (à tester au moment où le programme le trouve) qui ne soit pas une lettre
si ça ne suffit pas comme explications
pour qu'on se fasse une idée de la nature des champs concernés, peux tu envoyer sur cijoint.fr, une partie de ton fichier sans données confidentielles, et mettre le lien fourni sur ton prochain post

RQ1. dans ton programme les .select sont inutiles
Sheets("Feuil1").Select  
Range("F9").Select  
Selection.Copy 

peut etre remplacé par
MotCherche = sheets("feuil1").Range("F9").Value

RQ2. la fin de ton programme est aussi à alléger

bonne suite
0