Résolu : Ne pas afficher le contenu d'une TextBox

Jacob

XLDnaute Nouveau
Bonjour le forum,

J'ai créé un UserForm qui m'affiche X dates, les dates étant l'information variable en fonction de la selection de ma ComboBox, elles s'affichent donc dans des TextBox.

J'ai donc établi un format date pour la TextBox ( CDate ...).

Il y a de base une vingtaine de TextBox SUSCEPTIBLE d'être remplies.

Le problème est que lorsqu'il n'y a rien à afficher la TextBox se remplie de "00:00:00".

Comment faire pour éviter cela ?

Merci d'avance

Voici une partie du code de ma ComboBox :

Private Sub Maliste_Change()
Dim x As Integer

x = Maliste.ListIndex

Habil1 = CDate(Maliste.List(x, 3))
Habil2 = CDate(Maliste.List(x, 4))
Habil3 = CDate(Maliste.List(x, 5))

End Sub

PS: J'ai essayé du .Hide ou .Visible = False mais ça ne fonctionnne pas. Ou peut être l'ai-je mal codé ?
Tout fonctionne parfaitement sauf le fait que je ne trouve pas agréable du tout le fait d'avoir des 0 (zéro) partout.
 
Dernière édition:

Jacob

XLDnaute Nouveau
Re : Ne pas afficher le contenu d'une TextBox

Je vous joints un fichier exemple qui reprend le code que j'ai utilisé.
 

Pièces jointes

  • TextBox.xlsm
    16.1 KB · Affichages: 18
  • TextBox.xlsm
    16.1 KB · Affichages: 23
  • TextBox.xlsm
    16.1 KB · Affichages: 22

Pierrot93

XLDnaute Barbatruc
Re : Ne pas afficher le contenu d'une TextBox

Re,

essaye ceci :
Code:
Private Sub ComboBox1_Change()
Dim x As Integer

    x = ComboBox1.ListIndex
    
    If Not IsEmpty(ComboBox1.List(x, 3)) Then TextBox1 = CDate(ComboBox1.List(x, 3))
    If Not IsEmpty(ComboBox1.List(x, 4)) Then TextBox2 = CDate(ComboBox1.List(x, 4))
    If Not IsEmpty(ComboBox1.List(x, 5)) Then TextBox3 = CDate(ComboBox1.List(x, 5))

End Sub

pas top l'alimentation par la propriété "rowsource"... préférer la méthode "additem"... de nombreux exemples sur le forum...

bon après midi
@+
 

Jacob

XLDnaute Nouveau
Re : Ne pas afficher le contenu d'une TextBox

Merci à toi puisque ça fonctionne comme je le souhaite.

Seulement il y a un petit défaut.

Lorsque je sélectionne, admetons pour l'exemple: "TOTO", j'ai bel et bien les deux premières Textbox qui se remplissent.
Je veux ensuite regarder les habilitations de "JOJO". A ce moment là les TextBox 1 et 3 se mettent à jours mais la deuxième garde l'affichage de la sélection précédente ...

Comment puis-je parer à cela ?

Merci pour l'aide que tu m'as déjà apporté !
 

laetitia90

XLDnaute Barbatruc
Re : Ne pas afficher le contenu d'une TextBox

bonjour Jacob ,pierrot :)

en passant par list

Code:
Dim y As Byte
Private Sub userform_initialize()
 ComboBox1.List = Feuil1.Range("c3:f" & Feuil1.Cells(Rows.Count, 3).End(3).Row).Value
End Sub
Private Sub ComboBox1_Click()
  For y = 1 To 3: Me("Textbox" & y) = ComboBox1.List(ComboBox1.ListIndex, y): Next y
End Sub
 

Pièces jointes

  • TextBox (1).xlsm
    21 KB · Affichages: 18

Pierrot93

XLDnaute Barbatruc
Re : Ne pas afficher le contenu d'une TextBox

Re, bonjour Laetitia:)

HTML:
A ce moment là les TextBox 1 et 3 se mettent à jours mais la deuxième garde l'affichage de la sélection précédente ...

vide les avant l'alimentation :
Code:
TextBox1 = ""
 

Jacob

XLDnaute Nouveau
Re : Ne pas afficher le contenu d'une TextBox

Problème résolu par la solution suivante :

If IsEmpty(ComboBox1.List(x, 3)) Then TextBox1 = " "

Tout simplement....

Merci beaucoup pour votre aide.

Je met à disposition le fichier avec la solution pour les utilisateurs du forum rencontrants éventuellement ce problème ;)
 

Pièces jointes

  • TextBox.xlsm
    16.5 KB · Affichages: 15
  • TextBox.xlsm
    16.5 KB · Affichages: 15
  • TextBox.xlsm
    16.5 KB · Affichages: 16
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 531
Messages
2 089 372
Membres
104 149
dernier inscrit
Kaizho