Pour masquer des colonnes en vba

tanerbus Messages postés 5 Date d'inscription dimanche 24 décembre 2006 Statut Membre Dernière intervention 18 janvier 2008 - 24 déc. 2007 à 12:55
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 6 janv. 2008 à 00:26
Je cherche un code pour masquer des colonnes automatiquement



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




J’ai sur la ligne I2000 a AZ2000 une formule qui me donne un soit 1 soit 2 j’aimerais masquer tout les colonne qui a un 1 dans la ligne 2000



 




if [i2000]=2 then



Columns("II:II").Select





Selection.EntireColumn.Hidden = True




Else



Columns("II:II").Select





Selection.EntireColumn.Hidden = False





End if





If if [J2000]=2 then





Columns("JJ:JJ").Select





Selection.EntireColumn.Hidden = True





Else





Columns("JJ:JJ").Select





Selection.EntireColumn.Hidden = False





End if






 





Ect ….. Jusque a la colonne AL



 




J’aimerais un moyen plus simple car cette méthode et long a coder de plus je doit faire sa sur plusieurs feuille

merci

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
24 déc. 2007 à 17:50
Salut,

tu peux utiliser les boucles For Each... Next

par exemple:

Dim MaFeuille As Worksheet, MaPlage As Range, MaCelule as Range

For Each Mafeuille In ThisWorkbook.Worksheets ' pour chaque feuille dans la colection de feuille de ce document
   Set MaPlage = Mafeuille.range("I"&2000,"AJ"&2000)
   For Each MaCelule In MaPlage 'pour chaque celule de la colection MaPlage
      If Macelule.value = 2 then
         Columns(MaCelule.Column).EntireColumn.Hidden = True ' (MaCelule.Column) renvoi le numero de la colonne
      Else
         Columns(MaCelule.Column).EntireColumn.Hidden = False
      End If
   Next
Next

Joyeux Noel a Tous

A+
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
6 janv. 2008 à 00:26
Salut,

tu peux coder de cette manière

Dim MyRange As Range: Dim MyColumn As Range
Set MyRange = [I2000]
Set MyColumn = [I:I]



MyColumn.EntireColumn.Hidden (MyRange.Value 1)





Cordialement, Jean-Paul  

______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
Rejoignez-nous