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

  • Initiateur de la discussion François l'aîné
  • Date de début
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.
 
H

Hervé

Guest
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é
 
H

Hervé

Guest
Re

pour la 2ème question , regarde en pièce jointe, je ne sais pas si c'est ceci que tu recherches ????

Salut
Hervé
 

Pièces jointes

  • Classeur1.zip
    9.9 KB · Affichages: 21
  • Classeur1.zip
    9.9 KB · Affichages: 22
  • Classeur1.zip
    9.9 KB · Affichages: 20
@

@+Thierry

Guest
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
 
F

François l'aîné

Guest
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.
 

Statistiques des forums

Discussions
312 553
Messages
2 089 529
Membres
104 205
dernier inscrit
mehaya63