[ résolu] Private Sub ?!

cissou69

XLDnaute Junior
Bonjour,

Après avoir parcouru plusieurs sujets, je n'arrive pas à trouver une solution pour mon problème.

Je cherche comment créer une Sub qui ne sois pas disponible lorsqu'on fait Alt+F8 depuis le fichier excel (soit une Private Sub) mais qui soit possible de faire un call depuis une autre sub ...

L'idée est de créer un module de déprotection d'un fichier et que je puisse l'appeler dans mes différentes sub sans qu'il soit disponible depuis le menu "Alt+F8" dans excel lorsque le fichier est verrouiller.

Merci d'avance pour votre aide,

Cissou
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Private Sub ?!

Bonjour,

Soit une private Sub qui doit du coup être placée dans le même module que la procédure appelante, soit une Sub avec des faux paramètres comme ceci par exemple :
VB:
Sub Test(Optional Zap as Byte)
'.....
end sub
 

cissou69

XLDnaute Junior
Re : Private Sub ?!

Mintri,

La Private Sub ne s'affiche pas dans le menu des macros mais ne peut pas être appelé dans un module différent ...

Softmama,

Je ne comprends pas très bien le coup des faux paramètres par exemple mon module de déprotection

Code:
Private Sub Deprotection()

Application.ScreenUpdating = False

Dim s As Worksheet

'Déprotection du classeur
ActiveWorkbook.Unprotect "3xc3l"

'Déprotection des onglets
For Each s In Worksheets
    s.Unprotect "3xc3l"
Next s

Application.ScreenUpdating = True

End Sub
 

Softmama

XLDnaute Accro
Re : Private Sub ?!

tu la remplaces par :
VB:
Private Sub Deprotection(Optional FauxParamètre as Byte)

Application.ScreenUpdating = False

Dim s As Worksheet

'Déprotection du classeur
ActiveWorkbook.Unprotect "3xc3l"

'Déprotection des onglets
For Each s In Worksheets
    s.Unprotect "3xc3l"
Next s

Application.ScreenUpdating = True

End Sub
 

Softmama

XLDnaute Accro
Re : Private Sub ?!

pardon, je me suis trompé, tu vires le private et tu places ta macro dans le module de ton choix :
Code:
Sub Deprotection(Optional FauxParamètre as Byte)

Application.ScreenUpdating = False

Dim s As Worksheet

'Déprotection du classeur
ActiveWorkbook.Unprotect "3xc3l"

'Déprotection des onglets
For Each s In Worksheets
    s.Unprotect "3xc3l"
Next s

Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Réponses
2
Affichages
146

Statistiques des forums

Discussions
312 511
Messages
2 089 166
Membres
104 056
dernier inscrit
fxcas