Macro recherche

Macro recherche - VB/VBA/VBS - Programmation

Marsh Posté le 10-04-2007 à 14:22:23    

Bonjour à tous
 
Je souhaite faire une petite macro me permettant de chercher un mot dans toute les feuilles de mon classeur.
 
Sur un feuille j'ai un bouton rechercher ou la on saisie le mot que l'on recherche. On clic et la fonction nous emmène directement sur la cellule contenant ce mot. Si ce n'est pas la cellule que l'on cherche on aurait la possibilité de cliquez sur suivant pour allez à l'itération suivante ou cliquez sur OK si c'est la bonne cellule.  
 
Merci d'avance ;)

Reply

Marsh Posté le 10-04-2007 à 14:22:23   

Reply

Marsh Posté le 11-04-2007 à 11:58:53    

enregistreur de macro ca devrait aller ;)

Reply

Marsh Posté le 11-04-2007 à 12:46:46    

Sinon, Ctrl+F et dans Options, choisir "classeur" à la place de "Feuille"... ca marche assez bien, comme macro.

Reply

Marsh Posté le 11-04-2007 à 13:14:02    

Plus sérieusement, le type de macro que tu veux faire est un peu long à expliquer, il faudrait que tu passes par un userform... c'est pas compliqué mais c'est long, surtout que comme je l'ai indiqué, excel fait ca très bien.

Reply

Marsh Posté le 02-05-2007 à 14:33:43    

Merci de vos réponses! En cherchant sur la toile j'ai trouvé une macro qui me convenait.

Reply

Marsh Posté le 02-05-2007 à 17:08:38    

Tu pourrais mettre le code en ligne STP.
Merci.
 
 :hello:


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 04-05-2007 à 09:58:21    

Voila le code de la macro:
 
Sub Macro_Recherche()
Dim Str_Plage As String
Dim Cel As Range
Dim Feuil As Worksheet
Dim Str_critère As String
Dim X As Byte
 
Str_Plage = "B:B"
Str_critère = InputBox("Article à rechercher ?" )
For Each Feuil In Sheets
For Each Cel In Feuil.Range(Str_Plage)
If UCase(Cel) Like "*" & UCase(Str_critère) & "*" Then
 
Feuil.Activate
Cel.Activate
 
X = MsgBox("Mot """ & Str_critère & """ trouvé :" & Chr(13) & _
"Sur la feuille : " & Feuil.Name & Chr(13) & _
"à la cellule : " & Cel.Address(0, 0) & Chr(13) & Chr(13) & _
"Oui : on arrête la recherche" & Chr(13) & _
"Non : on continue la recherche " & Chr(13), vbDefaultButton2 + _
vbQuestion + vbYesNo, "MOT TROUVÉ" )
Select Case X
Case 6
    Feuil.Activate
    Cel.Activate
    Exit Sub
Case 2 'annuler on sort
    Exit Sub
Case Else 'Non=7
'on fait rien, mais on pourrait
End Select
End If
Next Cel
Next Feuil
MsgBox ("pas trouvé" )
End Sub
 
 
 :hello:  
 

Reply

Marsh Posté le 13-11-2008 à 19:38:33    

Je viens de tomber sur ce post et c'est exactement ce qu'il me fallait!
 
Par contre quel ligne de code faut il modifier pour qu'il ne prend qu'une feuille en particulier?


---------------
Dulce et decorum est pro patria mori
Reply

Marsh Posté le 17-11-2008 à 16:46:14    

Bonjour
 

Orphee01 a écrit :

Je viens de tomber sur ce post et c'est exactement ce qu'il me fallait!
 
Par contre quel ligne de code faut il modifier pour qu'il ne prend qu'une feuille en particulier?


Celle ci : For Each Feuil In Sheets
et celle ci forcément: Next Feuil
Ainsi que les références a Feuil
 
Ou tu peux remplacer  For Each Feuil In Sheets par un Set Feuil=Sheets("Nom de ta feuille" ), virer le Next Feuil et ca devrait rouler normalement
 
Cordialement


Message édité par SuppotDeSaTante le 17-11-2008 à 16:47:29

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 18-11-2008 à 21:26:35    

ca marche, merci à toi!!!!!!!!!!!!


---------------
Dulce et decorum est pro patria mori
Reply

Marsh Posté le 18-11-2008 à 21:26:35   

Reply

Marsh Posté le 20-11-2008 à 09:39:03    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed