XL 2016 Afficher des lignes qui contiennent un mot spécifique.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Al1_44

XLDnaute Junior
Bonsoir le forum,

En fouinant sur le site j' ai trouvé un fil "Afficher les lignes qui contient 1" lancé par chaelie2015 et une réponse de mapomme qui m'interpelle.
Le code VBA fonctionne très bien lorsque l'on recherche des nombres, mais pour ce qui est du texte je n'ai pas réussi à trouver le bon code à changer.
Quel lignes dois-je changer pour n'afficher par exemple, que les lignes qui contiennent "ta" ?

AL1_44

 

Pièces jointes

Solution
Bonsoir @Al1_44 🙂,

Aucun souvenir de cela. Mais ce n'est pas grave :
Remplacez le <> par un Not ...Like ... :
VB:
         For i = 6 To j
            .Cells(i, "q").EntireRow.Hidden = t(i, 1) <> "*ta*"
         Next
par
VB:
         For i = 6 To j
            .Cells(i, "q").EntireRow.Hidden = Not (t(i, 1) Like "*ta*")
         Next

Si la casse n'a pas d'importance (TA Ta, tA, ta tous équivalents) , alors utilisez :
VB:
.Cells(i, "q").EntireRow.Hidden = Not (LCase(t(i, 1)) Like LCase("*ta*"))
Bonjour
Je te propose cette modif
Option Explicit

Sub Afficher1Q()
Dim i&, t, j&
Application.ScreenUpdating = False
With Worksheets("Feuil1")
i = .UsedRange.Row + .UsedRange.Rows.Count - 1
If i < 6 Then Exit Sub
t = Range("q1:q" & i)
For j = UBound(t) To 6 Step -1
If Len(t(j, 1)) <> 0 Then Exit For
Next j
If j < 6 Then Exit Sub
rep = InputBox("Entrez la valeur recherchée.")
If rep = "" Then Exit Sub

If .Shapes("Afficher1Q").TextFrame2.TextRange.Characters.Text = "N'Afficher que les ta en col Q" Then
For i = 6 To j
'MsgBox .Cells(i, "q")
r = InStr(1, .Cells(i, "q"), rep)
If r = 0 Then
.Cells(i, "q").EntireRow.Hidden = True
End If
Next
.Shapes("Afficher1Q").TextFrame2.TextRange.Characters.Text = "Afficher tout en col Q"
Else
.Range("q6:q" & i).EntireRow.Hidden = False
.Shapes("Afficher1Q").TextFrame2.TextRange.Characters.Text = "N'Afficher que les ta en col Q"
End If
End With
End Sub
 
Bonsoir @Al1_44 🙂,

Aucun souvenir de cela. Mais ce n'est pas grave :
Remplacez le <> par un Not ...Like ... :
VB:
         For i = 6 To j
            .Cells(i, "q").EntireRow.Hidden = t(i, 1) <> "*ta*"
         Next
par
VB:
         For i = 6 To j
            .Cells(i, "q").EntireRow.Hidden = Not (t(i, 1) Like "*ta*")
         Next

Si la casse n'a pas d'importance (TA Ta, tA, ta tous équivalents) , alors utilisez :
VB:
.Cells(i, "q").EntireRow.Hidden = Not (LCase(t(i, 1)) Like LCase("*ta*"))
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
514
Retour