Macro masquer les cellules = 0

alex49520 Messages postés 124 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Voila étant novice en macro, je voulais savoir comment il était possible de masquer des lignes pour lesquels les cellules se trouvant dans la colonne A sont = à 0.

J'ai commencé mes recherches et j'arrive à cela, cependant je ne sais pas comment intégrer ma condition, car pour le moment j'ai simplement enregistré le masquage des cellules.

Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 18/05/2009 par ST1
'
' Touche de raccourci du clavier: Ctrl+m
'
Range("D2").Select
Sheets(Array("Plan comptable Chateau", "Avril", "Mai", "Juin", "Juillet", "Aout", _
"Septembre", "Octobre", "Novembre", "Decembre", "Janvier", "Fevrier", "Mars")). _
Select
Sheets("Plan comptable Chateau").Activate
ActiveWindow.SmallScroll Down:=10
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 77
ActiveWindow.ScrollRow = 80
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 88
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 92
ActiveWindow.ScrollRow = 94
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 98
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 103
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 109
ActiveWindow.ScrollRow = 112
ActiveWindow.ScrollRow = 115
ActiveWindow.ScrollRow = 116
ActiveWindow.ScrollRow = 120
ActiveWindow.ScrollRow = 122
ActiveWindow.ScrollRow = 123
ActiveWindow.ScrollRow = 124
ActiveWindow.ScrollRow = 126
ActiveWindow.ScrollRow = 128
ActiveWindow.ScrollRow = 130
ActiveWindow.ScrollRow = 131
ActiveWindow.ScrollRow = 133
ActiveWindow.ScrollRow = 134
ActiveWindow.ScrollRow = 136
ActiveWindow.ScrollRow = 139
ActiveWindow.ScrollRow = 142
ActiveWindow.ScrollRow = 145
ActiveWindow.ScrollRow = 146
ActiveWindow.ScrollRow = 149
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 154
ActiveWindow.ScrollRow = 155
ActiveWindow.ScrollRow = 156
ActiveWindow.ScrollRow = 157
ActiveWindow.ScrollRow = 156
ActiveWindow.ScrollRow = 155
ActiveWindow.ScrollRow = 154
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 151
ActiveWindow.ScrollRow = 149
ActiveWindow.ScrollRow = 148
ActiveWindow.ScrollRow = 146
ActiveWindow.ScrollRow = 145
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 143
ActiveWindow.ScrollRow = 142
ActiveWindow.ScrollRow = 141
ActiveWindow.ScrollRow = 140
ActiveWindow.ScrollRow = 139
Range("A174").Select
ActiveWindow.SmallScroll Down:=-34
Rows("150:199").Select
Selection.EntireRow.Hidden = True
End Sub

Si quelqu'un pouvait me conseiller, ça m'aiderait beaucoup.

Merci d'avance à toutes les personnes qui pourront m'aider.

Alex
A voir également:

11 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,

il est préférable qu'il y ait une étiquette (nom de champs) avant tes chiffres
cette macro parcourt le classeur et ignore les feuilles où il n'y a pas de zéros dans la colonn A

Sub cacher_zero()
Dim cptr As Byte, nbre As Byte

Application.ScreenUpdating = False
nbre = ThisWorkbook.Sheets.Count
  For cptr = 1 To nbre
    Columns("A:A").AutoFilter Field:=1, Criteria1:="<>0"
   Next
End Sub
0
alex49520 Messages postés 124 Statut Membre 10
 
Je suis désolé michel_m mais je n'arrive pas a comprendre ta réponse. Je voudrais que ma macro ne fonctionne qu'avec certains onglets : ("Plan comptable Chateau", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre", "Janvier", "Fevrier", "Mars").

Je suis vraiment débutant en macro, j'essai de comprendre ce que tu m'as envoyé mais malheureusement, je ne comprend pas grand chose. Désolé.

Merci d'avance,

Alex
0
alex49520 Messages postés 124 Statut Membre 10
 
Il y a peut être une petite subtilité en plus, les cellules que l'on retrouve dans l'onglet plan comptable sont reportés dans tous les autres onglets qui sont en fait des balances. Cependant, si j'arrivais a masquer toutes les cellules vides dans l'onglet plan comptable, serait il possible que dans les onglets suivants, les cellules soient masquées également. En espérant avoir été assez clair.

Merci d'avance,

Alex
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Sub cacher_zero()
Dim cptr As Byte
Dim tablo

tablo = Array("Plan comptable Chateau", "Avril", "Mai", "Juin", "Juillet", "Aout", _
"Septembre", "Octobre", "Novembre", "Decembre", "Janvier", "Fevrier", "Mars")
Application.ScreenUpdating = False
For cptr = 0 To UBound(tablo)
    Sheets(tablo(cptr)).Columns("A:A").AutoFilter Field:=1, Criteria1:="<>0"
Next
End Sub


Rappel:il est préférable qu'il y ait une étiquette (nom de champs) avant tes chiffres
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alex49520 Messages postés 124 Statut Membre 10
 
Qu'entends tu par "il est préférable qu'il y ait une étiquette (nom de champs) avant tes chiffres", je ne vois pas ce que tu veux dire. La macro que tu m'as donné est a modifier ou elle est censée fonctionner ?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
par exemple, en A1, l'indication "numéro de compte"

la macro va installer dans la colonne A dechacune de tes feuilles, un filtre masquant les valeurs=0
mais le filtre va s'installer dans la première cellule où il y a quelque chose d'écrit

regarde cette petite démo:
https://www.cjoint.com/?fsodGss0T6

je m'apercois d'un petit bug dans ma macro donc voici le dernier jus:

Sub cacher_zero()
Dim cptr As Byte
Dim tablo

tablo = Array("Plan comptable Chateau", "Avril", "Mai", "Juin", "Juillet", "Aout", _
"Septembre", "Octobre", "Novembre", "Decembre", "Janvier", "Fevrier", "Mars")
Application.ScreenUpdating = False
For cptr = 0 To UBound(tablo)-1
    Sheets(tablo(cptr)).Columns("A:A").AutoFilter Field:=1, Criteria1:="<>0"
Next
End Sub


c'est à copier-coller dans VBE( Alt+F11 insertion - module)
0
alex49520 Messages postés 124 Statut Membre 10
 
Merci pour cette macro michel_m, mais je me suis rendu compte que le mieux serait de masquer toutes les lignes dont les cellules colonnes E = 0.

Dois je juste changer Columns("A:A") en Columns("E:E") ? Ou il y a t il autre chose a changer ?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
OK pour juste colonne E pas de pb
Columns("E:E")
0
alex49520 Messages postés 124 Statut Membre 10
 
A quoi correspond cette ligne : For cptr = 0 To UBound(tablo) - 1 ?

Il me lance le débogueur et me surligne cette ligne en jaune !!
0
alex49520 Messages postés 124 Statut Membre 10
 
Finalement, j'ai réussi en enlevant le -1 à la fin de la ligne.

J'ai un autre problème de macro mais cela concerne une macro couleur, faut il que je repose une autre question ? Ou peux tu m'aider sur ce post.

En gros, je voudrais faire une macro qui colore le texte d'une partie d'une colonne en rouge, si le résultat de la colonne n'est pas égal à une valeur d'une autre feuille.

En fait je voudrais que si D138 (feuille recap_bal) est différent de E199 (feuille avril) alors colorer les cellules allant de D6 à D137.

Ou alors si c'est plus simple de colorer seulement la cellule D138.

Merci d'avance,

Alex
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Repose la question sur un autrre post
Merci; excuses moi pour le 61 (c'est lundi)
tagges "résolu"
0