Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher les données dans les TextBox en fonction d'une ComboBox

choupie972

XLDnaute Nouveau
Bonjour,
Je suis débutante en VBA et tente vainement de créer un UserForm en m'inspirant des différents exemples disponibles sur le site.
Le bouton "Nouveau client" fonctionne parfaitement mais mon souci est que je ne parviens pas à afficher la liste déroulante avec les noms des clients dans la ComboBox et les données correspondantes dans les TextBox.
Je vous joins mon petit fichier test.
Merci de votre aide,
 

Pièces jointes

  • TEST.xlsm
    19.5 KB · Affichages: 65
  • TEST.xlsm
    19.5 KB · Affichages: 57
  • TEST.xlsm
    19.5 KB · Affichages: 70

fhoest

XLDnaute Accro
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Rebonjour,
il faut enlever ceci de rowsource dans les propriétés de la combobox directement dans le design du usf
Code:
CLIENTS!A2:A1000
si il y a un rowsource on ne peut le remplir par le code
A+
 

choupie972

XLDnaute Nouveau
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Merci fhoest,
J'ai vraiment l'impression qu'en VBA, dès qu'on solutionne un problème, un autre problème se présente...
Cette fois, c'est ma fonction modifier qui ne transfère pas les données dans la feuille excel et je ne sais pas pourquoi..
Quelle galère !
Désolée de vous embêter avec mes problèmes.. j'aimerais comprendre..
A +
Choupie
 

Staple1600

XLDnaute Barbatruc
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Bonsoir à tous______________EDITION: Bonsoir fhoest

choupie972
Ce code précédemment soumis fonctionnait (et avait l'avantage de ne pas utiliser de boucle)
Code:
Private Sub UserForm_Initialize()
With Sheets("CLIENTS")
ComboBox1.List = Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
End With
TextBox1.Visible = True: TextBox2.Visible = True
End Sub

Pourquoi ne l'avez-vous pas utilisé ?
 
Dernière édition:

choupie972

XLDnaute Nouveau
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Re,
Mon bouton "VALIDER" correspond à une validation de modification mais j'ai dû mal le paramétrer.
En fait, si j'ai bien compris, le code de modification :

For I = 1 To 20
If Me.Controls("Textbox"& I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)

ne peut être utilisé que si l'on n'a pas modifié les noms des TextBox ?

Dans mon cas, je n'arrive pas à adapter ce code en mentionnant les noms de mes TextBox.
Pouvez-vous m'aider ?
Merci de votre patience,
Choupie
 

Staple1600

XLDnaute Barbatruc
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Re


choupie972
Tu veux qu'on t'aide mais tu ne réponds pas aux questions...
(voir mon précédent message)

Voici un exemple pour boucler sur TextBox (qu'ils soient renommés ou pas)
Code:
Private Sub CommandButton1_Click()
Dim Ctrl As Control
For Each Ctrl In Controls
    If TypeOf Ctrl Is MSForms.TextBox Then
    If Ctrl.Visible Then
    MsgBox Ctrl.Object.Value
    End If
    End If
Next Ctrl
End Sub
PS: code testé et fonctionnel
 
Dernière édition:

choupie972

XLDnaute Nouveau
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Désolée Staple1600, pour répondre à ta question, j'ai remis le code qui fonctionnait dans Initialize.
Pour le code de modification, comme je te l'ai dit, je ne sais pas le paramétrer correctement.
Mon bouton VALIDER correspond à VALIDER MODIFICATION.
Je joins mon fichier modifié

Merci,
 

Pièces jointes

  • BASE CLIENTS.xlsm
    250.5 KB · Affichages: 25
  • BASE CLIENTS.xlsm
    250.5 KB · Affichages: 33
  • BASE CLIENTS.xlsm
    250.5 KB · Affichages: 29

fhoest

XLDnaute Accro
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Bonsoir,
comme Staple1600 l'avait déjà fait remarqué au poste #10,
le code comme il est écrit ne peut être modifié pour cause de remplacement des noms avec un sens logique pour un remplissage mais pas pour une boucle.
ce que tu doit faire pour utiliser le code c'est de renomer comme à l'origine ou d'écrire ligne par ligne tes correspondances de cellules et Textbox.
A+
 

choupie972

XLDnaute Nouveau
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Oui Staple, j'ai vu le code et l'ai testé mais il ne fonctionne pas dans mon fichier.
Il me présente des MsgBox pour chaque champ, et même si je valide chaque MsgBox, au final, les données ne sont pas modifiées dans mon classeur EXCEL.
Je joins le fichier modifié.

Fhoest, peux-tu m'indiquer le code à utiliser pour écrire ligne par ligne mes correspondances cellules/TextBox ?

Merci de votre aide à tous les deux,
 

Pièces jointes

  • BASE CLIENTS.xlsm
    251.5 KB · Affichages: 36
  • BASE CLIENTS.xlsm
    251.5 KB · Affichages: 37
  • BASE CLIENTS.xlsm
    251.5 KB · Affichages: 43

Staple1600

XLDnaute Barbatruc
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Re

choupie972
Bien sur qu'il fonctionne si on fait les adaptations nécessaires...
J'avais précisé que ce code était un exemple (d’où l'utilisation des MsgBox)

Il suffisait d'adapter avec ton code existant!

Ci-dessous ce n'est toujours qu'un exemple illustratif
(donc je te laisse faire les adaptations nécessaires sur ton vrai fichier)
Code:
Private Sub CommandButton1_Click()
Dim Ctrl As Control, Ligne&, I As Byte
Ligne = 1
I = 1
For Each Ctrl In Controls
If TypeOf Ctrl Is MSForms.TextBox Then
If Ctrl.Visible Then
Cells(Ligne, I) = Ctrl.Object.Value
I = I + 1
End If
End If
Next Ctrl
End Sub
 
Dernière édition:

choupie972

XLDnaute Nouveau
Re : Afficher les données dans les TextBox en fonction d'une ComboBox

Merci pour l'exemple illustratif Staple,
J'ai modifié le nom relatif au bouton, jusqu'ici tout va bien
Ensuite, j'avoue que ton code m'a laissée dubitative.. je ne vois pas quoi changer d'autre dans ce code
Pourtant, il doit bien y avoir quelque chose à modifier puisque ca ne marche pas sur mon fichier...
Je comprends que tu veuilles me laisser chercher et trouver par moi-même, je suis convaincue qu'il n'y a que comme cela qu'on progresse... mais je ne sais pas...
Merci de ton aide,
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…