Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Concaténer 2 macro en 1 seule dans ThisWorkbook

  • Initiateur de la discussion Initiateur de la discussion Orson83
  • 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 !

Orson83

XLDnaute Impliqué
Bonjour la communauté,
J'ai un conflit entre 2 macro placées dans ThisWorkbook car elles contiennent le même argument "Private Sub Workbook_BeforeClose(Cancel As Boolean)".
Pensez-vous qu'il soit possible de concaténer ces 2 macro ?
VB:
'VERROUILLE LES PAGES A LA FERMETURE D'EXCEL
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh
    For Each Sh In ThisWorkbook.Sheets
        Sh.Protect "TEST"
    Next
End Sub

'OUVRE EXCEL SUR LA PAGE ACCUEIL & NAVIGATION
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Worksheets("Accueil & Navigation").Activate
End Sub
Merci pour votre aide.
Tchotchodu31
 
Solution
Bonjour,
il suffit simplement de tout mettre à la suite :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh
    For Each Sh In ThisWorkbook.Sheets
        Sh.Protect "TEST"
    Next
Application.ScreenUpdating = False
Worksheets("Accueil & Navigation").Activate
End Sub
Bonjour,
il suffit simplement de tout mettre à la suite :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh
    For Each Sh In ThisWorkbook.Sheets
        Sh.Protect "TEST"
    Next
Application.ScreenUpdating = False
Worksheets("Accueil & Navigation").Activate
End Sub
 
Salut Yoyo01000,
Cette combinaison fonctionne parfaitement.
Merci pour ton aide.
Tchotchodu31
 
Bonjour,
Je relance ce post car j'aimerai qu'à l'ouverture d'Excel tous les onglets soient masqués sauf l'onglet "Accueil & Navigation".
Le code de Yoyo1000 fonctionne mais il manquerait cet argument dans la deuxième partie du code.
Merci pour votre aide.
Tchotchodu31
 
Bonjour Tchotchodu,
Vous pouvez aussi mettre cette macro dans un Workbook_Open :
VB:
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name = "Accueil & Navigation" Then GoTo EndConsolidation ' car feuille Accueil & Navigation n'est pas a traitée.
    Sh.Visible = False
EndConsolidation:
Next Sh
End Sub
ou l'inclure dans la macro Workbook_BeforeClose
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
    For Each Sh In ThisWorkbook.Sheets
        Sh.Protect "TEST"
    Next
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name = "Accueil & Navigation" Then GoTo EndConsolidation ' car feuille Accueil & Navigation n'est pas a traitée.
    Sh.Visible = False
EndConsolidation:
Next Sh
Worksheets("Accueil & Navigation").Activate
End Sub
 
Bonjour Sylvanu,
Merci pour ces 2 options qui fonctionnent très bien.
Je vais opter pour le Workbook_BeforeClose qui traite la requête à la fermeture.
Très bon week-end.
Tchotchodu31
 
Re bonjour Sylvanu,
Est-il possible d'inclure le positionnement dans la cellule A1 de Accueil & Navigation ?
Exemple : ("Accueil & Navigation").Range("A1") -> j'ai essayé mais ça ne marche pas à cause du .activate je pense.
Tchotchodu31
 
Pour positionner le curseur, ajoutez la ligne Range("A1").select à la fin de votre macro.
VB:
Next Sh
Worksheets("Accueil & Navigation").Activate
Range("A1").select
End Sub
 
- 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

Réponses
4
Affichages
243
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…