VBA recherche sous Excel 2000

Fermé
Utilisateur anonyme - 7 févr. 2011 à 16:41
 Utilisateur anonyme - 15 févr. 2011 à 10:23
Bonjour,

C'est a bout d'option et de patience que je viens vers vous.

Je crée un registre sous Excel 2000, jusque là rien de bien difficile.

Mon problème vient du fait que je souhaite également insérer une fonction de recherche plus pratique que la touche Ctrl+F ou que les filtres personnalisés. Je me suis donc lancé dans le monde au combien compliqué de la programmation VBA pour la première fois. Après moultes recherches sur des forum et dans l'aide Excel, j'ai trouvé la fonction Find qui me paraît être ce dont j'ai besoin.

Cependant, j'ai une erreur dans mon code et je ne sais pas laquelle. Si une âme charitable pouvait m'aider je lui en serais éternellement reconnaissante (oui j'en suis à ce point). Donc voici ce que j'ai programmé :

Sub Recherche()

Dim Registre As Worksheet
Dim reponse As Range
Dim motcle As String


Set Registre = ActiveSheet
motcle = InputBox("taper un mot-clé")
Set reponse = Registre.Cells.Find("*motcle*", Registre.Cells(1, 1), xlValue, xlWhole)
If Not response Is Nothing Then
PremAdresse = reponse.Address
Do
Set reponse = Selection.FindNext(after:=reponse)
Loop While Not reponse Is Nothing
MsgBox "pas de réponses"

End If

End Sub


Et voici le message d'erreur que je reçois : "Erreur d'exécution '9' L'indice n'appartient pas à la sélection"

Je souhaite avoir une Boite de dialogue qui demande le mot-clé puis que les différentes lignes où il apparait s'affichent (comme avec un filtre personnalisé)

Merci d'avance :)

A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 févr. 2011 à 17:10
Bonjour

essaies avec
Set reponse = Registre.Cells.Find(motcle, Registre.Cells(1, 1), xlValue, xlpart)

remarque "*motcle*" est faux, il faudrait écrire "*" & motclé & "*"

mais avec Xlpart tu n'as besoin que de motcle tout seul et sans guillemmet
0
Utilisateur anonyme
7 févr. 2011 à 17:23
Merci de ta réponse, j'ai corrigé mais le problème persiste...
Je note précieusement l'info pour xlpart
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 févr. 2011 à 17:51
il faudrait que tu dises sur quelle ligne tu as le message d'erreur (set réponse ?) et quoi sert cette macro : actuellement, tu parcours la feuille qui te dit qu'éventuellement il n'y a pas de mots clé...

heu !
xlvalue ---> xlvalues
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 7/02/2011 à 18:17
Voici ce que j'aurais écris pour rechercher la présence du mot-clé dans la feuille ective
motcle = InputBox("tapez un mot-clé") 
With ActiveSheet 
    test = Application.CountIf(.Cells, "*" & motcle & "*") 
    If test = 0 Then GoTo erreur 
    reponse = .Cells.Find(motcle, , xlValues, xlPart).Address 
    MsgBox "mot clé:  " & motclé & "contenu dans la cellule: " & reponse & " valeur: " & Range(reponse) 
End With 
Exit Sub 
erreur: 
MsgBox "terme inconnu"
0
Utilisateur anonyme
15 févr. 2011 à 10:23
Merci, j'ai juste remplacer .Adress par .Activate pour aller directement à la cellule concernée, mais je m'aperçois que ce n'est pas encore tout à fait ce que je recherche.

Il y aurait-il une fonction qui pourrait masquer les cellules ne contenant pas le terme par exemple ?
0