Bonjour à tous,
J'ai un petit souci avec une macro dans une base de donnée que j'utilise quotidiennement sur mon lieu de travail sur Excel 2002.
C'est une base de donnée d'environ une trentaine d'onglet. J'ai voulu rendre plus accessible cette base en créant une macro de recherche qui permette de trouver l'info recherchée immédiatement.
J'ai donc créé le bouton "mot à rechercher" et le projet VBA que voici :
Option Explicit
Sub RechercheEtCouleur()
Dim mot As String, reponse As Integer
Dim oldCel As String
oldCel = Selection.Address 'pour se repositionner ensuite
mot = InputBox(" Rechercher le mot ?")
ActiveSheet.Select 'repréciser où on est
Range("A1").Select 'se placer en début de recherche
oups: ' va nous permettre de boucler
On Error GoTo fin 'si mot n'existe pas = erreur
Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
'effectue la recherche
With ActiveCell.Characters(Start:=InStr(1, Selection, Left(mot, 1), 1), Length:=Len(mot))
.Font.ColorIndex = 3 'colorie en rouge
.Font.Bold = True 'met en gras
End With
reponse = MsgBox("Poursuivre recherche", vbYesNo) 'nécessaire aussi pour stopper la recherche
If reponse = 6 Then 'si le bouton yes est utilisé
Selection.Font.ColorIndex = 0 'remise de la couleur noire
Selection.Font.Bold = False 'enlever le gras
GoTo oups 'on boucle
Else
Selection.Font.ColorIndex = 0 'idem plus haut si le bouton non est choisi
Selection.Font.Bold = False
Range(oldCel).Select 'on reprend notre place
Exit Sub 'on sort lorsque l'on presse le bouton non
End If
fin:
MsgBox "Mot non trouvé"
Range(oldCel).Select 'on reprend notre place
End Sub
Et donc le problème étant que la macro ne recouvre pas tous les onglets et le résultat et à chaque fois "mot non trouvé", car il reste sur la première page de mon document. Quand je passe par "Outils", "Macro", je sélectionne pourtant bien "Tout le classeur".
Je n'arrive pas à trouver l'erreur dans mon projet.
En espèrant avoir été le plus claire possible, je vous remercie par avance pour l'aide que vous pourrez m'apporter.
Cordialement.
Marjo67
J'ai un petit souci avec une macro dans une base de donnée que j'utilise quotidiennement sur mon lieu de travail sur Excel 2002.
C'est une base de donnée d'environ une trentaine d'onglet. J'ai voulu rendre plus accessible cette base en créant une macro de recherche qui permette de trouver l'info recherchée immédiatement.
J'ai donc créé le bouton "mot à rechercher" et le projet VBA que voici :
Option Explicit
Sub RechercheEtCouleur()
Dim mot As String, reponse As Integer
Dim oldCel As String
oldCel = Selection.Address 'pour se repositionner ensuite
mot = InputBox(" Rechercher le mot ?")
ActiveSheet.Select 'repréciser où on est
Range("A1").Select 'se placer en début de recherche
oups: ' va nous permettre de boucler
On Error GoTo fin 'si mot n'existe pas = erreur
Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
'effectue la recherche
With ActiveCell.Characters(Start:=InStr(1, Selection, Left(mot, 1), 1), Length:=Len(mot))
.Font.ColorIndex = 3 'colorie en rouge
.Font.Bold = True 'met en gras
End With
reponse = MsgBox("Poursuivre recherche", vbYesNo) 'nécessaire aussi pour stopper la recherche
If reponse = 6 Then 'si le bouton yes est utilisé
Selection.Font.ColorIndex = 0 'remise de la couleur noire
Selection.Font.Bold = False 'enlever le gras
GoTo oups 'on boucle
Else
Selection.Font.ColorIndex = 0 'idem plus haut si le bouton non est choisi
Selection.Font.Bold = False
Range(oldCel).Select 'on reprend notre place
Exit Sub 'on sort lorsque l'on presse le bouton non
End If
fin:
MsgBox "Mot non trouvé"
Range(oldCel).Select 'on reprend notre place
End Sub
Et donc le problème étant que la macro ne recouvre pas tous les onglets et le résultat et à chaque fois "mot non trouvé", car il reste sur la première page de mon document. Quand je passe par "Outils", "Macro", je sélectionne pourtant bien "Tout le classeur".
Je n'arrive pas à trouver l'erreur dans mon projet.
En espèrant avoir été le plus claire possible, je vous remercie par avance pour l'aide que vous pourrez m'apporter.
Cordialement.
Marjo67