Petit problème de Userform

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 !

olivepao

XLDnaute Occasionnel
😕

B]Bonjour tout le monde,

Je désire savoir s'il est possible d'inclure le resultat d'un test fait dans une macro à une zone de texte dans un UserForm.

Ma macro revoi un résultat différent en fonction de la date du jour.

Cette macro fonctionne nicklel. Le résultat est renvoyé dans une MsgBox qui fait partie de la macro.

Pour des raisons de saisie, j'aimerais que le résultat de ma macro soit renvoyé dans le Userform afin que l'utilisateur saisisse les données en fonction du message.

En clair, mon UserForm se présenterais avec le texte qui varie en fonction de la date et dessous mes zones de saisie.

J'ai fais des recherrches dans le "help" d'excel mais sans succès.[/B]
 
Re : Petit problème de Userform

Bonjour olivepao,

oui, c'est possible. Crée un Label (étiquette) et à la place de ta Msgbox, met le résultat dans Label1.caption

Si je comprends bien ma macro devrait donner ça :

Code:
Sub CreationDate()

Dim d               ' <-- Message pour l'envoi des demandes par rapport à la date du jour
d = Day(Date)

If d > 15 Then
Label1.Caption = "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
               & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
               & "Message possibilité N° 1 " + Chr$(13) + Chr$(13) _
               vbOKOnly + vbExclamation, _
                                "                                                      -  ATTENTION  -          "
                Else
                Label1.Caption =  "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
                            & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
                            & "Message possibilité N° 2 " + Chr$(13) + Chr$(13) _
                            vbOKOnly + vbExclamation, _
                                "                                                       -  ATTENTION  -          "
End If
End Sub

Après, je sèche pour inclure Label1 dans mon Userform.
 
Re : Petit problème de Userform

tu ne sais pas insérer un label ?
dans la boite à outils, le Bouton A (Intitulé)
prévois-le grand ton texte est long 🙂


Mon problème n'est pas à ce niveau. La macro plante avec une erreur 424 Objet requis

Mon code doit avoir une petite erreur

Code:
Sub CreationDate()

Dim d               ' <-- Message pour l'envoi des demandes par rapport à la date du jour
d = Day(Date)

If d > 15 Then
Label1.Caption = "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
               & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
               & "Votre demande doit être formulée pour le mois prochain ! " + Chr$(13) + Chr$(13) _
               & "Si votre demande est formulée pour ce mois, elle est suceptible d'être refusée !            " + Chr$(13) + Chr$(13)
                Else
                Label.Caption = "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
                            & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
                            & "Votre demande doit être formulée pour le mois courant ! " + Chr$(13) + Chr$(13) _
                            & "Si votre demande est transmise après le 15, elle est suceptible d'être refusée !            " + Chr$(13) + Chr$(13)
End If
End Sub

mais où ?
 
Re : Petit problème de Userform

Code:
Label1.Caption = "Utilisateur " &...

puis

Code:
Label.Caption = "Utilisateur " &...

il ne manquerait pas un 1 quelque part ?


🙂 Bien vu mais le plantage se fait directement sur le

Label1.Caption lié au IF et pas à celui lié au Else !


J'ai vérifié mon USF (qui se nomme FORInfos), les propriétés de Label1 sont :

Name a la valeur Label1

Caption a également la valeur Label1


Une petite faute de frappe est déjà résolue reste la syntaxe. La mise en mémoire ne doit pas être identique à MsgBox.

Certainement A+

Olivepao
 
Re : Petit problème de Userform

je viens de faire un userform avec un label,

j'ai copié le code :

Code:
Label1.Caption = "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
               & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
               & "Votre demande doit être formulée pour le mois prochain ! " + Chr$(13) + Chr$(13) _
               & "Si votre demande est formulée pour ce mois, elle est suceptible d'être refusée !            " + Chr$(13) + Chr$(13)

et ça s'éxecute parfaitement

quelle est ta version d'Excel ?
 
Re : Petit problème de Userform

je viens de faire un userform avec un label,

j'ai copié le code :

Code:
Label1.Caption = "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
               & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
               & "Votre demande doit être formulée pour le mois prochain ! " + Chr$(13) + Chr$(13) _
               & "Si votre demande est formulée pour ce mois, elle est suceptible d'être refusée !            " + Chr$(13) + Chr$(13)

et ça s'éxecute parfaitement

quelle est ta version d'Excel ?


Je suis sur Excel2000.

Je remarque que tu n'as pas copié l'intégralité de mon code !

Mon code avec le if else se trouve dans la macro Private Sub Workbook_Open().

Mon USF est dans "feuilles" et se nomme que qu te l'ai indiqué FORInfos. Doit-on préciser ce nom à Label1.Caption ?

Dams mon USF, j'ai créer une zone "Intitulé" créé avec l'icône "A". Cette zone se nomme Label1.

Tout devrait fonctionner mais voilà . . .

Dès le lancement de mon classeur la macro plante et met en surbrillance la première partie du If (normal la date du jour est > 15.

Un If serait-il impossible ?

L'erreur est "424" comme déjà indiqué.

J'ai cliqué sur le bouton d'aide de la combobox d'erreur, j'ai lu tout le blabla. Pas simple à comprendre.
 
Re : Petit problème de Userform

dis-moi, tu affiches bien le userform avant d'essayer de remplir son label, n'est-ce pas ?
Oui une précision de l'USF est peut-être utile :
FORInfos.Label1.Caption = ...

Mon code qui est dans Private Sub Workbook_Open() s'exécute automatiquement au lancement de mon fichier Excel (normal).

Et la la plantage s'effectue.

Ensuite j'appelle mon USF par le biais d'une macro qui se trouve dans
Microsoft Excel Objects Nomdelafeuille

Cette macro est la suivante

Private Sub Donnees_Click()

FORInfos.Show ' <-- ouverture du USF

End Sub


L'appel de l'USF se fait donc par un clic sur un bouton.

Voilà se que je peux t'apporter encore comme précision.

Merci et A+
 
Re : Petit problème de Userform

pourquoi veux-tu changer le contenu du label du USF avant d'afficher le USF ?
y as-t-il une raison valable ?

Salut Tototiti2008

En indiquant FORInfos.Label1.Caption = ...

il n'y a plus d'erreur, du moins jusqu'à présent.

En reprenant les "explications" de l'erreur 424, il y avait une référence à un objet non défini, donc je suppose qu'il fallait déclarer le USF avec le Label1.Caption.


En réponse à ta question, je charge le contenu du Label, en fonction de la date, au lancement du classeur et il s'affiche dans le USF losque ce dernier s'affiche.

En tout cas merci de ton aide.

PS : Souvent on cherche la soluce de midi à 14h alors que l'on devrait la chercher de 11h59 à midi 01 !
 
Re : Petit problème de Userform

Salut à tous

Je reviens sur le sujet. Si tout est Ok lorsque apparait mon USF, les valeurs contenuent dans FORInfos.Label1.Caption = ... ne s'affiche plus dans mon USF si je l'appelle une seconde fois.

Pour mémoire mon USF est appelé par un clic sur un bouton.

Comment garder en mémoire la valeur de FORInfos.Label1.Caption jusqu'à ce que l'on ferme le classeur ?

Ma compétence est loin de la votre. Merci de m'aider.
 
Re : Petit problème de Userform

Bonjour olivepao,

1) tu dois déclarer une variable publique qui contiendra le contenu de ton message.

Code:
Public Message as String 'A mettre tout en haut d'un module
2) lorsque tu détermines le contenu du message (à l'ouverture du classeur si j'ai bien compris), tu affectes le message à la variable
Code:
Message = "Utilisateur " & Environ("username") + Chr$(13) + Chr$(13) _
               & "Nous sommes le " & d & " du mois courant " & " il est  " & Time & " ! " + Chr$(13) + Chr$(13) + Chr$(13) _
               & "Votre demande doit être formulée pour le mois prochain ! " + Chr$(13) + Chr$(13) _
               & "Si votre demande est formulée pour ce mois, elle est suceptible d'être refusée !            " + Chr$(13) + Chr$(13)

3) à l'initialisation de ton USF, tu affectes à Label1.caption le contenu du message

Code:
Private Sub UserForm_Initialize()
FORInfos.Label1.Caption = Message
End Sub 'A mettre dans le code de l'USF
 
- 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

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
523
Réponses
2
Affichages
419
Réponses
1
Affichages
177
Réponses
15
Affichages
901
Retour