Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro de pro :-) pour rechercher un mot déterminé dans une autre colonne que celle ou l'on est

2 réponses
Avatar
Help Me
Bonjour à tous.

Quelqu'un pourrait m'aider pour faire la chose suivante :

Je suis sur une cellule (variable) de la colonne G.
J'aimerai qu'il cherche dans la colonne D (a partir de la ligne ou je suis)
le mot suivant : "Hardsoot" et qu'il se replace sur la cellule de la colonne
G de la ligne trouvée...

Exemple :

Je suis sur G12.
Apres avoir actionné la macro, il trouve le "Hardsoot" suivant en D24. Il se
place alors en G24. (rappel : il ne faut pas qu'il m'indique ceux dont le
placement est avant ma ligne ...soit dans l'exemple D1 à D11)

***********************
Voila pour l'exemple.
Dans la pratique il serait génial qu'il me demande, lors de l'utilisation
d'une autre macro quel mot rechercher...

Idéalement, sauriez vous me dire comment découper la macro en 2 étapes
différentes :
PHASE 1 : Il me demande quel mot rechercher dans la colonne D. et le stocke
pour toutes les fois ou je lui demanderai la phase 2.
PHASE 2 : Macro de recherche indiquée ci dessus...

Merci à vous tous de votre aide...

A tres bientôt

Michel

2 réponses

Avatar
papou
Bonjour
Voici une façon de procéder (testé rapidement) :
1°) Dans un module standard :
Public MotAChercher As String
Sub ChercheLeMot()
Dim LigDepart As Long, TrouveLe As Range
LigDepart = ActiveCell.Row
With ActiveSheet.Range("D" & LigDepart & ":D" &
Range("D65536").End(xlUp).Row)
On Error GoTo CaVaPas
Set TrouveLe = .Find(MotAChercher, LookIn:=xlValues, searchorder:=xlByRows)
If Not TrouveLe Is Nothing Then
Cells(TrouveLe.Row, "G").Select
Else: MsgBox "Mot non trouvé", vbInformation
End If
End With
Exit Sub
CaVaPas:
MsgBox "Le mot à trouver est vide", vbExclamation, "Pas de recherche
possible"
End Sub
2°) Dans le code de Thisworkbook
Private Sub Workbook_Open()
MotAChercher = InputBox("Quel est le mot qu'il faudra rechercher", "Mot ?")
End Sub

A l'ouverture du classeur le mot à chercher est demandé.
Il sera utilisé par la suite dans la macro "chercheLeMot"

Cordialement
Pascal




"Help Me" a écrit dans le message de news:
4173807c$0$21085$
Bonjour à tous.

Quelqu'un pourrait m'aider pour faire la chose suivante :

Je suis sur une cellule (variable) de la colonne G.
J'aimerai qu'il cherche dans la colonne D (a partir de la ligne ou je
suis) le mot suivant : "Hardsoot" et qu'il se replace sur la cellule de la
colonne G de la ligne trouvée...

Exemple :

Je suis sur G12.
Apres avoir actionné la macro, il trouve le "Hardsoot" suivant en D24. Il
se place alors en G24. (rappel : il ne faut pas qu'il m'indique ceux dont
le placement est avant ma ligne ...soit dans l'exemple D1 à D11)

***********************
Voila pour l'exemple.
Dans la pratique il serait génial qu'il me demande, lors de l'utilisation
d'une autre macro quel mot rechercher...

Idéalement, sauriez vous me dire comment découper la macro en 2 étapes
différentes :
PHASE 1 : Il me demande quel mot rechercher dans la colonne D. et le
stocke pour toutes les fois ou je lui demanderai la phase 2.
PHASE 2 : Macro de recherche indiquée ci dessus...

Merci à vous tous de votre aide...

A tres bientôt

Michel




Avatar
Help Me
Merci à toi.
Je viens de le tester. C'est impeccable...

Par contre effectivement le mot est demandé au lancement du doc.
N'y aurait-t-il pas un moyen pour que je puisse avec l'envoi d'une autre
macro lui indiquer quel mot choisir...car en travaillant dans ce même doc,
je peux lui demander plein de fois de changer de mot...Cela m'éviterait soit
de relancer le doc pour cela, soit de modifier le code vba en cours de
travail ?

Merci de ton aide !!!!

Michel
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour
Voici une façon de procéder (testé rapidement) :
1°) Dans un module standard :
Public MotAChercher As String
Sub ChercheLeMot()
Dim LigDepart As Long, TrouveLe As Range
LigDepart = ActiveCell.Row
With ActiveSheet.Range("D" & LigDepart & ":D" &
Range("D65536").End(xlUp).Row)
On Error GoTo CaVaPas
Set TrouveLe = .Find(MotAChercher, LookIn:=xlValues,
searchorder:=xlByRows)
If Not TrouveLe Is Nothing Then
Cells(TrouveLe.Row, "G").Select
Else: MsgBox "Mot non trouvé", vbInformation
End If
End With
Exit Sub
CaVaPas:
MsgBox "Le mot à trouver est vide", vbExclamation, "Pas de recherche
possible"
End Sub
2°) Dans le code de Thisworkbook
Private Sub Workbook_Open()
MotAChercher = InputBox("Quel est le mot qu'il faudra rechercher", "Mot
?")
End Sub

A l'ouverture du classeur le mot à chercher est demandé.
Il sera utilisé par la suite dans la macro "chercheLeMot"

Cordialement
Pascal




"Help Me" a écrit dans le message de news:
4173807c$0$21085$
Bonjour à tous.

Quelqu'un pourrait m'aider pour faire la chose suivante :

Je suis sur une cellule (variable) de la colonne G.
J'aimerai qu'il cherche dans la colonne D (a partir de la ligne ou je
suis) le mot suivant : "Hardsoot" et qu'il se replace sur la cellule de
la colonne G de la ligne trouvée...

Exemple :

Je suis sur G12.
Apres avoir actionné la macro, il trouve le "Hardsoot" suivant en D24. Il
se place alors en G24. (rappel : il ne faut pas qu'il m'indique ceux dont
le placement est avant ma ligne ...soit dans l'exemple D1 à D11)

***********************
Voila pour l'exemple.
Dans la pratique il serait génial qu'il me demande, lors de l'utilisation
d'une autre macro quel mot rechercher...

Idéalement, sauriez vous me dire comment découper la macro en 2 étapes
différentes :
PHASE 1 : Il me demande quel mot rechercher dans la colonne D. et le
stocke pour toutes les fois ou je lui demanderai la phase 2.
PHASE 2 : Macro de recherche indiquée ci dessus...

Merci à vous tous de votre aide...

A tres bientôt

Michel