Tant qu'à l'écrire, que ce soit élégant

  • Initiateur de la discussion Initiateur de la discussion François l'aîné
  • 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 !

F

François l'aîné

Guest
Bonjour à toutes et à tous

J'ai encore recours à vous :

1ére question :

Quand on a plusieurs "TextBox-" à remettre à blanc, n'y a-t'il pas quelque chose de plus élégant que d'aligner ou d'empiler les "TextBox- = """. Il me semble avoir vu ici quelque chose par tableau. J'ai essayé par boucle mais je n'y arrive pas.

2ième question :

Peux-t'on reproduire par programmation l'équivalent de la saisie semi-automatique d'Excel (qui rajoute la fin quand elle a le début) dans un USF ?
Ya-t'il un fil traitant de cela ?

Encore merci à tous et bonne journée.

François

PS : j'ai rajouté "l'aîné" car j'ai vu un autre François.
 
Bonjour

En réponse à ta première demande :

For Each ctrl In UserForm1.Controls
If Left(ctrl.Name, 7) = "TextBox" Then ctrl.value = ""
Next

Ce code va te vider tout les textbox d'un userform.

je regarde pour la 2.

Salut
Hervé
 
Bonjour François, Hervé

Pour ta première question, Hervé a bien répondu bien qu'il n'ait pas déclaré "Ctrl" (As Control)

Et si jamais tes TextBoxs ont été renommées avec des noms non conventionnels, tu pourras toujours rattraper le coup avec :

Dim Ctrl As Control
   For Each Ctrl in Me.Controls
      If TypeOf Ctrl Is MSForms.TextBox Then Ctrl = ""
   Next

... d'autres exemple de "Mass Update de Control" dans cette démo : Lien supprimé

Sinon pour la seconde question, pas mal ton idée Hervé, mais juste pour la performance car, je pense que je vais t'apprendre qu'une ComboBox est faite pour faire exactement ceci sans avoir à faire d'usine à gaz...

En efftet, soit en mode Design par la fenêtre Propriété, soit en Run Time à l'initialisation du UserForm, on peut faire ceci :

Private Sub UserForm_Initialize()
   With Me.ComboBox1
      .List() = Range("a1:a10").Value
      .MatchEntry = fmMatchEntryComplete
      .ShowDropButtonWhen = fmShowDropButtonWhenNever
   End With
End Sub

Ce qui est tout de même bien plus simple, mais sinon ton code tient la route.

Bonne Fin de Journée
@+Thierry
 
Bonsoir Hervé et Thierry

Eh bé ! comme on dit chez nous (avé l'assen) : vous m'espantez !!

J'ai déja mis en application la premiére suggestion de Hervé en rajoutant le Dim Ctrl as Control et évidemment cela fonctionne. Je conserve la 2ième suggestion de Thierry.

Je vais soigneusement étudié et précieusement conservé ce que vous me transmettez pour ma deuxième question sachant pertinemment que cela fonctionnera.

Merci à vous deux et bonne fin de soirée

François.
 
- 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
10
Affichages
7 K
Réponses
3
Affichages
2 K
Retour