Text box userform

Fermé
VDB.57 - 20 avril 2016 à 13:16
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 20 avril 2016 à 13:56
Bonjour,
Récemment j’ai fait appel pour la première fois à vos services et votre réponse était des plus efficace, ce dont je vous remercie encore.
Depuis ma retraite j’ai pris la présidence d’une association et me suis lancer dans la construction d’un outil (userform) de gestion des adhérents. Je suis un béotien en la matière et c’est plus du bricolage que je fais. Mais globalement cet outil fonctionne.

Actuellement je bute sur un problème : j’ai deux fichiers identiques un nommé « adhérents » et le deuxième « sauvegarde ».
Dans mon userform il y a 2 combobox qui me permettent d’appeler les noms de la colonne « C » pour chacun de ces fichiers.
A chaque nom, est attribué 7 « textbox »

Mon problème : (voir fichier joint)

Lorsque je sélectionne un nom avec ma combobox 1 du fichier « sauvegarde » les noms correspondants sont exacts mais les textbox se remplissent avec les valeurs du fichier « adhérents » au lieu du fichier « sauvegarde » !!!!!

Pour ma combobox 3 du fichier « adhérents » tout se rempli correctement.
Par avance je vous remercie pour votre aide précieuse.




Private Sub UserForm_Initialize()

Me.TextBox8.Value = Range("T1").Value
Me.TextBox9.Value = Range("R2").Value
Me.TextBox10.Value = Range("N6").Value
TextBox10 = Round(TextBox10, 0)


Dim J As Long
Dim I As Integer

ComboBox2.ColumnCount = 1
ComboBox2.List() = Array("", "CHEQUE", "ESPECE")


Set Ws = Sheets("Sauvegarde")
With Me.ComboBox1
For J = 2 To Ws.Range("c" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("c" & J)
Next J
End With

For I = 1 To 7
Me.Controls("TextBox" & I).Visible = True

Next I



Set Ws = Sheets("adhérents")
With Me.ComboBox3
For J = 2 To Ws.Range("c" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("c" & J)
Next J
End With

For I = 1 To 7
Me.Controls("TextBox" & I).Visible = True
Next I


End Subb
A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
20 avril 2016 à 13:56
Bonjour VDB, bonjour le forum,

Déjà il semble qu'il y ait confusion dans les termes. Tu parles de deux fichiers mais ton code, lui, fait allusions à deux onglets du même fichier (ou classeur).
Puis, dans la même procédure d'initialisation de l'UserForm, tu utilises la même variable Ws en la redéfinissant. C'est tout à fait faisable mais complique la compréhension du code.
Je te conseille de déclarer tes variables et de les définir de manière claire. Ton code modifié en exemple :

Private Sub UserForm_Initialize()
Dim A As Worksheet 'déclare la variable A (onglet Adhérents)
Dim S As Worksheet 'déclare la variable S (onglet Sauvegarde )
Dim I As Byte

Set A = Sheets("adhérents") 'définit l'onglet A
Set S = Sheets("Sauvegarde") 'définit l'onglet S
Me.TextBox8.Value = A.Range("T1").Value 'peut-être S à la place de A ?
Me.TextBox9.Value = A.Range("R2").Value 'peut-être S à la place de A ?
Me.TextBox10.Value = A.Range("N6").Value 'peut-être S à la place de A ?
TextBox10 = Round(TextBox10, 0)
ComboBox2.ColumnCount = 1 'c'est la valeur par défaut, pourquoi le spécifier ?
ComboBox2.List() = Array("", "CHEQUE", "ESPECE")
Me.ComboBox1.List = S.Range("C2:C" & S.Cells(Application.Rows.Count, 3).End(xlUp).Row).Value
Me.ComboBox3.List = A.Range("C2:C" & A.Cells(Application.Rows.Count, 3).End(xlUp).Row).Value

For I = 1 To 7
    Me.Controls("TextBox" & I).Visible = True
Next I
End Sub

0