Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion desatan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

desatan

XLDnaute Occasionnel
Bonjour,

J'ai un problème de macro.
J'ai un fichier Excel, avec 26 feuilles dont chacune possèdent des colonnes de A à GL.

J'ai fais des macro "d'affichage". Par exemple, j'ai fait un macro synthèse, dans laquelle je dis que pour chaque feuille je ne veux afficher que les colonnes A, de G à I et de GH à GL.
Quand je lance ma macro j'obtiens "erreur de compilation, procédure trop grand".

Quelqu'un peut me dire comment faire cette macro de façon plus petite ?
 
Re : Aide macro

ok donc dans le fichier ci joint, je souhaite avoir une macro qui me permmet d'afficher pour chaque feuille, seulement les 2 colonnes budget mois soit 24 colonnes par feuille.

Merci par avance pour votre aide
 

Pièces jointes

Re : Aide macro

oui elle n'y ai pas car elle bug. C'est justement l'aide que je vous demande.
Comment feriez-vous pour n'afficher, quand vous le souhaitez, que les colonnes budgets mois de chaque feuille.

Merci
 
Re : Aide macro

Bonjour à tous
oui elle n'y ai pas car elle bug. C'est justement l'aide que je vous demande.
Comment feriez-vous pour n'afficher, quand vous le souhaitez, que les colonnes budgets mois de chaque feuille.

Merci
Corriger une procédure qui n'existe pas, ou, ce qui revient au même, est invisible, voilà un art difficile...

Sur votre classeur, j'ai testé ceci avec succès :
Code:
[COLOR="DarkSlateGray"][B]Sub cache()
Dim oFeuil, i&
   oFeuil = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
   For i = 0 To UBound(oFeuil)
      Sheets(oFeuil(i)).Range("D:Q,T:AG,AJ:AW,AX:BM,BP:CC,CF:CS,CV:DI,DJ:DY,EB:EO,ER:FE,FH:FU,FX:GI").EntireColumn.Hidden = True
   Next i
End Sub

Sub montre()
Dim oFeuil, i&
   oFeuil = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
   For i = 0 To UBound(oFeuil)
      Sheets(oFeuil(i)).Range("D:Q,T:AG,AJ:AW,AX:BM,BP:CC,CF:CS,CV:DI,DJ:DY,EB:EO,ER:FE,FH:FU,FX:GI").EntireColumn.Hidden = False
   Next i
End Sub[/B][/COLOR]
ROGER2327
#3218
 
Re : Aide macro

Bonjour Roger et merci.

Ta macro fonctionne bien pour ce fichier.😉

J'ai d'autres fichiers similaires dans lesquels j'ai tenté de mettre la même macro en prenant soins de changer le nom des feuilles ainsi que les plages de colonnes mais elle ne fonctionne plus.

Peux-tu me dire à quoi correspond ceci :

oFeuil

Merci par avance.
 
Re : Aide macro

peux-tu me dire pourquoi quand je copie ta macro dans un autre classeur avec des colonnes identiques mais des noms de feuilles différents, même en changeant les noms des feuilles dans la macro, celle-ci ne fonctionne plus ?😱
 
Re : Aide macro

C'est bon j'ai trouvé, en saisissant les noms de feuilles, j'ai mis un F à la place d'un G.

Peux-tu me donner en partant du même fichier, une macro qui permet de masquer certaines lignes ? Par exemple la ligne de 8 à 10 puis la ligne de 20 à 30 ?

Et une fois mes colonnes et lignes masquées, as-tu une macro qui me permettent de tous réafficher au complet ?

Merci pour ton aide
 
Dernière édition:
Re : Aide macro

Re...
En observant un tout petit peu les procédures, les modifications sont évidentes :
Code:
[COLOR="DarkSlateGray"][B]Sub cache()
Dim oFeuil, i&
   oFeuil = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
   For i = 0 To UBound(oFeuil)
      Sheets(oFeuil(i)).Range("D:Q,T:AG,AJ:AW,AX:BM,BP:CC,CF:CS,CV:DI,DJ:DY,EB:EO,ER:FE,FH:FU,FX:GI").EntireColumn.Hidden = True
      [COLOR="Red"]Sheets(oFeuil(i)).Range("8:10,20:30").EntireRow.Hidden = True[/COLOR]
   Next i
End Sub

Sub montre()
Dim oFeuil, i&
   oFeuil = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
   For i = 0 To UBound(oFeuil)
      Sheets(oFeuil(i)).Range("D:Q,T:AG,AJ:AW,AX:BM,BP:CC,CF:CS,CV:DI,DJ:DY,EB:EO,ER:FE,FH:FU,FX:GI").EntireColumn.Hidden = False
      [COLOR="Red"]Sheets(oFeuil(i)).Range("8:10,20:30").EntireRow.Hidden = False[/COLOR]
   Next i
End Sub[/B][/COLOR]
ROGER2327
#3246
 
Re : Aide macro

pour masquer les lignes, j'ai mis çà :

Sub montre()
Dim oFeuil, i&
oFeuil = Array("A", "B", "Z")
For i = 0 To UBound(oFeuil)
Sheets(oFeuil(i)).Range("16:32,47,49,58:60").EntireRow.Hidden = True
Next i

End Sub

Mais ca ne fonctionne pas 😱
En fait visiblement je ne peux pas mettre que la ligne 47 ou que la 49 ?

Merci de ton aide
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Réponses
20
Affichages
1 K
Réponses
9
Affichages
884
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…