OVH Cloud OVH Cloud

problème combo box

7 réponses
Avatar
xavier
Bonjour,

Je repose mon probl=E8me avec le code cette fois

Voil=E0 j'ai un userform qui me permet de s=E9lectionner dans=20
une combobox le nom d'un client et de faire afficher dans=20
un lebel ces renseignements.

Mon probl=E8me est que lorsque je commence =E0 taper le=20
nom,et que je me trompe dans une lettre, il m'affiche un=20
d=E9boguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence =E0 taper=20
dans la combobox les premi=E8res lettres (comme j'utilise=20
la fonction change, il m'affiche =E0 chaque changement de=20
lettre les coordonn=E9es du premier nom commen=E7ant par ces=20
lettres -ce qui est logique-) mais si je tape "dupond" au=20
lieu de "dupont" il m'ouvre la fen=EAtre de d=E9boguage car=20
pas de dupond dans ma liste de recherche (ce qui est=20
=E9galement logique)=20

J'ai essay=E9 avec les fonctions afterupdate et click mais=20
ce n'est pas aussi int=E9ressant car je dois absolument=20
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne =3D 1
Do Until Sheets("client").Cells(ligne, 16).Value =3D=20
infoclient.nomclient.Value
ligne =3D ligne + 1
Loop
infoclient.Label3.Caption =3D "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub

7 réponses

Avatar
Thierry Euzenot
Un On error resume next me parait une bonne solution :o)

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value infoclient.nomclient.Value
ligne = ligne + 1
Loop

On Error Resume Next
infoclient.Label3.Caption = "(" & Sheets("client").Cells(ligne, 1).Value &
")" & " / " & Sheets("client").Cells(ligne, 9).Value
If Err <> 0 then
infoclient.Label3.Caption = "Client inconnu"
End If

End Sub



"xavier" a écrit dans le message de
news:0aab01c4a6ef$8a407090$
Bonjour,

Je repose mon problème avec le code cette fois

Voilà j'ai un userform qui me permet de sélectionner dans
une combobox le nom d'un client et de faire afficher dans
un lebel ces renseignements.

Mon problème est que lorsque je commence à taper le
nom,et que je me trompe dans une lettre, il m'affiche un
déboguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence à taper
dans la combobox les premières lettres (comme j'utilise
la fonction change, il m'affiche à chaque changement de
lettre les coordonnées du premier nom commençant par ces
lettres -ce qui est logique-) mais si je tape "dupond" au
lieu de "dupont" il m'ouvre la fenêtre de déboguage car
pas de dupond dans ma liste de recherche (ce qui est
également logique)

J'ai essayé avec les fonctions afterupdate et click mais
ce n'est pas aussi intéressant car je dois absolument
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value infoclient.nomclient.Value
ligne = ligne + 1
Loop
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub
Avatar
Merci de ta réponse, mais le problème se pose toujours et
quand je fais le déboguage, il m'affiche l'erreur au
nieau de

Do Until Sheets("client").Cells(ligne, 16).Value =
infoclient.nomclient.Value

ce qu'il devrait faire c'est stopper l'écriture en cours



-----Message d'origine-----
Un On error resume next me parait une bonne solution :o)

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value =
infoclient.nomclient.Value
ligne = ligne + 1
Loop

On Error Resume Next
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value &

")" & " / " & Sheets("client").Cells(ligne, 9).Value
If Err <> 0 then
infoclient.Label3.Caption = "Client inconnu"
End If

End Sub



"xavier" a écrit
dans le message de

news:0aab01c4a6ef$8a407090$
Bonjour,

Je repose mon problème avec le code cette fois

Voilà j'ai un userform qui me permet de sélectionner dans
une combobox le nom d'un client et de faire afficher dans
un lebel ces renseignements.

Mon problème est que lorsque je commence à taper le
nom,et que je me trompe dans une lettre, il m'affiche un
déboguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence à taper
dans la combobox les premières lettres (comme j'utilise
la fonction change, il m'affiche à chaque changement de
lettre les coordonnées du premier nom commençant par ces
lettres -ce qui est logique-) mais si je tape "dupond" au
lieu de "dupont" il m'ouvre la fenêtre de déboguage car
pas de dupond dans ma liste de recherche (ce qui est
également logique)

J'ai essayé avec les fonctions afterupdate et click mais
ce n'est pas aussi intéressant car je dois absolument
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value =
infoclient.nomclient.Value
ligne = ligne + 1
Loop
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub


.



Avatar
Xav
Bonjour xavier aussi :-)

place On error Goto fin en début de procédure

avant le End Sub, place la ligne suivante

Fin:

--
Cordialement

@+
Xav
"xavier" a écrit dans le message de
news:0aab01c4a6ef$8a407090$
Bonjour,

Je repose mon problème avec le code cette fois

Voilà j'ai un userform qui me permet de sélectionner dans
une combobox le nom d'un client et de faire afficher dans
un lebel ces renseignements.

Mon problème est que lorsque je commence à taper le
nom,et que je me trompe dans une lettre, il m'affiche un
déboguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence à taper
dans la combobox les premières lettres (comme j'utilise
la fonction change, il m'affiche à chaque changement de
lettre les coordonnées du premier nom commençant par ces
lettres -ce qui est logique-) mais si je tape "dupond" au
lieu de "dupont" il m'ouvre la fenêtre de déboguage car
pas de dupond dans ma liste de recherche (ce qui est
également logique)

J'ai essayé avec les fonctions afterupdate et click mais
ce n'est pas aussi intéressant car je dois absolument
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value infoclient.nomclient.Value
ligne = ligne + 1
Loop
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub
Avatar
Thierry Euzenot
Hum ça ressemble fort à un dépassement de plage...

S'il ne trouve pas la valeur, il arrive à ligne = 65536 et là il doit
planter...

Deux alternatives, soit tu passes par une instruction find() qui est
beaucoup plus rapide, soit tu mets un test dans ta boucle :

ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value infoclient.nomclient.Value
ligne = ligne + 1
If ligne = 10000 then exit sub
Loop


a écrit dans le message de
news:22c401c4a6fb$1e318360$
Merci de ta réponse, mais le problème se pose toujours et
quand je fais le déboguage, il m'affiche l'erreur au
nieau de

Do Until Sheets("client").Cells(ligne, 16).Value infoclient.nomclient.Value

ce qu'il devrait faire c'est stopper l'écriture en cours



-----Message d'origine-----
Un On error resume next me parait une bonne solution :o)

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value >infoclient.nomclient.Value
ligne = ligne + 1
Loop

On Error Resume Next
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value &

")" & " / " & Sheets("client").Cells(ligne, 9).Value
If Err <> 0 then
infoclient.Label3.Caption = "Client inconnu"
End If

End Sub



"xavier" a écrit
dans le message de

news:0aab01c4a6ef$8a407090$
Bonjour,

Je repose mon problème avec le code cette fois

Voilà j'ai un userform qui me permet de sélectionner dans
une combobox le nom d'un client et de faire afficher dans
un lebel ces renseignements.

Mon problème est que lorsque je commence à taper le
nom,et que je me trompe dans une lettre, il m'affiche un
déboguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence à taper
dans la combobox les premières lettres (comme j'utilise
la fonction change, il m'affiche à chaque changement de
lettre les coordonnées du premier nom commençant par ces
lettres -ce qui est logique-) mais si je tape "dupond" au
lieu de "dupont" il m'ouvre la fenêtre de déboguage car
pas de dupond dans ma liste de recherche (ce qui est
également logique)

J'ai essayé avec les fonctions afterupdate et click mais
ce n'est pas aussi intéressant car je dois absolument
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value >infoclient.nomclient.Value
ligne = ligne + 1
Loop
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub


.



Avatar
Thierry Euzenot
"On Error Exit Sub" est plus pratique :o)

"Xav" <xavier(point)herout(at)groupe-cahors(point)com> a écrit dans le
message de news:
Bonjour xavier aussi :-)

place On error Goto fin en début de procédure

avant le End Sub, place la ligne suivante

Fin:

--
Cordialement

@+
Xav
"xavier" a écrit dans le message de
news:0aab01c4a6ef$8a407090$
Bonjour,

Je repose mon problème avec le code cette fois

Voilà j'ai un userform qui me permet de sélectionner dans
une combobox le nom d'un client et de faire afficher dans
un lebel ces renseignements.

Mon problème est que lorsque je commence à taper le
nom,et que je me trompe dans une lettre, il m'affiche un
déboguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence à taper
dans la combobox les premières lettres (comme j'utilise
la fonction change, il m'affiche à chaque changement de
lettre les coordonnées du premier nom commençant par ces
lettres -ce qui est logique-) mais si je tape "dupond" au
lieu de "dupont" il m'ouvre la fenêtre de déboguage car
pas de dupond dans ma liste de recherche (ce qui est
également logique)

J'ai essayé avec les fonctions afterupdate et click mais
ce n'est pas aussi intéressant car je dois absolument
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value > infoclient.nomclient.Value
ligne = ligne + 1
Loop
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub




Avatar
Xav
très juste... mais bon parfois les journées sont un peu longues et on se
laisse aller... :o)

--
Cordialement

@+
Xav
"Thierry Euzenot" a écrit dans le message de
news:%23bMYV$
"On Error Exit Sub" est plus pratique :o)

"Xav" <xavier(point)herout(at)groupe-cahors(point)com> a écrit dans le
message de news:
Bonjour xavier aussi :-)

place On error Goto fin en début de procédure

avant le End Sub, place la ligne suivante

Fin:

--
Cordialement

@+
Xav
"xavier" a écrit dans le message
de


news:0aab01c4a6ef$8a407090$
Bonjour,

Je repose mon problème avec le code cette fois

Voilà j'ai un userform qui me permet de sélectionner dans
une combobox le nom d'un client et de faire afficher dans
un lebel ces renseignements.

Mon problème est que lorsque je commence à taper le
nom,et que je me trompe dans une lettre, il m'affiche un
déboguage car le code nom n'existe pas.

ex: je recherche le nom "dupont", je commence à taper
dans la combobox les premières lettres (comme j'utilise
la fonction change, il m'affiche à chaque changement de
lettre les coordonnées du premier nom commençant par ces
lettres -ce qui est logique-) mais si je tape "dupond" au
lieu de "dupont" il m'ouvre la fenêtre de déboguage car
pas de dupond dans ma liste de recherche (ce qui est
également logique)

J'ai essayé avec les fonctions afterupdate et click mais
ce n'est pas aussi intéressant car je dois absolument
quitter le champs pour faire afficher les renseignements.

Y aurait-il une autre solution?

Merci

CODE:

Private Sub infoclient_Change()
ligne = 1
Do Until Sheets("client").Cells(ligne, 16).Value > > infoclient.nomclient.Value
ligne = ligne + 1
Loop
infoclient.Label3.Caption = "(" & Sheets("client").Cells
(ligne, 1).Value & ")" & " / " & Sheets("client").Cells
(ligne, 9).Value
End Sub








Avatar
AV
"On Error Exit Sub" est plus pratique :o)


"On Error Exit Sub" ?? Ca existe ça ?
Dans quelle version d'XL ?

AV