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

appliquer une macro a tous les userforms ?

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

A

avoriaz

Guest
salut le forum




et bien je voudrais savoir comment je pourrais eviter d'ecrire un code identique sur tous les userforms ?

ce code evite la fermeture par la petite croix rouge des l'usf....

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
'Me.Hide
MsgBox "Cette commande ne peut être exécutée, Veuillez fermer le logiciel avec le bouton prevu a cet effect !!." _
& vbCrLf, vbOKOnly + vbExclamation, "Fin de la commande"
Cancel = True
End If
End Sub

ca marche mais faut le coller le code a tous les usf, il ya t'il moyen de faire une boucle sur les usf ?
ou alors ecrire en module est faire des call ?

merci pour votre aide
 
Bonjour Avoriaz, le Forum

Je te conseille l'Excellent Tutorial du Grand Chef à Trois Plumes Lien supprimé car je pense qu'il doit y avoir une solution par là... Mais je n'ai jamais appliqué sur UserForm... (Si quelqu'un connait ?)

Sinon en plus simpliste :

Module Standard Public

Option Explicit

Public NotClose As Boolean

Public Sub TestClose(Cancel As Integer, CloseMode As Integer)
   If CloseMode = vbFormControlMenu Then
      MsgBox "Cette commande ne peut être exécutée, Veuillez fermer le logiciel avec le bouton prevu a cet effect !!." _
      & vbCrLf, vbOKOnly + vbExclamation, "Fin de la commande"
    NotClose = True
   End If
End Sub

'
Private Module de Chaque UserForm

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
TestClose Cancel, CloseMode
Cancel = NotClose
NotClose = False
End Sub

Bon Appétit à tous et toutes
@+Thierry
 
Arf le Lien sur le Site de Laurent Longre :

http://longre.free.fr/pages/prog/evenements.htm#Exemple_modclasse
<http://longre.free.fr/pages/prog/evenements.htm#Exemple_modclasse>

(Le dièse ne passe pas en Hyperlien ici, faire un Copié Collé de l'URL)

@+Thierry
 
Personnellement je me contenterais de la solution de Thierry, simplifiée comme ceci (NotClose est inutile, les arguments sont passés ByRef) :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
TestCroix Cancel, CloseMode
End Sub


'cette macro dans un module standard
Sub TestCroix(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Cette commande ne peut être exécutée, Veuillez fermer le logiciel avec le bouton prevu a cet effect !!." _
& vbCrLf, vbOKOnly + vbExclamation, "Fin de la commande"
Cancel = True
End If
End Sub
 
Bonjour Ti

Merci de ce complément d'info, et oui, par défaut les arguments sont passés ByRef et peuvent donc être modifiés par la Sub de réception... (Contrairement à ByVal qui n'est qu'une Copie de la Variable)

Et moi je fiche toujours tout plein de Boolean partout ! lol

Merci encore
Bon App
@+Thierry
 
salut le forum,

ca marche !!! les deux methodes j'ai essayer a titre d'infos les deux facons...

encore merci a thierry et ti pour l'aide apportée ....

une fois de plus...

avo
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

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