VBA recherche sous Excel 2000
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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 :)
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:
- VBA recherche sous Excel 2000
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
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
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
Merci de ta réponse, j'ai corrigé mais le problème persiste...
Je note précieusement l'info pour xlpart
Je note précieusement l'info pour xlpart
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"