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
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.....)
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...
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?