[VBA] Recherche partie du contenu d'une case [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
mercredi 5 mai 2010
Statut
Membre
Dernière intervention
2 octobre 2013
-
Messages postés
579
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
11 novembre 2018
-
Bonjour,

J'ai un souci sur ma macro Excel par rapport à une recherche. Je m'explique.

Je veux masquer les lignes qui contiennent le texte suivant : T4. La selection sur laquelle je veux appliquer la macro est la colonne A. Plusieurs lignes comportent le texte T4.

J'ai pensé à faire une boucle For et à identifier pour chaque case le texte, mais je ne sais pas comment écrire la formule. J'ai essayé avec :

For i = 9 To Derniere_ligne
If Cells(i, "A") = "*T4*" Then
Rows(i).Hidden = True
End If
Next

Mais ça ne fonctionne pas.

Avez-vous une idée à me proposer?

Merci d'avance.

3 réponses

Messages postés
579
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
11 novembre 2018
299
Bonjour,

Bon, des fusions, je ne vais pas en parler, mais c'est un peu la plaie de tout programme.....(sur Excel)

Le code fourni auparavant utilisait un filtre élaboré sur place, avec comme critère cette formule....

Essaie avec ce nouveau code :

Sub Masque_T4_V2()
Dim Cel As Range
For Each Cel In Columns(1).SpecialCells(xlCellTypeConstants)
    If Cel Like "*T4*" Then Cel.MergeArea.EntireRow.Hidden = True
Next Cel
End Sub


Bonne journée

PS, et n'oublie pas la touche F1.....(clique au milieu d'un terme que tu ne comprends pas, et appuie sur cette touche, c'est magique.....)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
579
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
11 novembre 2018
299
Bonjour,

Essaie ces deux codes, le premier pour masquer les lignes comprenant T4 dans la colonne A, le second pour tout afficher....

Sub Masque_T4()
Range("H2").FormulaR1C1 = "=ISERROR(FIND(""T4"",RC1))"
Range("A1:A" & [A65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
        ("H1:H2"), Unique:=False
Range("H2").Clear
End Sub

Sub DeMasque()
On Error Resume Next
ActiveSheet.ShowAllData
End Sub


Bonne journée

Nota, tu peux remplacer H2, H1:H2 par toute autre colonne de ta convenance...
Messages postés
20
Date d'inscription
mercredi 5 mai 2010
Statut
Membre
Dernière intervention
2 octobre 2013
1
Je te remercie. Le code que tu m'as donné fonctionne. Le problème est que j'ai des cellules fusionnées sur 2 lignes, et le programme ne cache que la première, donc j'ai toujours des lignes avec T4.

Une autre chose également, je ne comprends pas la fonction. On est obligé de mettre la formule ISERROR quelque part? A quoi ça sert?

Merci d'avance. Bonne journée.