Utiliser une varaible pour désigner un Userform

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

Jesaispas26

XLDnaute Nouveau
Bonsoir à tous !

Voilà je viens de consulter des dizaines de messages de ce forum et je ne trouve pas d'exemple qui colle à mon problème. Je me permet donc de vous le soumettre.

J'ai plusieurs Userforms identiques sur lesquels je veux effectuer la même opération. Afin d'alléger mon code, j'ai donc créer une Sub qui s'exécutera sur le userform à partir duquel elle a été lancée. Pour simplifier, mon code se présente comme ça :

Dans chaque Userform (ici appelé USFBanane pour l'exemple) :

Private Sub Bouton1_Click()
Call AffichageMessage(USFBanane)
End Sub

Dans un module :

Sub AffichageMessage(NomUSF)
With Userforms(NomUSF)
Label1.Visible = True
Textbox1.Visible = False
End With
End Sub

A l'exécution, ce code me plante un message "Incompatibilité de type" (à l'endroit signalé en rouge)mais je ne trouve pas mon erreur.

En gros, mon problème consiste à désigner un userform par une variable et à employer cette variable pour différentes fonctions. (Je croyais qu'on pouvait utiliser systématiquement Userforms(Variable).label1 à la place de Userform1.label1.......)

D'avance merci

Bonne soiréeà ceux qui auront tenté de m'aider (et même aux autres ^^).
 
Dernière édition:
Re : Utiliser une varaible pour désigner un Userform

Voilà un petit fichier épuré.
J'ai du supprimer les contrôles "image" pour gagner de la place alors ne t'étonne pas si quelques lignes de code sont passées en commentaire.

J'ai un deuxième problème qui apparaît maintenant. A1Motdepasse1 contient un CommandButton (Bouton3) que n'a pas A1Motdepasse2 et A1Motdepasse2 contient un Label (Titre4) que n'a pas A1Motdepasse2. Afin de ne pas avoir de plantage, j'ai mis une commande du genre :

On Error GoTo 1
With Cible
.Bouton3.Visible = False
End With
1:

Or, pour masquer mes contrôles, ça se passe très bien, mais plus loin dans le code, quand je les fais réapparaître, il me plante une erreur malgré la présence du "On Error". Saurais tu me dire d'où ça vient ?

D'avance merci !
 

Pièces jointes

Re : Utiliser une varaible pour désigner un Userform

Re

si associé au bon bouton :
Code:
Private Sub Bouton3_Click()

et si des points devant les instructions du bloc "with" :

Code:
With Cible
    .Cadre1.Visible = True
    .Bouton1.Visible = True
    .Bouton2.Visible = True
    .Titre3.Visible = True
End With

le code de ton 1er usf passe bien chez moi....
 
Re : Utiliser une varaible pour désigner un Userform

Oui apparement c'est bon maintenant avec les points pour chaque instruction du bloc With.

Par contre le 4ème "On error" bug chez moi. Il m'affiche quand même l'erreur en me disant "Propriété ou méthode non gérée par cette objet". Ce qui est normal puisqu'il n'y a pas de Titre4 dans le 1er userform. C'est pour ça que j'avais mis un "On Error" mais on dirait qu'il n'en tient pas compte.
 
Re : Utiliser une varaible pour désigner un Userform

Re

essaye plutôt avec l'instruction "On Error Resume Next"

Code:
On Error Resume Next
Cible.Bouton3.Visible = False
On Error GoTo 0

A priori ceci est plus approprié pour gérer les erreurs liées aux objets, cf ci-dessous note de l'aide vba...

Note La construction On Error Resume Next est plus appropriée que l'instruction On Error GoTo pour gérer les erreurs générées lors de l'accès à des objets.
 
Re : Utiliser une varaible pour désigner un Userform

Tout simplement magnifique !

ça marche impeccable. Merci beaucoup Pierrot. Tout marche impeccable maintenant. Un grand merci pour le temps que tu as consacré à mon problème depuis hier soir. Promis, je t'embète plus avant.... une bonne demi - heure ^^.

Bonne après midi à toi (et à tous les autres aussi)
 
- 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

Retour