VBA Condition si valeur non trouvée Cells.Fin
Meg
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
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
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
A voir également:
- VBA Condition si valeur non trouvée Cells.Fin
- Excel cellule couleur si condition texte - Guide
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur relative et absolue ✓ - Forum Webmastering
- Incompatibilité de type vba ✓ - Forum Programmation
1 réponse
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
peut etre remplacé par
RQ2. la fin de ton programme est aussi à alléger
bonne suite
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