[Excel] Recherche multiple dans une cellule
Résolu
Mirage
-
Mirage -
Mirage -
Bonjour,
Je fait suite à un premier post qui consistait en l'extraction d'une donnée recherché dans une cellule.
Cependant, j'aimerai savoir si on pouvais adapter la macro, à la recherche de plusieurs textes (supérieur à 2 si possible)
Je vous joint le fichier avec la macro précédente.
J'espère que vous trouverez la solution.
Merci
https://www.cjoint.com/?BDciSKjSuGU
Je fait suite à un premier post qui consistait en l'extraction d'une donnée recherché dans une cellule.
Cependant, j'aimerai savoir si on pouvais adapter la macro, à la recherche de plusieurs textes (supérieur à 2 si possible)
Je vous joint le fichier avec la macro précédente.
J'espère que vous trouverez la solution.
Merci
https://www.cjoint.com/?BDciSKjSuGU
A voir également:
- [Excel] Recherche multiple dans une cellule
- Excel cellule choix multiple - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Proteger cellule excel - Guide
- Déplacer une colonne excel - Guide
4 réponses
Bonjour,
Ça me rajeunit un peu cette macro ! :o)
dans ce que tu veux, on ne travaillerait plus que sur 1 seule cellule ?
Ça me rajeunit un peu cette macro ! :o)
dans ce que tu veux, on ne travaillerait plus que sur 1 seule cellule ?
Alors, oui en fait on a toujours une seule cellule "source", par contre on a plusieurs cellules de sorties. (autant de cellule que de modèles trouvés).
Voila :)
Voila :)
Re,
la macro extrait les N mots de la sélection de la cellule active
la macro extrait les N mots de la sélection de la cellule active
Option Explicit Sub extraire_mots() Dim Col As Integer, Lig As Long, Texto As String Dim T_mots(), derlig As Byte, cptr As Byte 'Initialisations Application.ScreenUpdating = False With ActiveCell texto = UCase(ActiveCell) Col = .Column + 1 Lig = .Row End With Range(Cells(Lig, Col), Cells(Lig + 10, Col)).Clear 'collecte des mots sélectionnés With Sheets("param") derlig = .Range("B250").End(xlUp).Row T_mots = Application.Transpose(.Range("B2:B" & derlig).Value) End With 'extraction des mots For cptr = 1 To UBound(T_mots) If texto Like "*" & UCase(T_mots(cptr)) & "*" Then With Cells(Lig, Col) .Value = T_mots(cptr) .Borders.Weight = xlThin End With Lig = Lig + 1 End If Next End Sub
Merci beaucoup, ça fonctionne comme je l'espérais !
Je te tiens au courant si j'ai un souci avec :)
Je te tiens au courant si j'ai un souci avec :)
Après quelques temps d'utilisation, je viens de constater que la macro plante si l'onglet param dépasse les 256 modèles. J'ai tenté d'augmenter le nombre max de valeurs dans la macro:
derlig = .Range("B250").End(xlUp).Row > passage à 260 par exemple
mais ça ne fonctionne pas. Y a t-il un autre paramètre à changer? :)
derlig = .Range("B250").End(xlUp).Row > passage à 260 par exemple
mais ça ne fonctionne pas. Y a t-il un autre paramètre à changer? :)
Il faut simplement modifier les types des variables
en espèrant que...
Dim Col As Integer, Lig As Long, Texto As String Dim T_mots(), derlig As Integer, cptr As Integer 'Initialisations Application.ScreenUpdating = False With ActiveCell Texto = UCase(ActiveCell) Col = .Column + 1 Lig = .Row End With Range(Cells(Lig, Col), Cells(Lig + 10, Col)).Clear 'collecte des mots sélectionnés With Sheets("param") derlig = .Range("B10000").End(xlUp).Row
en espèrant que...