VBA word

macroVB Messages postés 26 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 11 mai 2007 - 26 oct. 2006 à 18:21
macroVB Messages postés 26 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 11 mai 2007 - 27 oct. 2006 à 11:23
bonsoir tous ,
je suis debutante en VBA et en informatique en général, j'essaye de faire une application de gestion en VBA word et j'ai un ptit problème si vous voulez bien m'aider ,
j'ai 3 Textbox et 3 Combobox, les 3 textbox pour afficher des infos que je recupere a partir d'une table de base de donnée sous access a savoir le numero du client, le nom du client et la date de commande , les 3 combobox pour faire une recherche par critere , le combobox1(liste tout les numero de client que j'ai ds ma table) autrement dis le combobox1 pour selectionner un numero de client, le combobox2 pour le nom du client et le combobox3 pour selectionner la date de commande , donc j'applique ce code
Private Sub ComboBox1_Change()
Textbox1.Text = ComboBox1.Text
Textbox2.Text = ComboBox1.ListIndex
Textbox3.Text = ComboBox1.ListIndex
End sub
mais cela ne marche pas , en fin il m'affiche bien ds le premier textbox1 le numero du projet mais dans les deux autres textbox il m'affiche que les indexes et je ne sais pas comment palier a ce probleme
est ce que vous auriez une idée comment faire s'il vous plait
merci de vos reponses

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2006 à 18:30
Bien, j'ai consulté ma boule de crystal. D'après elle, tu souhaite affiché dans TextBox2 le texte du ComboBox2 correspondant à l'item sélectionné dans le ComboBox1.
Ca devrait, je pense, donner quelque chose comme ça (j'ai pas fait l'essai) :

Private Sub ComboBox1_Change()
Textbox1.Text = ComboBox1.Text
Textbox2.Text = ComboBox2.List(ComboBox1.ListIndex)
Textbox3.Text = ComboBox3.List(ComboBox1.ListIndex)
End sub

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
macroVB Messages postés 26 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 11 mai 2007
26 oct. 2006 à 18:42
non cela ne marche pas!  je viens d'essayer il me genere un message d'erreur:
" Utilisation incorrecte de Null"
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2006 à 18:48
Tes ComboBox sont bien remplies ???

Si tes ComboBox sont vides tu auras ce message.

Avec mon code, il faut le même nombre de ligne dans chaque combo, il faut que les informations soient rangées dans le même ordre.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
macroVB Messages postés 26 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 11 mai 2007
26 oct. 2006 à 19:32
en fait ds mon userform j'ai appliqué ce code
Private Sub UserForm_Initialize()
Set rs8 = db.OpenRecordset("Clients", dbOpenTable)
Do Until rs8.EOF
     ComboBox1.AddItem rs8.Fields("numClients").Value
  rs8.MoveNext
  Loop
End sub
donc ma liste est  rempli, mais en fait ce que j'ai oubliée de préciser c'est que je fait une selection a partir d'un combobox, les autres sont desactivés ( une selection a la fois ) pour le moment je le fait seulement a partir du premier combobox en selectionnat que le numero du client
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
macroVB Messages postés 26 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 11 mai 2007
26 oct. 2006 à 20:23
ca a marché ,  j'ai relis mon code y'avais une petite erreur , mais la ca marche bien sauf que quand je fais le tour de toute la liste  quand je reviens sur le numero de depart ca beug il me fait , Impossible de lire la propriété List.Index de Table de propriétés non valide !!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
27 oct. 2006 à 01:03
Bonsoir,
Tu ne crois pas qu' il faudra remplir tes trois Combos
Do While Not rs8.EOF
     ComboBox1.AddItem rs8.Fields("numClients").Value
     ComboBox2.AddItem rs8.Fields("nomClients").Value
     ComboBox3.AddItem rs8.Fields("DateCommande").Value  
     rs8.MoveNext
  Loop
End sub

en plus le code doit être dans les Sub Click et non dans Change

Private Sub ComboBox1_Click()
Textbox1.Text = ComboBox1.Text
Textbox2.Text = ComboBox2.List(ComboBox1.ListIndex)
Textbox3.Text = ComboBox3.List(ComboBox1.ListIndex)
End sub

Private Sub ComboBox2_Click()
Textbox2.Text = ComboBox2.Text
Textbox1.Text = ComboBox1.List(ComboBox2.ListIndex)
Textbox3.Text = ComboBox3.List(ComboBox2.ListIndex)
End sub

Attention: pour qu' il n' y est pas d' erreur dans les index,
il faut qu' il y a le même nombre d' items dans tes trois combos.
vérifies avant qu' il n' y a pas de champs vides.

chaibat
0
macroVB Messages postés 26 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 11 mai 2007
27 oct. 2006 à 11:23
 Bonjour chaibat05, bonjour casy, bonjour a tous
C'est parfait , j'ai suivie vos conseils et ça marche !
merci beaucoup,  les conseils que vous m'avez donnés me sont d'une tres grande aide
merci, merci, merci
0
Rejoignez-nous