Macro sur plusieurs feuilles ne fonctionne pas
Résolu
DidsCraft
Messages postés
30
Statut
Membre
-
crapoulou Messages postés 28002 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
crapoulou Messages postés 28002 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
Je me suis déjà servi de boucle For Each pour l’exécution d'une macro sur plusieurs feuilles mais la je ne comprend pas pourquoi quand je la lance la macro est exécutée seulement sur la feuille active. Je me dis qu'il y a peu être une erreur que je n'arrive plus a voir a force d'avoir le nez dessus. Si jamais vous voyez quelques chose merci bien
La boucle sert à masquer certaines colonnes et en afficher une autre ou l'inverse selon qu'on ouvre le fichier en lecture seul ou non.
Je me suis déjà servi de boucle For Each pour l’exécution d'une macro sur plusieurs feuilles mais la je ne comprend pas pourquoi quand je la lance la macro est exécutée seulement sur la feuille active. Je me dis qu'il y a peu être une erreur que je n'arrive plus a voir a force d'avoir le nez dessus. Si jamais vous voyez quelques chose merci bien
La boucle sert à masquer certaines colonnes et en afficher une autre ou l'inverse selon qu'on ouvre le fichier en lecture seul ou non.
Sub TestHiddenCol()
Dim fl As Worksheet
For Each fl In Worksheets
If ThisWorkbook.ReadOnly Then
Range("S:AQ").EntireColumn.Hidden = False
Range("AR:AR").EntireColumn.Hidden = True
Else
Range("S:AQ").EntireColumn.Hidden = True
Range("AR:AR").EntireColumn.Hidden = False
End If
Range("A1").Select
Next fl
Sheets("Janv").Select
End Sub
3 réponses
-
Bonjour,
Ton souci est sur le fait que la commande qui masque les ligne se fait sur la feuille activée. Il faut préciser sur quelle feuille le faire :
Sub TestHiddenCol() Dim fl As Worksheet For Each fl In Worksheets If ThisWorkbook.ReadOnly Then Sheets(fl.Name).Range("S:AQ").EntireColumn.Hidden = False Sheets(fl.Name).Range("AR:AR").EntireColumn.Hidden = True Else Sheets(fl.Name).Range("S:AQ").EntireColumn.Hidden = True Sheets(fl.Name).Range("AR:AR").EntireColumn.Hidden = False End If Sheets(fl.Name).Range("A1").Select Next fl Sheets("Janv").Select End Sub -
Bonjour
On pourrait s'épargner une boucle...
Option Explicit '------------------------------------------------------------- Sub testhiddencol() Sheets(Array("janv", "fevr", "mars")).Select If ThisWorkbook.ReadOnly Then Columns("S:AQ").Hidden = False Columns("AR").Hidden = True Else Columns("S:AQ").Hidden = True Columns("AR").Hidden = False End If Sheets("Janv").Select End Sub
-
Tout simplement ????
Merci Crapoulou pour ton aide, encore une fois je me coucherais moins bête.
Je testerais Michel mais il me semble que lors de mes essais la ce code ne s’exécutait que sur la feuille active au démarrage. Mais je n’en suis pas sûr donc je testerais. Merci à vous deux
Bonne journée
-
-
Exact! je me suis planté ! :-/
en fait cela ne marche qu'avec des données dans des cellules...
Excuse moi