Mes textbox ne se remplissent pas correctement

Résolu/Fermé
VDB.57 - Modifié par crapoulou le 22/04/2016 à 22:28
 VDB.57 - 23 avril 2016 à 21:28
Bonjour,
Récemment j’ai fait appel à vos services et votre réponse était des plus efficaces, ce dont je vous remercie encore.
Actuellement je bute sur un problème : j’ai deux feuilles identiques une nommée « adhérents » et la deuxième « sauvegarde ».
Dans mon userform il y a 2 combobox qui me permettent d’appeler les noms des inscrits de la colonne « C » et ce, pour chacune des deux feuilles.
A chaque nom, est attribué 7 « textbox » dans ma userform.
Mon problème : (voir fichier joint)
Lorsque je sélectionne un nom avec ma combobox 1 de la feuille « sauvegarde » les noms correspondants sont exacts mais les textbox se remplissent avec les valeurs de la feuille « adhérents » au lieu de la feuille « sauvegarde » !!!!!
Pour ma combobox 3 de la feuille « 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 Sub

Private Sub ComboBox1_Change()
    Dim Ligne As Long
    Dim I As Integer
    
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2

    ComboBox2 = Ws.Cells(Ligne, "B")
    For I = 1 To 7
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
    Next I
End Sub

Private Sub ComboBox3_Change()
    Dim Ligne As Long
    Dim I As Integer
    
    If Me.ComboBox3.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox3.ListIndex + 2
    ComboBox2 = Ws.Cells(Ligne, "B")
    For I = 1 To 7
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
    Next I
End Sub

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
22 avril 2016 à 19:40
Bonjour,
Ws est déclarée ou ??
0
Toutes mes excuses, mais je suis incapable de donner une réponse
0
Tout ce que je peux dire c'est que tout fonctionne correctement, SAUF lorsque je sélectionne un nom de ma feuille "sauvegarde", mes textbox de 1 à 7 se remplissent avec les valeurs de ma feuille "adhérents" au lieu de ma feuille"sauvegarde".

Merci pour votre contribution
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
22 avril 2016 à 20:56
Au début du module, avant le 1° Private Sub, ajoutes :
Option Explicit

Ça te permettra d'identifier toutes les variables que tu as oublié de déclarer !
0
VDB.57 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
22 avril 2016 à 21:26
C'est fait.
Tout fonctionne normalement aucune demande m'est faite.
Le seul HIC c'est que les textbox de mon userform se remplissent avec les données de ma feuille "adhérents" a la place des données de ma feuille "sauvegarde" lorsque je sélectionne un nom "sauvegarde".dans ma combobox 1
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
22 avril 2016 à 23:06
Pourquoi à la place ??
Ws est déclarée ou ?? (sic F894009)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 avril 2016 à 07:44
Bonjour tout le monde,
Si vous n'avez pas d'erreur après avoir mis option explicit, c'est que ws est déclarée quelque part.
Donc cette variable garde la dernière affectation qui est faite dans userform_initialize, c'est à dire la feuille "adhérents". Vous devez réaffecter cette variable à "Sauvegarde"
0
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 Sub



Le code ci dessous du pavé "sauvegarde" ne fonctionne pas il est remplacé par le pavé "adhérents"

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


Merci encore pour votre implication et votre aide au petit retraité que je suis.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > VDB.57
23 avril 2016 à 16:31
Re,
Dans ce code les textbox de 1 a 7 sont rendues visible deux fois!!!
La combobox3 est remplie par des données de la feuille adhérents!!!
Que voulez-vous, car dans votre demande de départ, c'était pour le choix combobox3 que vous aviez un problème de remplissage des textbox????
0
VDB.57 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
23 avril 2016 à 17:16
Pour la combobox 3 tout est OK.

Pour la combobox 1 les textbox sont remplies par erreurs par les données de la combobox 3, au lieu de la 1.

Toutes mes excuses si mes renseignements précédents étaient mauvais.

Je ne sais comment vous remercier pour le temps que vous me consacrez.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > VDB.57
23 avril 2016 à 20:44
Re,
Si je comprends bien, quand vous sélectionnez avec la combobx1, les données textboxs doivent provenir de la feuille sauvegarde. Donc vous devez affecter la variable ws
set ws=sheets("sauvegarde") au début de l'événement combobox1_change après les déclarations de variables
0