2 macro sur 1 seul bouton

bonjour,

voila j'ai 2 Macros

1 pour la protection de mes onglets et une pour l'ouverture de ceux ci

j'aimerai pouvoir sur 1 seul bouton faire fonctionner la macro protection si les onglets sont déprotégés et protégé si les onglets sont déprotégés

et si possible si je peux mettre un mot de passe pour les faire fonctionner cela serai extra

voila les macro

Sub Protection()

'

' Protection Macro

'

Application.ScreenUpdating = False

Sheets("Justificatif").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _

, AllowFormattingCells:=True

Sheets("Semaine1").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _

, AllowFormattingCells:=True

Sheets("RecapMois").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _

, AllowFormattingCells:=True

Sheets("RapportActivité").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _

, AllowFormattingCells:=True

Sheets("MCVS").Select

Columns("H:CB").Select

selection.EntireColumn.Hidden = True

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _

, AllowFormattingCells:=True

Application.ScreenUpdating = True

Range("B15").Select

End Sub

Sub Ouverture()

'

' Ouverture Macro

'

'

Application.ScreenUpdating = False

Sheets("Justificatif").Select

ActiveSheet.Unprotect

Range("A4").Select

Sheets("Semaine1").Select

ActiveSheet.Unprotect

Range("A7").Select

Sheets("RecapMois").Select

ActiveSheet.Unprotect

Range("K2").Select

Sheets("MCVS").Select

ActiveSheet.Unprotect

Columns("G:CC").Select

selection.EntireColumn.Hidden = False

Range("A1:C1").Select

Application.ScreenUpdating = True

Range("B15").Select

End Sub

merci merci merci

bonjour,

je ferai une condition IF ELSE de type:

With ...

If .ProtectContents Then

.Unprotect(" mot de passe " )

Else

.Protect(" mot de passe " )

mais je ne sais pas si c'est adaptable à tes codes?

a+

Bonjour à tous

La proposition de Robinet me semble excellente.

Elle peut se concrétiser par :

Dim f, i
Sub Protection()

    f = Array("Justificatif", "Semaine 1", "Recap mois", "Rapport activité", "MCVS")
    For i = 0 To UBound(f)
        With Sheets(f(i))
             If .ProtectContents = False Then
                .Protect Password:="maurice", DrawingObjects:=True, Contents:=True, Scenarios:=True _
                        , AllowFormattingCells:=True
            Else
               Sheets(f(i)).Unprotect "maurice"
                    Range("A4").Select
            End If
        End With
    Next i
End Sub

Bye !

bonsoir Gmb

merci je vais essayer

Bonjour,

Cdlt

Dans module Feuil6(Menu)

Option Explicit
Private Sub cmdProtection_Click()

    If Worksheets("Justificatif").ProtectContents Then
        DeProtection_feuilles
        cmdProtection.Caption = "Protéger les feuilles"
    Else
        Protection_feuilles
        cmdProtection.Caption = "Déprotéger les feuilles"
    End If

End Sub

Dans Module1

Option Explicit
Option Private Module
Public Sub Protection_feuilles()
Dim tbl, c

    With Worksheets("MCVS")
        .Activate
        .Columns("H:CB").EntireColumn.Hidden = True
        .[B15].Select
    End With

    tbl = Array("Justificatif", "Semaine1", "RecapMois", "RapportActivité", "MCVS")

    For Each c In tbl
        Worksheets(c).Protect _
                Password:="jeaneric", _
                DrawingObjects:=True, _
                Contents:=True, _
                Scenarios:=True, _
                AllowFormattingCells:=True
    Next

End Sub
'
Public Sub DeProtection_feuilles()    '
Dim tbl, c

    tbl = Array("Justificatif", "Semaine1", "RecapMois", "RapportActivité", "MCVS")

    For Each c In tbl
        Worksheets(c).Unprotect "jeaneric"
    Next

    With Worksheets("MCVS")
        .Activate
        .Columns("H:CB").EntireColumn.Hidden = False
        .[B15].Select
    End With

End Sub

bonsoir Jean Eric

ton code a l'air super mais je ne comprends pas tes histoires de module :

module feuille 6 menu et module 1

mes 2 macros se trouvent à la suite dans un module 3

et mes 2 boutons "ouverture" et "Protection" se trouve dans l'onglet "MCVS"

bouton ouverture se nomme "O" et Protection "P"

et bien sur si par malheur je reclique 2 fois sur protection comme il veut en même temps masquer des colonnes qui sont déjà masquées cela plante; c'est pour cela que je ne veux qu'un seul bouton comme cela quand c'est Protégé je ne peux que déprotéger et vis et versa

maintenant si en plus je peux changer le texte "o" en "P" et "p" en "o" suivant l'action possible super sinon sur le bouton je mettrai "O/P"

cordialement et merci

Re,

Bonsoir gmb,

J'ai répondu avec un exemple.

Tu n'as pas joint de fichier.

Qu’espérais-tu comme réponse adaptée? Ma réponse ne correspond pas à ta demande?

Tu as un bouton pour 2 macros :

1 - Protection

2 - Déprotection (pourquoi 'ouverture??)

Maintenant, tu as le principe. A toi de l'adapter.

A te relire.

Cdlt.

bonsoir Jean Eric

ok j'avais pas compris

je vais donc essayé de l'adapter demain

merci pour cette aide

Déprotégé ou ouverture pour moi cela est pareil

très très cordialement

Rechercher des sujets similaires à "macro seul bouton"