Je viens vous demander de l'aide pour cette formule qui permet de filtrer les lignes 0,00%.
Je souhaiterais également pouvoir enlever les 2 lignes juste au dessus de celle masquée (0,00%) car il s'agit de l'entête de celle-ci.
Auriez-vous une idée ?
Merci.
Sub masquerlignes()
For Each Cell In ActiveSheet.Range("R41:R46")
If Cell.Value = "0,00%" Then
Columns("R:R").Select
Range("R25").Activate
Selection.AutoFilter
ActiveSheet.Range("$R$41:$R$43").AutoFilter Field:=1, Criteria1:="=R% SC" _
, Operator:=xlOr, Criteria2:="="
'Else
'Rows("26:28").Hidden = False
End If
Next
End Sub
Sans le fichier difficile de comprendre. Chaque cellule à 0,00% a deux ligne d'en-têtes ou tu veux aussi masquer
les deux premières lignes d'en-tête ?...
Merci pour ton aide.
Les deux lignes à masquer se trouvent juste au dessus de la ligne pour lesquelles la formule me permet de supprimer la valeur.
Il est difficile de joindre un document car i s'agit d'un document commercial propre à ma société.
Cela ressemble a ça Je souhaiterais masquer les lignes pppppppp et rr
Merci.
Toujours pas très bien compris. Il est tellement facile avec Excel de créer un exemple anonymiser reprenant l'environnement de ton fichier original !...
Essaie comme ça :
VB:
Sub masquerlignes()
Dim CEL As Range
For I = 41 To 46
Debug.Print ActiveSheet.Cells(I, "R").Value
If ActiveSheet.Cells(I, "R").Value = 0 Then
ActiveSheet.Rows(I - 2 & ":" & I).Hidden = True
End If
Next
End Sub
Toujours pas très bien compris. Il est tellement facile avec Excel de créer un exemple anonymiser reprenant l'environnement de ton fichier original !...
Essaie comme ça :
VB:
Sub masquerlignes()
Dim CEL As Range
For I = 41 To 46
Debug.Print ActiveSheet.Cells(I, "R").Value
If ActiveSheet.Cells(I, "R").Value = 0 Then
ActiveSheet.Rows(I - 2 & ":" & I).Hidden = True
End If
Next
End Sub
J'ai essayer à plusieurs reprises ta formule mais aucune ligne n'a été masquée et aucune n'a été sélectionnée.
Peut-être parce que mon tableau original est un croisé dynamique.
J'ai suivi ton conseil et viens de terminer un tableau qui représente ce que je souhaite obtenir.
Dans ton premier exemple tu parle de la plage R41:R46 donc cela ne concernait que les lignes 41 à 46. Maintenant que tu as enfin daigné envoyé un fichier, tout est différent. Le zéro de fait pas partie de la ligne en question mais se trouve dans un intervalle de lignes. Évidement le code fourni n'a rien à voir et je t'avoue que je n'ai pas de solution...
Re,
oui en fait le tableau fait environ 1700 lignes, j'ai avec bien du mal réussit a adapter cette formule qui fonctionne et masque les 0,00% pour ne laisser que les % supérieurs à 0:
Masque les "0,00%" des lignes
Rows("25:25").Select
Selection.AutoFilter
Range("r29").AutoFilter Field:=18, Criteria1:="<>0.00%"
Le problème c'est que cela me laisse les entêtes qu'il me faut cacher manuellement.
J'ai bien essayer avec les formules type :
If Rows("29:40").EntireRow.Hidden = True Then
Rows("26:28").EntireRow.Hidden = True
Else
Rows("26:28").EntireRow.Hidden = False
End If
Mais rien n'y fait, soit cela masque les entête ou lorsque je modifie la formule cela les laisse apparentent.
De plus cela m'oblige à mettre en œuvre une macro très longue sachant que ce tableau peut-être amené a évoluer.
D'où mon problème.
J'ai également essayé bien d'autre macro mais sans succés pour le moment.