Bonjour =E0 tous
Voil=E0, je voudrais rendre la macro suivant "g=E9n=E9rique" je veux dire,
faire une seule macro pour
Masquer/ d=E9masquer et qui s'applique =E0 n'importe quelle feuille de mon
classeur. Ici j'ai du utiliser la ligne :
" Sheets("Jour 7").Unprotect"
pour la rendre op=E9rationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic()
Application.ScreenUpdating =3D False
'test_UnProtect
Sheets("Jour 7").Unprotect
With Columns("B:D").EntireColumn
.Hidden =3D Not .Hidden
End With
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Comme ceci : Tu appelles la macro Test en prenant soin de définir les 2 paramètres. Tu copies ceci dans un module standard
'-------------------------------- Sub test() '2 paramètres : Nom de la feuille, Adresse des cellules. Masquer_Demasquer "Sheet1", "B:D" End Sub '--------------------------------
Sub Masquer_Demasquer(NomFeuille As String, Adr As String) Application.ScreenUpdating = False With Worksheets(NomFeuille) .Unprotect With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With .Protect End With Application.ScreenUpdating = False End Sub '--------------------------------
MichD -------------------------------------------- "michir" a écrit dans le message de groupe de discussion :
Bonjour à tous Voilà, je voudrais rendre la macro suivant "générique" je veux dire, faire une seule macro pour Masquer/ démasquer et qui s'applique à n'importe quelle feuille de mon classeur. Ici j'ai du utiliser la ligne : " Sheets("Jour 7").Unprotect" pour la rendre opérationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic() Application.ScreenUpdating = False 'test_UnProtect Sheets("Jour 7").Unprotect With Columns("B:D").EntireColumn .Hidden = Not .Hidden End With End Sub
Merci pour le coup de pouce Michel
Bonjour,
Comme ceci : Tu appelles la macro Test en prenant soin de définir les 2 paramètres.
Tu copies ceci dans un module standard
'--------------------------------
Sub test()
'2 paramètres : Nom de la feuille, Adresse des cellules.
Masquer_Demasquer "Sheet1", "B:D"
End Sub
'--------------------------------
Sub Masquer_Demasquer(NomFeuille As String, Adr As String)
Application.ScreenUpdating = False
With Worksheets(NomFeuille)
.Unprotect
With .Range(Adr).EntireColumn
.Hidden = Not .Hidden
End With
.Protect
End With
Application.ScreenUpdating = False
End Sub
'--------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
8147dedf-fda4-401d-87f9-1abb82e287ed@q30g2000vbs.googlegroups.com...
Bonjour à tous
Voilà, je voudrais rendre la macro suivant "générique" je veux dire,
faire une seule macro pour
Masquer/ démasquer et qui s'applique à n'importe quelle feuille de mon
classeur. Ici j'ai du utiliser la ligne :
" Sheets("Jour 7").Unprotect"
pour la rendre opérationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic()
Application.ScreenUpdating = False
'test_UnProtect
Sheets("Jour 7").Unprotect
With Columns("B:D").EntireColumn
.Hidden = Not .Hidden
End With
End Sub
Comme ceci : Tu appelles la macro Test en prenant soin de définir les 2 paramètres. Tu copies ceci dans un module standard
'-------------------------------- Sub test() '2 paramètres : Nom de la feuille, Adresse des cellules. Masquer_Demasquer "Sheet1", "B:D" End Sub '--------------------------------
Sub Masquer_Demasquer(NomFeuille As String, Adr As String) Application.ScreenUpdating = False With Worksheets(NomFeuille) .Unprotect With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With .Protect End With Application.ScreenUpdating = False End Sub '--------------------------------
MichD -------------------------------------------- "michir" a écrit dans le message de groupe de discussion :
Bonjour à tous Voilà, je voudrais rendre la macro suivant "générique" je veux dire, faire une seule macro pour Masquer/ démasquer et qui s'applique à n'importe quelle feuille de mon classeur. Ici j'ai du utiliser la ligne : " Sheets("Jour 7").Unprotect" pour la rendre opérationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic() Application.ScreenUpdating = False 'test_UnProtect Sheets("Jour 7").Unprotect With Columns("B:D").EntireColumn .Hidden = Not .Hidden End With End Sub
Merci pour le coup de pouce Michel
michir
Merci MichD Mais je suis vraiment néophyte en code VBA Je dois supprimer Unprotect car il m'occasionne un bogue avec la ligne .Hidden = Not .Hidden (j'avais mis un ' dans mon code joint pour la désactiver) Tu me dis de repasser le nom de la feuille (Sheet1...) dans un module standard, mais c'est précisément ma question, je souhaite que la macro soit opérationnelle surs l'ensemble des feuilles sans le citer une à une Michel
On 10 mai, 12:52, "MichD" wrote:
Bonjour,
Comme ceci : Tu appelles la macro Test en prenant soin de définir les 2 paramètres. Tu copies ceci dans un module standard
'-------------------------------- Sub test() '2 paramètres : Nom de la feuille, Adresse des cellules. Masquer_Demasquer "Sheet1", "B:D" End Sub '--------------------------------
Sub Masquer_Demasquer(NomFeuille As String, Adr As String) Application.ScreenUpdating = False With Worksheets(NomFeuille) .Unprotect With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With .Protect End With Application.ScreenUpdating = False End Sub '--------------------------------
MichD -------------------------------------------- "michir" a écrit dans le message de groupe de discussion :
Bonjour à tous Voilà, je voudrais rendre la macro suivant "générique" je veux d ire, faire une seule macro pour Masquer/ démasquer et qui s'applique à n'importe quelle feuille de mo n classeur. Ici j'ai du utiliser la ligne : " Sheets("Jour 7").Unprotect" pour la rendre opérationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic() Application.ScreenUpdating = False 'test_UnProtect Sheets("Jour 7").Unprotect With Columns("B:D").EntireColumn .Hidden = Not .Hidden End With End Sub
Merci pour le coup de pouce Michel
Merci MichD
Mais je suis vraiment néophyte en code VBA
Je dois supprimer Unprotect car il m'occasionne un bogue avec la
ligne .Hidden = Not .Hidden (j'avais mis un ' dans mon code joint
pour la désactiver)
Tu me dis de repasser le nom de la feuille (Sheet1...) dans un module
standard, mais c'est précisément ma question, je souhaite que la macro
soit opérationnelle surs l'ensemble des feuilles sans le citer une à
une
Michel
On 10 mai, 12:52, "MichD" <michde...@hotmail.com> wrote:
Bonjour,
Comme ceci : Tu appelles la macro Test en prenant soin de définir les 2 paramètres.
Tu copies ceci dans un module standard
'--------------------------------
Sub test()
'2 paramètres : Nom de la feuille, Adresse des cellules.
Masquer_Demasquer "Sheet1", "B:D"
End Sub
'--------------------------------
Sub Masquer_Demasquer(NomFeuille As String, Adr As String)
Application.ScreenUpdating = False
With Worksheets(NomFeuille)
.Unprotect
With .Range(Adr).EntireColumn
.Hidden = Not .Hidden
End With
.Protect
End With
Application.ScreenUpdating = False
End Sub
'--------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
8147dedf-fda4-401d-87f9-1abb82e28...@q30g2000vbs.googlegroups.com...
Bonjour à tous
Voilà, je voudrais rendre la macro suivant "générique" je veux d ire,
faire une seule macro pour
Masquer/ démasquer et qui s'applique à n'importe quelle feuille de mo n
classeur. Ici j'ai du utiliser la ligne :
" Sheets("Jour 7").Unprotect"
pour la rendre opérationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic()
Application.ScreenUpdating = False
'test_UnProtect
Sheets("Jour 7").Unprotect
With Columns("B:D").EntireColumn
.Hidden = Not .Hidden
End With
End Sub
Merci MichD Mais je suis vraiment néophyte en code VBA Je dois supprimer Unprotect car il m'occasionne un bogue avec la ligne .Hidden = Not .Hidden (j'avais mis un ' dans mon code joint pour la désactiver) Tu me dis de repasser le nom de la feuille (Sheet1...) dans un module standard, mais c'est précisément ma question, je souhaite que la macro soit opérationnelle surs l'ensemble des feuilles sans le citer une à une Michel
On 10 mai, 12:52, "MichD" wrote:
Bonjour,
Comme ceci : Tu appelles la macro Test en prenant soin de définir les 2 paramètres. Tu copies ceci dans un module standard
'-------------------------------- Sub test() '2 paramètres : Nom de la feuille, Adresse des cellules. Masquer_Demasquer "Sheet1", "B:D" End Sub '--------------------------------
Sub Masquer_Demasquer(NomFeuille As String, Adr As String) Application.ScreenUpdating = False With Worksheets(NomFeuille) .Unprotect With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With .Protect End With Application.ScreenUpdating = False End Sub '--------------------------------
MichD -------------------------------------------- "michir" a écrit dans le message de groupe de discussion :
Bonjour à tous Voilà, je voudrais rendre la macro suivant "générique" je veux d ire, faire une seule macro pour Masquer/ démasquer et qui s'applique à n'importe quelle feuille de mo n classeur. Ici j'ai du utiliser la ligne : " Sheets("Jour 7").Unprotect" pour la rendre opérationnelle sur la feuille "Jour 7"
Sub Masquer_Demasquer_Clic() Application.ScreenUpdating = False 'test_UnProtect Sheets("Jour 7").Unprotect With Columns("B:D").EntireColumn .Hidden = Not .Hidden End With End Sub
Merci pour le coup de pouce Michel
MichD
Ceci va fonctionner pour la feuille active (celle affichée à l'écran) à chaque fois que tu l'appelles. '---------------------------------------------- Sub Masquer_Demasquer() Application.ScreenUpdating = False With ActiveSheet With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With End With Application.ScreenUpdating = False End Sub '----------------------------------------------
Si tu veux appliquer cette macro dans tenir compte du fait que les feuilles sont protégées, tu dois utiliser ce type de procédure pour protéger les feuilles.
Dans ton ThisWorkbook : '---------------------------------------------- Private Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.Protect "MotDePasse", True, True, True, True Next End Sub '----------------------------------------------
Ceci va fonctionner pour la feuille active (celle affichée à l'écran)
à chaque fois que tu l'appelles.
'----------------------------------------------
Sub Masquer_Demasquer()
Application.ScreenUpdating = False
With ActiveSheet
With .Range(Adr).EntireColumn
.Hidden = Not .Hidden
End With
End With
Application.ScreenUpdating = False
End Sub
'----------------------------------------------
Si tu veux appliquer cette macro dans tenir compte du fait que les feuilles
sont protégées, tu dois utiliser ce type de procédure pour protéger
les feuilles.
Dans ton ThisWorkbook :
'----------------------------------------------
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.Protect "MotDePasse", True, True, True, True
Next
End Sub
'----------------------------------------------
Ceci va fonctionner pour la feuille active (celle affichée à l'écran) à chaque fois que tu l'appelles. '---------------------------------------------- Sub Masquer_Demasquer() Application.ScreenUpdating = False With ActiveSheet With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With End With Application.ScreenUpdating = False End Sub '----------------------------------------------
Si tu veux appliquer cette macro dans tenir compte du fait que les feuilles sont protégées, tu dois utiliser ce type de procédure pour protéger les feuilles.
Dans ton ThisWorkbook : '---------------------------------------------- Private Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.Protect "MotDePasse", True, True, True, True Next End Sub '----------------------------------------------
Ok, merci à toi MichD...heureusement que tu es là. Michel
On 10 mai, 16:11, "MichD" wrote:
Ceci va fonctionner pour la feuille active (celle affichée à l'écra n) à chaque fois que tu l'appelles. '---------------------------------------------- Sub Masquer_Demasquer() Application.ScreenUpdating = False With ActiveSheet With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With End With Application.ScreenUpdating = False End Sub '----------------------------------------------
Si tu veux appliquer cette macro dans tenir compte du fait que les feuill es sont protégées, tu dois utiliser ce type de procédure pour protég er les feuilles.
Dans ton ThisWorkbook : '---------------------------------------------- Private Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.Protect "MotDePasse", True, True, True, True Next End Sub '----------------------------------------------
Ok, merci à toi MichD...heureusement que tu es là.
Michel
On 10 mai, 16:11, "MichD" <michde...@hotmail.com> wrote:
Ceci va fonctionner pour la feuille active (celle affichée à l'écra n)
à chaque fois que tu l'appelles.
'----------------------------------------------
Sub Masquer_Demasquer()
Application.ScreenUpdating = False
With ActiveSheet
With .Range(Adr).EntireColumn
.Hidden = Not .Hidden
End With
End With
Application.ScreenUpdating = False
End Sub
'----------------------------------------------
Si tu veux appliquer cette macro dans tenir compte du fait que les feuill es
sont protégées, tu dois utiliser ce type de procédure pour protég er
les feuilles.
Dans ton ThisWorkbook :
'----------------------------------------------
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.Protect "MotDePasse", True, True, True, True
Next
End Sub
'----------------------------------------------
Ok, merci à toi MichD...heureusement que tu es là. Michel
On 10 mai, 16:11, "MichD" wrote:
Ceci va fonctionner pour la feuille active (celle affichée à l'écra n) à chaque fois que tu l'appelles. '---------------------------------------------- Sub Masquer_Demasquer() Application.ScreenUpdating = False With ActiveSheet With .Range(Adr).EntireColumn .Hidden = Not .Hidden End With End With Application.ScreenUpdating = False End Sub '----------------------------------------------
Si tu veux appliquer cette macro dans tenir compte du fait que les feuill es sont protégées, tu dois utiliser ce type de procédure pour protég er les feuilles.
Dans ton ThisWorkbook : '---------------------------------------------- Private Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.Protect "MotDePasse", True, True, True, True Next End Sub '----------------------------------------------