(RESOLU)Un Bouton en double fonction

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 !

chaelie2015

XLDnaute Accro
Bonjour Forum
En premier phase
je souhaite faire afficher deux Caption pour meme bouton selon des cas .

Si les combobox de 1a 9 dans USF1 non vide alors le bouton CommandButton1_Click son CommandButton1.Caption = Valider sinon CommandButton1.Caption = Quitter
SALUTATIONS
 
Dernière édition:
Re : Un Bouton en double fonction

Bonsoir chaelie2015
bonsoir le fil,Le Forum

Pas évident sans fichier (nous faut il imaginer et construire un fichier pour répondre à ta question ?)
sinon un truc du genre ....

VB:
CommandButton1.Caption = IIf(1 à 9 <>"" "Valider","Quitter")

Dans l'attente
Bonne fin de Soirée
Amicalement
Jean Marie
 
Dernière édition:
Re : Un Bouton en double fonction

Bonsoir chaelie2015
bonsoir le fil,Le Forum


VB:
CommandButton1.Caption = IIf(1 à 9 <>"" "Valider","Quitter")[COLOR=blue][/COLOR][/highlight ]


Jean Marie[/QUOTE]
Bonsoir Jean marie 
MERCI POUR LA RÉPONSE ET JE CHERCHE CE GENRE DE CODE 
MAIS JE N'AI PAS COMPRIS COMMENT FAIRE POUR REMPLACER 
1 [U]à[/U] 9 
DANS LE CODE VBA
MERCI
 
Dernière édition:
Re : Un Bouton en double fonction

Bonsoir ROGER
MERCI POUR LA REPONSE,C'EST EXACTEMENT CE QUE JE CHERCHAIS, MAIS LORS DE COPIER TON CODE A MON FICHIER J'AI UN BUG
ERREUR D'EXECUTION438
PROPRIETE OUMETHODE NON GEREE PAR CET OBJET
A CE NIVEAU DE TON CODE
........
If Controls(i).Value = "" Then...
.......
merci de m'expliquer ce bug
SALUTATIONS
 
Re : Un Bouton en double fonction

Re...


(...) LORS DE COPIER TON CODE A MON FICHIER J'AI UN BUG
(...)
Je pense que vous voulez dire : « lorsque je copie le code dans un autre fichier...» car le code fonctionne dans le fichier que vous avez fourni.​


(...) ERREUR D'EXECUTION438
PROPRIETE OUMETHODE NON GEREE PAR CET OBJET
A CE NIVEAU DE TON CODE
........
If Controls(i).Value = "" Then...
.......

(...)
Comme vous ne fournissez ni le véritable fichier à traiter, ni son code, je ne vais pouvoir faire que des suppositions.
Nous gagnerions certainement du temps si nous disposions d'autre chose qu'un fichier fictif...

Si la ligne incriminée produit l'erreur 438, c'est que Controls(i) existe bel et bien, mais est un objet sans propriété Value (un objet Frame, ou Label, par exemple). Donc Controls(i) ne peut être un objet ComboBox car un tel objet possède la propriété Value.
Si i est bien tel que 1 ≤ i ≤ 9, j'en conclus que vos ComboBox1, ComboBox2, ..., ComboBox9 ne sont pas indexés par 1 ≤ i ≤ 9 dans la collection Controls.

Si tel est le cas, il vous faut trouver les index de vos ComboBox. Pour ce faire, ajoutez une feuille (que vous pourrez supprimer par la suite) à votre classeur, et, en supposant que votre formulaire réel est bien UserForm1, exécutez la procédure :

Code:
Sub bbb()
Dim i%, u(-1 To 999, 1)
  u(-1, 0) = "i": u(-1, 1) = "UserForm1.Controls(i)"
  With UserForm1.Controls
    For i = 0 To .Count - 1: u(i, 0) = i: u(i, 1) = .Item(i).Name: Next
    [A1].Resize(1 + .Count, 2).Value = u
  End With
End Sub
Elle vous donnera la liste de vos contrôles avec leur index.

Relevez la liste des index qui vous conviennent et remplacez la procédure CommandButton1_texte par celle-là :​
Code:
Sub CommandButton1_texte()
Dim i%, cb()

  cb = Array(1, 2, 10, 3, 4, 5, 6, 7, 8) 'Liste des "bons" index.

  For i = UBound(cb) To 0 Step -1
    If Controls(cb(i)).Value = "" Then Exit For
  Next
  CommandButton1.Caption = IIf(i < 0, "Valider", "Quitter")
End Sub
Voyez l'exemple en pièce jointe.
Mais tout cela fait beaucoup de « si » : il se peut que je n'ai pas été bon devin. Auquel cas il ne vous reste plus qu'à faire l'effort de fournir votre véritable classeur...​


Bonne nuit.


ℝOGER2327
#8094


Vendredi 13 As 143 (Moustaches du Dr Faustroll - fête Suprême Tierce)
24 Brumaire An CCXXIV, 0,1618h - orange
2015-W46-7T00:23:18Z
 

Pièces jointes

Dernière édition:
Re : Un Bouton en double fonction

Bonjour ROGER, PASCAL, Forum
Re...
.................
Si la ligne incriminée produit l'erreur 438, c'est que Controls(i) existe bel et bien, mais est un objet sans propriété Value (un objet Frame, ou Label, par exemple). Donc Controls(i) ne peut être un objet ComboBox car un tel objet possède la propriété Value.
...........

Je suis désolé de ne pas donner toutes les détails de mon fichier pour des raisons confidentielles, mais je vous promis que pour les prochaines, je ferai mon possible pour joindre le bon fichier.
concernant mon souci , c’était les Label et les TextBox, tu as raison, encore une fois je suis désolé.
mon souci est résolut (super)
SALUTATIONS
 
- 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

D
  • Question Question
Réponses
2
Affichages
803
David1902
D
I
Réponses
5
Affichages
1 K
IlyesT36
I
T
  • Question Question
Réponses
125
Affichages
13 K
C
Réponses
6
Affichages
1 K
charette36
C
Y
Réponses
2
Affichages
1 K
Y
B
Réponses
3
Affichages
948
Billard
B
Retour