Comment interfacer mes usf avec ma plage de donnéés
zombe a écrit :Etant donné que je ne souhaite pas trop charger mes usf, à partir du combobox7 (de la 2è page), je souhaite que le 2è usf soit appelé. Pouvez-vous en tenir compte?
Il serait plus simple d'ajouter une page sur le Multipage plutôt qu'un autre UF
Clic drroit sur Data ou Complément et ajouter une page. Ensuite coller les contrôles de l'autre UF sur cette page.
zombe a écrit :J’apprécie bcp votre fonction "ctl.tag".
Il n’est pas long mais très puissant.
Je souhaite comprendre son mécanisme pour mieux m’en servir dans mes autres usf.
Quand j'ajoute ou réduit des controles comment faire pour l'adapter?
La propiété Tag -> Dans le fenêtre des propriétés là où tu met les textes des contrôles, tu change la couleur, etc..
Dans le bas de cette fenêtre il y a ->> Tag, c'est là que tu doit remplir avec ??
Beh oui, avec quoi ?
Exemple avec le TexBox à côté de Nom et Prénom (c'est le TextBox64)
Regarde sur la feuille "DONNE" sur quel ligne va cette données..... tu trouve ? ....beh oui, c'est 12
et c'est ce que tu dois mettre dans le Tag. et c'est tout c'est déjà un qui fonctionnera
Idem pour les ComboBox
Pour les contrôles qui sont dans le même cadre c'est le même N° de ligne pour tout ceux du même cadre.
Y a un truc qui colle pas, tu met deux texteBox pour Nombre d'enfant Mineur/Majeur mais dur la feuille DONNE tu n'a qu'une seule ligne pour les deux. Il faut donc Soit ajouter un ligne dans la feuille, soit supprimer un textbox.
Si tu ajoute une ligne oublie pas d'adapter les N° de ligne dans le Tag des autres contrôles.
zombe a écrit :N.B:J'ai convenu avec le utilisateurs de l'outil que je suis entrain de créer que les date seront saisies manuellement pour ne pas trop abuser de votre patience et tous le monde est d'accord (donc c'est bon pour le DTPicker1).
Pour le DTPicker1 s'il n'est pas présent sur la boite à outils tu dois l'ajouté.
- Clic droit sur un endroit libre de la boite à outils
- Contrôles supplémentaires
- Dans la fenêtre cocher ->> Microsoft Date and Time Picker
Et tu le positionne sur l'UF comme un autre contrôle.
Salut Lermite
J'ai enfin compris. que serais-je sans toi?
lermite a écrit :Il serait plus simple d'ajouter une page sur le Multipage plutôt qu'un autre UF
Si y'a pas d'inconvenientmajeur, j'apprécie passer par ma méthode (appeler le 2è usf).
J'ai pu le faire et avec les test réalisés, ca marche.
Avez-vous des objections sur ca?
zombe a écrit :Dans la fenêtre cocher ->> Microsoft Date and Time Picker
Sur mon pc portable (Windows seven) Je ne retrouve pas le DTPicker.
zombe a écrit :Y a un truc qui colle pas, tu met deux texteBox pour Nombre d'enfant Mineur/Majeur mais dur la feuille DONNE tu n'a qu'une seule ligne pour les deux. Il faut donc Soit ajouter un ligne dans la feuille, soit supprimer un textbox.
C'est vrai je vais l'adapter a dans ma plage
Un truc que je comprend pas : je saisie en majuscule dans mes textbox mais dans ma plage je trouve des minuscules.
unn dernier coup de main sans abuser de ta patience svp?
Un grand merci à toi pour ta disponibilité
Si y'a pas d'inconvenientmajeur, j'apprécie passer par ma méthode (appeler le 2è usf).
J'ai pu le faire et avec les test réalisés, ca marche.
Bon courage pour incorporer les données dans la feuille.
Pour le DtPickers ? normalement tu devrais l'avoir.
Salut Lermite
Une dernière question.
Il s'agit du fonctionnement des checbox.
Je n'arrive pas à définir les tag sinon j'ai tout reussi sauf à ce niveau.
Quand je defini les tag des checbox, lors de mes tests, je me rend compte qu'un seul élément du cadre se repète plusieurs fois.
Ex: dans un cadran j'ai les élements vts : CNI, PASSEPRT, FACTURE. Dans la cellule ou doit s'afficher la valeur des chexbox, je vois ceci: Facture, Facture, Facture, Facture, Facture, Facture.
Comme je l'ai dis, j'ai tout reussi suivant vos instructions mais pour les checbox....
Je ne comprend pas cette partie du code :
Fr5 = Fr5 + IIf(Fr5 = "", Ctl.Caption, ", " & Fr5)
Lig = Ctl.Tag
.Cells(Lig, Col).Value = Fr5peut-être que c'est la cause de mon soucis.
Merci de m'aider.
Grand merci à toi
Théoriquement ça ajoute le texte du contrôle (checkbox) séparer par des virgules.
Mais il faudrait plus d'explication pour pouvoir te répondre.
Poste ton classeur.
A+
Tu n'a aucune donnée dans les Tag des checkBox ?
Exemple : dans frame 5 tu à 4 checkBox le résultat doit être sur la ligne 9, tu dois mettre 9 dans le tag des 4 CheckBox
Pour le Frame 6 Idem mais je ne sais pas sur quel ligne tu veux.
'SAUVE TOUTES LES DONNEES
Private Sub BoutSauve_Click()
Dim Ctl As Control
Dim Col As Integer, Lig As Integer
Dim Fr5 As String, Fr6 As String
Col = 2 'pour la colonne B
'Boucle sur tout les contrôles de l'userform
'If Not ControlerRemplir() Then Exit Sub
With Sheets("DONNE")
For Each Ctl In Me.Controls
If TypeOf Ctl Is msforms.TextBox Then
If Ctl.Tag <> "" And Ctl <> "" Then
Lig = Ctl.Tag
.Cells(Lig, Col).Value = Ctl.Text
End If
ElseIf TypeOf Ctl Is msforms.OptionButton Then
If Ctl.Value Then
'l'OptionButton est checker
Lig = Ctl.Tag
.Cells(Lig, Col).Value = Ctl.Caption
End If
ElseIf TypeOf Ctl Is msforms.ComboBox Then
Lig = Ctl.Tag
.Cells(Lig, Col).Value = Ctl.Text
ElseIf TypeOf Ctl Is msforms.CheckBox Then
If Ctl.Value Then
Lig = Ctl.Tag
If Ctl.Tag = 9 Then
Fr5 = Fr5 + IIf(Fr5 = "", Ctl.Caption, ", " & Fr5)
.Cells(Lig, Col).Value = Fr5
Else
Fr6 = Fr6 + IIf(Fr6 = "", Ctl.Caption, ", " & Fr6)
.Cells(Lig, Col).Value = Fr6
End If
End If
End If
Next Ctl
End With
End Sub
'******************************************************************Salut Lermite
Merci pour le code que vous venez d'actualiser.
Le resultat du frame6 est à loger dans B19.
Si j'ai bien compris est-ce que je dois faire pour le frame6:
Else
if ctl.tag =19 then
Fr6 = Fr6 + IIf(Fr6 = "", Ctl.Caption, ", " & Fr6)
.Cells(Lig, Col).Value = Fr6Merci
Elseif ctl.tag =19 then
Fr6 = Fr6 + IIf(Fr6 = "", Ctl.Caption, ", " & Fr6)
.Cells(Lig, Col).Value = Fr6et pas ajouter de End If
Et mettre 19 dansles tag de tout les checkBox du frame6
PS : Bien ça ..
Merci pour tout ton coaching qui porté fruit.
Vive le forum, vive Lermite
sans abuser de ta patience