XL 2019 cherche solution vba

Quicksland

XLDnaute Occasionnel
Bonjour le forum ;)

Cherche une solution vba pour avoir la possibilité de me servir des curseurs " + - " de plan " malgré la feuille protégé

Merci de votre aide
 

Pièces jointes

  • VACANCES UPC.xlsm
    94.4 KB · Affichages: 4

Deadpool_CC

XLDnaute Accro
et si t'as plusieurs feuille dans ton classeur .. un truc du genre

Code:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer

WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, UserInterfaceOnly:=True
End With
Next I

End Sub

a mettre dans le 'thisWorkBook' dans l'arborescence de ton interface VBA
 

Quicksland

XLDnaute Occasionnel
un truc du genre devrait fonctionner
VB:
Private Sub Workbook_Open()
With Worksheets("Feuil1")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub
Bonjour Deadpool_CC

Merci pour ta réponse mais ça ne fonctionne pas ( j'ai remplacé "Feuil1" par "le nom de ma feuille"
puis entré mon mot de passe a la place de Toto mais toujours le message " vous ne pouvez pas ...."
 

Deadpool_CC

XLDnaute Accro
J'ai ressorti cela de ma "banque" d'astuce .. c'était passé sur un autre forum (mais cela date).
La structure de sécurité des fichiers a du changer entre temps ... Mince

Et là je dois y aller ... si quelqu'un autre peux l'aider ... je vais être "out" 5 jours.
Désolé ...
 

Eric C

XLDnaute Barbatruc
Bonsoir le forum
Bonsoir Quicksland, Deadpool_CC

Le code donné par notre ami Deadpool fonctionne comme il se doit (enfin sous XL2010 mais plus également je pense). Le code doit être placé dans ThisWorkBook et ne sera activé qu'à la prochaine ouverture du classeur.
VB:
Private Sub Workbook_Open()
With Worksheets("HIVERS")
     .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub
Bonne soirée à toutes & à tous
@+ Eric c
 

Phil69970

XLDnaute Barbatruc
Bonjour tous

Edit Bonjour Eric nos réponses se sont croisées

@Quicksland

L'aide excel me dit

1653495871318.png


@Phil69970
 

Quicksland

XLDnaute Occasionnel
Bonsoir le forum
Bonsoir Quicksland, Deadpool_CC

Le code donné par notre ami Deadpool fonctionne comme il se doit (enfin sous XL2010 mais plus également je pense). Le code doit être placé dans ThisWorkBook et ne sera activé qu'à la prochaine ouverture du classeur.
VB:
Private Sub Workbook_Open()
With Worksheets("HIVERS")
     .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub
Bonne soirée à toutes & à tous
@+ Eric c

Bonsoir le forum
Bonsoir Quicksland, Deadpool_CC

Le code donné par notre ami Deadpool fonctionne comme il se doit (enfin sous XL2010 mais plus également je pense). Le code doit être placé dans ThisWorkBook et ne sera activé qu'à la prochaine ouverture du classeur.
VB:
Private Sub Workbook_Open()
With Worksheets("HIVERS")
     .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub
Bonne soirée à toutes & à tous
@+ Eric c
Bonsoir Eric
Cela ne fonctionne pas même après réouverture ...
Merci tout de même...👍
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Une variante d'écriture
Code:
Sub verrou()
Dim s As Worksheet
For Each s In Worksheets
p s
Next
End Sub
Private Sub p(ws As Worksheet)
ws.EnableOutlining = -1
ws.Protect , Contents:=True, AllowFiltering:=-1, UserInterfaceOnly:=-1
End Sub
 

Phil69970

XLDnaute Barbatruc
Le fil

Autrement ceci fonctionne en VBA
VB:
        Worksheets("Hivers").Outline.ShowLevels RowLevels:=2 ', ColumnLevels:=2      'Developpe le plan pour une action

    '**** Ton action

        Worksheets("Hivers").Outline.ShowLevels RowLevels:=1 ', ColumnLevels:=1      'Replie le plan apres l'action (pour remettre comme avant)

RowLevels: ==> Pour les lignes
ColumnLevels ==> Pöur les colonnes

@Phil69970
 

Quicksland

XLDnaute Occasionnel
Bonsoir le forum
Bonsoir Quicksland, Deadpool_CC

Le code donné par notre ami Deadpool fonctionne comme il se doit (enfin sous XL2010 mais plus également je pense). Le code doit être placé dans ThisWorkBook et ne sera activé qu'à la prochaine ouverture du classeur.
VB:
Private Sub Workbook_Open()
With Worksheets("HIVERS")
     .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub
Bonne soirée à toutes & à tous
@+ Eric c

Re le fil,
Bonsoir Philippe, Staple1600

Bizarre, je te mets ton fichier modifié (qui fonctionne chez moi).
@+ Eric c
re

Oui cela fonctionne ...désolé je me suis trompé de fichier :oops:

Merci de ton aide et merci a tous 👍
 

Eric C

XLDnaute Barbatruc
Le fil

Bien sûr, cela t'a été donné au post #3. Modifié :
VB:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer

WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableOutlining = True
.Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
Next I
End Sub

Ce code remplace le code placé dans ThisWorkBook.
Bonne soirée
@+ Eric c
 

Quicksland

XLDnaute Occasionnel
Le fil

Bien sûr, cela t'a été donné au post #3. Modifié :
VB:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer

WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableOutlining = True
.Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
Next I
End Sub

Ce code remplace le code placé dans ThisWorkBook.
Bonne soirée
@+ Eric c
Merci pour ton aide si précieuse 👍
Bonne soirée
 

Statistiques des forums

Discussions
311 720
Messages
2 081 923
Membres
101 840
dernier inscrit
SamynoT