Userform changer texte d'un CommandButton automatiquement

stef371967

XLDnaute Junior
Re bonjour

Voici y a t'il moyen de changer le texte d'un commandbutton automatiquement
en fonction de l'action de celui si

voir mon fichier joint
je m explique dans mon useform je voudrais avoir un seule BP avec MASQUER / AFFICHER TECH suite a une action de selui si


PS : merci a HASCO

Merci Stef....:eek:
 
G

Guest

Guest
Re : Userform changer texte d'un CommandButton automatiquement

Bonsoir,

Le code de ton module de userForm:

Code:
Private Sub CommandButton9_Click()
    With Sheets("Annexe 1 (DAI-IA-DM) ").Range("D1:J1,N1:O1").EntireColumn
        .Hidden = Not .Hidden
        If .Hidden Then CommandButton9.Caption = "AFFICHER / TECH" Else CommandButton9.Caption = "MASQUER / TECH"
    End With
    Unload MENU
End Sub
Private Sub UserForm_Initialize()
  'A l'initialisation du userForm, vérifier si les colonnes sont cachées et adapter le Caption du bouton
  If Sheets("Annexe 1 (DAI-IA-DM) ").Range("D1:J1,N1:O1").EntireColumn.Hidden Then
    CommandButton9.Caption = "AFFICHER / TECH"
  Else
    CommandButton9.Caption = "MASQUER / TECH"
  End If
End Sub
 

YANN-56

XLDnaute Barbatruc
Re : Userform changer texte d'un CommandButton automatiquement

Bonsoir

N'était-il pas là le sujet?

Userform changer texte d'un CommandButton automatiquement.

Rien que pour avoir le plaisir de recevoir les remontrances de Hasco.:)
Une humble idée jointe... A peut-être poursuivre simplement... Qui sait?

Pour le reste, il suffira d'appeler ce que l'on souhaite.

Amicalement,

Yann
 

Pièces jointes

  • ACTION.xls
    27 KB · Affichages: 84
  • ACTION.xls
    27 KB · Affichages: 84
  • ACTION.xls
    27 KB · Affichages: 92
Dernière édition:

ALW

XLDnaute Nouveau
Bonjour à tous,

Je suis nouvelle sur ce forum et bien que le sujet corresponde à ma demande, ça ne répond pas à ma demande concrète que voici :

Pour note c'est la toute 1ère fois que j'utilise un userform dans mes vba, jusqu'à présent je n'en avais pas ressenti le besoin... ceci explique peut-être pourquoi je bloque !

J'ai créé un userform avec des commandbutton dedans.
Ces Commandbutton sont liés à une requete sql (liée à ma base de données extraite automatiquement de mon ERP) : lorsque je clique dessus, une feuille excel s'ouvre avec la liste issue de ma requete, c'est parfait.

Sauf que je souhaite que le caption des mes commandbutton prenne automatiquement une valeur (issue d'une requete SELECT COUNT (*) liée à ma base de données SQL) à l'ouverture du userform.
J'arrive à leur faire prendre cette valeur si je clique sur les boutons, mais hélas ce n'est pas ce que je veux, je ne veux pas avoir besoin de cliquer pour que le caption se mette à jour; je voudrais que les caption se mettent à jour à l'ouverture du userform

Pour résumer : j'ai un userform avec 2 boutons. Lorsque j'appelle le userform, je voudrais que le caption de mes boutons se mette automatiquement à jour avec ma requete SQL...

Pouvez-vous m'aider ?

NB : j'ai essayer de mettre ma requete à userform_initialize (=> ne met pas à jour mes boutons), userform_activate (idem), Commandbutton1_initalize (idem)
Ma requete ne marche que pour Commandbutton_click et je ne comprends pas pourquoi.

Merci bcp !

ALW
 

juvaxe

XLDnaute Occasionnel
Bonjour

Avant d'ouvrir le Userform, je te propose d'essayer :

Userform.Commandbutton.Caption = "Suivant résultat"

Userform.Show

Tu aurais une autre solution, si je comprends bien ton problème, à savoir de mettre, avant le Userform.show, en Public une information que tu utiliseras dans le Userform_Initialize pour donner la valeur souhaitée au Caption du Bouton

Bonne réception
 

ALW

XLDnaute Nouveau
Bonjour Juvaxe,

Alors suite à ton intervention, j'ai installé toute ma requete SQL récupérant la valeur que je souhaite avt le UserForm.show et très bonne nouvelle : ça marche !!!

Merci beaucoup, tu m'as rendus un énorme service !

Plus qu'à récupérer toutes mes requetes pour les mettre en adéquation avec mes Userforms...

A+
 

ALW

XLDnaute Nouveau
Hello,
Du coup je continue sur mon UserForm, et j'ai 2 questions :

1/ est-il possible d'appeler mes Userforms dans une macro pour qu'il s'affichent les uns à la suite des autres ?

pour le moment j'ai fait ceci :
J'ai créé des macro_userform (macro_userform1, macro userform2...)
J'ai créé une macro_UF qui appelle toutes mes macro userforms avec un timing pour chacune, mais elles restent ouvertes et ne défilent pas comme je le voudrais (en fait il faut fermer le première pour que la deuxième apparaisse) et qu'elles apparaissent en boucle (en gros il faut que cette macro tourne tout au long de la journée)

Sub macro_UF()
Call Macro_userform1
Application.Wait (Now + TimeValue("00:00:20"))

Call Macro_userform2
Application.Wait (Now + TimeValue("00:00:20"))

Call Macro_userform3
Application.Wait (Now + TimeValue("00:00:20"))

End Sub

2/ Deuxième question : dans un de mes UserForm, j'ai un multipage. Je voudrais également que les différentes pages apparaissent à la suite, mais je n'y arrive pas. Une idée ?

Désolée, je suis super novice en UserForm, je me demande s'il ne serait pas plus simple de rester avec mes petites feuilles excel...

Merci pour l'aide apportée !
 

patricktoulon

XLDnaute Barbatruc
bonjour
1° question 1 ouverture de tes 3 userform oui (bien que l'utilité m'est abstraite sans contexte)
et les gestion d'attente devrait etre piloté par autre chose qu'une pose de 20 secondes
voir utiliser le return d'un temps de ce qui se passe entre deux ouverture

2° question multipage non (impossible d'afficher plusieurs pages d'un multipage)

j'en profite aussi pour revenir sur ton bouton ( lire les commentaires )
VB:
Private Sub CommandButton9_Click()
    Dim R As Range
    Set R = Sheets("Annexe 1 (DAI-IA-DM) ").Range("D1:J1,N1:O1").EntireColumn
    R.Hidden = Not R.Hidden
    'CommandButton9.Caption = Array("AFFICHER / TECH", "MASQUER / TECH")(Not r.Hidden)
    Unload Menu
    ' l'art de pédaler pour rien !!!!
    '!!!!!la je n'en vois pas l’intérêt de changer le bouton  puisque tu ferme le userform!!!!!!
    ' il se mettra en bonne position de toute manière a la prochaine ouverture
End Sub
Private Sub UserForm_Initialize()
'A l'initialisation du userForm, vérifier si les colonnes sont cachées et adapter le Caption du bouton
  Dim R As Range
  Set R = Sheets("Annexe 1 (DAI-IA-DM) ").Range("D1:J1,N1:O1").EntireColumn
    CommandButton9.Caption = Array("AFFICHER / TECH", "MASQUER / TECH")(Not R.Hidden)
End Sub
;)
 

ALW

XLDnaute Nouveau
Hello, c'est très gentil mais tout ce qui concerne ce bouton n'est pas de moi mais de la 2eme personne à avoir posté sur ce sujet ;-) (Guest)

Je reviens sur ta réponse suivante :"voir utiliser le return d'un temps de ce qui se passe entre deux ouverture" : je ne comprends pas ce que tu veux dire... et comment faire

Et donc pour ma question 2, tu es en train de me dire d'oublier le multipage pour mon userform2 ? Ca signifie créer plein d'autres userform ; je pensais pouvoir économiser mais tant pis !!!

Pour t'expliquer le contexte : je veux diffuser mon excel sur une télé qui le passera en boucle pour les utilisateurs. Je fais partie d'une usine, et veut les sensibiliser aux erreurs qu'ils ont générées dans notre ERP.
Pour ce faire, on va installer un écran qui passe en boucle tous les userform à la suite (vente / achat / base articles...). Dans chaque userform il y a des boutons indicateurs qui se mettent à jour automatiquement et indiquent la quantité d'erreurs (via des requetes SQL) (ex d'indicateurs : délai d'expédition commandes dépassé)

Donc les userforms doivent s'ouvrir les uns à la suite des autres : le 1er s'ouvre, reste 20 secondes puis se ferme, et passe au suivant... et ce en boucle afin que les utilisateurs puissent voir les indicateurs d'incohérences.

Est-ce que tu as une idée pour ce faire ?

Merci (désolée pour ce roman, c'est juste pour t'expliquer l'utilité)
 

juvaxe

XLDnaute Occasionnel
Bonjour

Je ne comprends pas très bien la finalité.

Si les Userform s'enchainent automatiquement toute la journée, doit-on comprendre qu'il n'y a pas d'action de prévue dans la Userform si ce n'est celle d'arrêter en fin de journée.

S'agit-il de mettre quelque part un écran d'information avec des écrans qui "tournent" à longueur de journée ?

Si tel est le cas, ce n'est peut-être pas Excel le bon outil.

Pourquoi ne pas penser à Power Point qui sait très bien le faire, ou à un autre outil orienté communication qui pourrait exister

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 873
Membres
103 980
dernier inscrit
grandmasterflash38