agir sur plusieures textbox ou combobox à la fois

aeque

XLDnaute Occasionnel
Bonjour le fofo

une fois de plus j'ai besoin de vous

J'aimerai savoir quel est le moyen d'agir sur plusieurs textbox à la fois.

voilà mon code, je traite les textbox une par une est c assez fastidieux surtout que le dois en faire d'autres comme ca

Merci du coup de main

Code:
Private Sub TextBox5_AfterUpdate()
 If Not (IsDate(TextBox5.Value)) Then
            MsgBox "Entrée la date sous la forme jj/mm/aaaa": TextBox5.Value = ""
        Else
            TextBox5.Value = Format(DateValue(TextBox5.Value), "dd/mm/yyyy")
        End If
End Sub

Private Sub TextBox6_AfterUpdate()
 If Not (IsDate(TextBox6.Value)) Then
            MsgBox "Entrée la date sous la forme jj/mm/aaaa": TextBox6.Value = ""
        Else
            TextBox6.Value = Format(DateValue(TextBox6.Value), "dd/mm/yyyy")
        End If
End Sub

Private Sub TextBox7_AfterUpdate()
 If Not (IsDate(TextBox7.Value)) Then
            MsgBox "Entrée la date sous la forme jj/mm/aaaa": TextBox7.Value = ""
        Else
            TextBox5.Value = Format(DateValue(TextBox7.Value), "dd/mm/yyyy")
        End If
End Sub

Private Sub TextBox8_AfterUpdate()
 If Not (IsDate(TextBox8.Value)) Then
            MsgBox "Entrée la date sous la forme jj/mm/aaaa": TextBox8.Value = ""
        Else
            TextBox8.Value = Format(DateValue(TextBox58Value), "dd/mm/yyyy")
        End If
End Sub
 

kjin

XLDnaute Barbatruc
Re : agir sur plusieures textbox ou combobox à la fois

Bonsoir,
Des tutos sur le sujet sont foisons sur le forum ainsi que celui-ci
Note que l'événement "AfterUpdate" n'est pas géré dans un module de classe concernant les variables de type TextBox, il faudra donc contourner le pb.
A+
kjin
 
G

Guest

Guest
Re : agir sur plusieures textbox ou combobox à la fois

bonsoir,
Hello kjin:)

Une façon de contourner légèrement le problème si les modules de classe te parraissent trop compliqués:
Une fonction générique dans ton module de userForm, que tu appelles dans les évènements After_Udapte de tes contrôles.
Tu n'auras plus qu'à écrire pour chacun d'eux:
Code:
TextBoxN=GetDate(TextBoxN.Text)
Comme ci-dessous
Code:
Private Function GetDate(LaDate As String) As String
    If Not (IsDate(LaDate)) Then
        MsgBox "Entrée la date sous la forme jj/mm/aaaa"
        GetDate = ""
    Else
        GetDate = Format(DateValue(LaDate), "dd/mm/yyyy")
    End If
End Function
 
Private Sub TextBox1_AfterUpdate()
TextBox1 = GetDate(TextBox1)
End Sub

A+
 

JNP

XLDnaute Barbatruc
Re : agir sur plusieures textbox ou combobox à la fois

Bonjour le fil :),
Aeque m'ayant appelé "au secours" en MP, je me suis lancé et en suivant le tuto proposé par Kjin, j'ai commis mon premier module de classe, en retenant KeyPress et Change :p...
C'est vrai que c'est plutôt sympa, même si c'est pas évident la première fois :rolleyes:...
J'ai limité volontairement aux 3 premiers TextBox, car ça métonnerait qu'il n'y ait que des dates ;)...
Au passage, une petite question aux spécialistes des modules de classe : comment on peut faire pour savoir quel est le contrôle qui a déclenché l'événement :confused: ?
Bon dimanche :cool:
 

Pièces jointes

  • Modules de classe.xls
    51 KB · Affichages: 48
  • Modules de classe.xls
    51 KB · Affichages: 48
  • Modules de classe.xls
    51 KB · Affichages: 47

JNP

XLDnaute Barbatruc
Re : agir sur plusieures textbox ou combobox à la fois

Re :),
MsgBox TargetChangeBox.Name
Y a des fois où je suis vraiment bête :p...
Comme la propriété Name n'était pas dans la liste automatique, ben, j'ai même pas testé ;)...
Merci Jean-Marcel et bonne journée :cool:
PS : il y a un trou dans mon exemple : comme il n'y a pas d'événement Exit, il est possible de quitter le TextBox sans avoir mis une date complète :eek:...
 

laetitia90

XLDnaute Barbatruc
Re : agir sur plusieures textbox ou combobox à la fois

bonjour tous trop nombreux pour vous citer tous :)
dans ce cas precis textbox pas renommees on peut l'ecrire comme cela
si date il faut prevoir de supprimer caracteres si on se trompe... donc code un peu plus long dans module de classe... limite le nombre de caracteres dans proprietees a 10 pour chaque textbox cela limite deja pas mal d'erreurs ..
 

Pièces jointes

  • Copie de Modules de classe-1.zip
    15.5 KB · Affichages: 21

JNP

XLDnaute Barbatruc
Re : agir sur plusieures textbox ou combobox à la fois

Re :),
Ben dis donc, ça commence à me plaire les modules de classe :p...
Merci Laetitia de m'avoir montrer qu'on pouvait gérer 2 événements dans un seul module ;).
Et avec Jean-Marcel, ça m'a permis de supprimer le SendKeys que je n'affectionne pas vraiment :rolleyes:...
Donc ma deuxième mouture :D.
Bon dimanche :cool:
 

Pièces jointes

  • Modules de classe.xls
    38 KB · Affichages: 53
  • Modules de classe.xls
    38 KB · Affichages: 52
  • Modules de classe.xls
    38 KB · Affichages: 54

Statistiques des forums

Discussions
312 025
Messages
2 084 749
Membres
102 652
dernier inscrit
Helpmeplz