Bonjour à tous
J'ai besoin d'une fonction personnalisée pour rechercher une valeur dans une ligne donnée.
Par exemple trouver dans une zone $b1:$b5 le contenu de la première cellule contenant une valeur stockée en a6.
Idéalement cette fonction personnalisée devrait permettre de:
définir la zone de recherche
définir la valeur recherchée
J'ai fait d'innombrables recherches sur le forum mais je suis bien incapable de créer un userform et d'adapter la jolie macro de recherche de mromain ci-dessous.
https://www.excel-downloads.com/threads/detection-de-cellule-par-une-partie-de-leur-contenu.144660/
Avec tous mes remerciements si vous pouvez m'aider,
Caroline
Sub TestRecherche()
'déclaration des variables
Dim laCell As Range, zoneRecherche As Range, memAdressePremCell As String, motRecherche As String
'initialiser les variables
motRecherche = "toto" 'on recherche "toto"
Set zoneRecherche = ActiveSheet.Cells 'dans toutes les cellules de la feuille active
'rechercher avec la méthode Find la première cellule contenant le mot recherché dans la feuille active
' xlPart signifie qu'on ne recherche pas la totalité du contenu de la cellule ("tititi toto tata" sera trouvé)
' le remplacer xlWhole pour rechercher la totalité du contenu de la cellule (que "toto")
Set laCell = zoneRecherche.Find(motRecherche, , xlValues, xlPart)
'si une cellule a été trouvé
If Not laCell Is Nothing Then
'mémoriser l'adresse de cette première cellule trouvée
memAdressePremCell = laCell.Address
'boucler sur toutes les cellules contenant le texte recherché
Do
'traiter la cellule trouvée
MsgBox "Cellule " & laCell.Address & " : """ & laCell.Text & """."
'trouver la cellule suivante contenant le texte recherché
Set laCell = zoneRecherche.FindNext(laCell)
'boucler jusqu'à qu'on revienne sur la première cellule trouvée
Loop Until laCell.Address = memAdressePremCell
End If
End Sub
J'ai besoin d'une fonction personnalisée pour rechercher une valeur dans une ligne donnée.
Par exemple trouver dans une zone $b1:$b5 le contenu de la première cellule contenant une valeur stockée en a6.
Idéalement cette fonction personnalisée devrait permettre de:
définir la zone de recherche
définir la valeur recherchée
J'ai fait d'innombrables recherches sur le forum mais je suis bien incapable de créer un userform et d'adapter la jolie macro de recherche de mromain ci-dessous.
https://www.excel-downloads.com/threads/detection-de-cellule-par-une-partie-de-leur-contenu.144660/
Avec tous mes remerciements si vous pouvez m'aider,
Caroline
Sub TestRecherche()
'déclaration des variables
Dim laCell As Range, zoneRecherche As Range, memAdressePremCell As String, motRecherche As String
'initialiser les variables
motRecherche = "toto" 'on recherche "toto"
Set zoneRecherche = ActiveSheet.Cells 'dans toutes les cellules de la feuille active
'rechercher avec la méthode Find la première cellule contenant le mot recherché dans la feuille active
' xlPart signifie qu'on ne recherche pas la totalité du contenu de la cellule ("tititi toto tata" sera trouvé)
' le remplacer xlWhole pour rechercher la totalité du contenu de la cellule (que "toto")
Set laCell = zoneRecherche.Find(motRecherche, , xlValues, xlPart)
'si une cellule a été trouvé
If Not laCell Is Nothing Then
'mémoriser l'adresse de cette première cellule trouvée
memAdressePremCell = laCell.Address
'boucler sur toutes les cellules contenant le texte recherché
Do
'traiter la cellule trouvée
MsgBox "Cellule " & laCell.Address & " : """ & laCell.Text & """."
'trouver la cellule suivante contenant le texte recherché
Set laCell = zoneRecherche.FindNext(laCell)
'boucler jusqu'à qu'on revienne sur la première cellule trouvée
Loop Until laCell.Address = memAdressePremCell
End If
End Sub