[VBA] Recherche partie du contenu d'une case

Résolu/Fermé
pampiou Messages postés 20 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 2 octobre 2013 - 24 août 2010 à 13:15
cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 - 26 août 2010 à 13:03
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.
A voir également:

3 réponses

cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 333
26 août 2010 à 13:03
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
cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 333
24 août 2010 à 13:28
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...
0
pampiou Messages postés 20 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 2 octobre 2013 2
24 août 2010 à 13:58
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.
0