Test sur ComboBox

Laisse moi rire

XLDnaute Occasionnel
Salut a toutes et tous

C'est a rien n'y comprendre.

J'utilise ce code, pour tester si le controle et rempli, le mettre dans une variable, de manière a remplire un TextBox dans une feuille.

'=============================================
'Test des controls pour remplissage du control
'=============================================
'Pour la date et le lieu dela prestation
If txtDateDeLaPrestation > '' Then DatePrestation = vbCrLf _
& 'Cette prestation aura lieu le ' _
& txtDateDeLaPrestation.Value
If cbxNomDeSalle > '' Then NomDeSalle ', à ' _
& cbxNomDeSalle.Value
If txtLieuSalle > '' Then NomDeSalle ' de ' _
& txtLieuSalle.Value

Mais cela me génère une erreur (sur la partie en bleue):

Sub, Function ou Property attendue

Alors que j'utilise la même chose (Sauf que le controle n'est pas le même, mais j'ai modifié le nom), a ce niveau.

'Pour la réduction appliquée en pourcentage
If cbxReduction > '' Then RéductionEuros = vbCrLf & vbCrLf _
& 'Une réduction de ' & cbxReduction.Value & ' %, a été appliquée.' _
& vbCrLf & vbCrLf & 'Le montant de cette réduction d'élève a ' _
& txtMontantRemiseEuros & ' €uros, ' _
& ' soit ' & txtMontantRemiseFrancs & ' Francs.'

La variable est déclaré comme suit :

Dim DatePrestation, NomDeSalle As String

Qu'es-ce qu'il peu clocher?

Es-ce du aux données contenue dans le control?


Merci d'avance, G'Claire

Message édité par: GClaire, à: 12/11/2005 10:09
 

Bebere

XLDnaute Barbatruc
bonjour Gclaire
sans pouvoir essayer c'est difficile
mais si tu es ds une procédure de validation je mettrais les tests au début
exemple
If cbxNomDeSalle.Value = '' Then
msgbox 'Entrer un nom de salle'
cbxNomDeSalle.setfocus
endif
ensuite
NomDeSalle = ', à ' & cbxNomDeSalle.Value
à bientôt
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour G'Claire, Bébère, le Forum

Oui je suis d'accord avec Bébère, sans avoir un exemple c'est un peu abstrait et je n'ai pas trop le temps de refaire un UserForm pour matérialiser ce problème.

En règle générale, une ComboBox est plus facile à gérer qu'une ListBox puisqu'elle peut être testée comme le préconise Bébère, car elle réagira comme une TextBox ayant la valeur vide ('') et pas 'Nothing' comme une ListBox, cependant le message :

Sub, Function ou Property attendue

Laisse entendre que c'est la Valeur Nothing qui est retournée... J'y perds un peu mon latin.... Est-ce que 'cbxNomDeSalle' est bien une ComboBox ?

Bon Aprèm et Courage
[ol]@+Thierry[/ol]
 

Laisse moi rire

XLDnaute Occasionnel
Bébère, le forum

En faite c'est pas un test a la validation, mais c'est pour remplir le control de la feuille, avec seulement les controls remplient dans l'userForm.

De cette manière si un controle n'est pas rempli, dans le textbox de la feuille, il n'y figurera pas et laissera la place au controle rempli suivant.

Voila la raison de mon code.

Merci beaucoup, G'Claire
 

Laisse moi rire

XLDnaute Occasionnel
Bébère, le forum

je viens de regarder, il manque bien les deux controls, mais a priri je n'ai pa vu de commentaires, car je ne sais pas si on peu enregistrer les modification directement sur leur site.

Pour le manque des deux controls c'est normale, car j'essaye de mettre les données qui devaintt aller dans ces controls, dans le control général : 'txtConclusions'.

Merci, G'Claire
 

Bebere

XLDnaute Barbatruc
rebonjour
les commentaires sont dans le code
plus haut et plus bas que ce qui suit
'=============================================
'Test des controls pour remplissage du control
'=============================================
j'ai ajouté les deux textbox,essayé et pas de code d'erreur
changé le code de la variable nom de salle
With Sheets('Contrat_recto')
'Envoie dans le controle le N° de contrat
.txtContrat = 'Contrat numéro ' & USF_FicheDeRenseignements.lblNDeContrat
'Envoie dans le controle le type de soirée
.txtTypeDeSoiree = USF_FicheDeRenseignements.cbxTypeDeSoiree
'Envoie dans le controle les données Organisateur 1
.txtClient = 'Mme ' & USF_FicheDeRenseignements.txtNomDeLaMariee & ' ' & USF_FicheDeRenseignements.txtPrenomDeLaMariee _
& ' et ' & 'M ' & USF_FicheDeRenseignements.txtNomDuMarie & ' ' & USF_FicheDeRenseignements.txtPrenomDuMarie & ' , ci-aprés dénommés ''les organisateurs'' demeurant : '
'Envoie dans le controle les données organisateur 2
.txtAdresse = USF_FicheDeRenseignements.txtNumDeBatiment & ' ' & USF_FicheDeRenseignements.txtBatiment _
& vbCrLf & USF_FicheDeRenseignements.txtNumeroDeRue & ' ' & USF_FicheDeRenseignements.txtNomDeRue _
& vbCrLf & USF_FicheDeRenseignements.txtCodePostaleOrganisateurs & ' ' & USF_FicheDeRenseignements.cbxVilleOrganisateurs
'Envoie dans le controle la date et le lieu de la prestation
'textbox était manquante contrat recto
.txtDateEtLieu = 'Cette prestation aura lieu le ' & USF_FicheDeRenseignements.txtDateDeLaPrestation & ' à ' & USF_FicheDeRenseignements.cbxNomDeSalle & ' de ' & txtLieuSalle
'Envoie dans le controle l'heure d'arrivée des techniciens
'textbox était manquante contrat recto
.txtHeure = 'Les techniciens devront être présents à partir de ' & USF_FicheDeRenseignements.cbxHeureArrivee & ', à ' & USF_FicheDeRenseignements.cbxHeureFin

'=============================================
'Test des controls pour remplissage du control
'=============================================
'Pour la date et le lieu dela prestation
If txtDateDeLaPrestation > '' Then DatePrestation = vbCrLf _
& 'Cette prestation aura lieu le ' _
& txtDateDeLaPrestation.Value
'changement effectué içi
If cbxNomDeSalle <> '' Then NomDeSalle = ', à ' _
& cbxNomDeSalle.Value
If txtLieuSalle <> '' Then NomDeSalle = NomDeSalle & ' de ' _
& txtLieuSalle.Value

'Pour arrivée des techniciens
If cbxHeureArrivee > '' Then HeureArrivee = vbCrLf & vbCrLf _
& 'Les techniciens devront être présents à partir de ' _
& cbxHeureArrivee.Value
' If cbxHeureFin > '' Then HeureDepart ', à ' _
' & cbxHeureFin.Value
'Pour le prix Euros et conversion Francs
If txtPrixEuros > '' Then PrixEuros = vbCrLf & vbCrLf & vbCrLf _
& 'Le tarif de cette prestation a été fixé à ' _
& txtPrixEuros.Value & ' €uros, '
If txtPrixFrancs > '' Then PrixFrs = ' soit ' & txtPrixFrancs.Value _
& ' Francs.'
'Pour l'accompte Euros et conversionFrancs
If txtAccompteEuros > '' Then AccompteEuros = vbCrLf & vbCrLf _
& 'Un accompte a été versé à la signature du contrat de ' _
& txtAccompteEuros.Value & ' €uros, '
If txtAccompteEuros = '' Then AccompteFrs = vbCrLf & vbCrLf _
& 'Accompte perçu : Aucun'
If txtAccompteFrancs > '' Then AccompteFrs = ' soit ' _
& txtAccompteFrancs.Value & ' Francs.'
'Pour la réduction appliquée en pourcentage
If cbxReduction > '' Then RéductionEuros = vbCrLf & vbCrLf _
& 'Une réduction de ' & cbxReduction.Value & ' %, a été appliquée.' _
& vbCrLf & vbCrLf & 'Le montant de cette réduction d'élève a ' _
& txtMontantRemiseEuros & ' €uros, ' _
& ' soit ' & txtMontantRemiseFrancs & ' Francs.'
'Pour le restant dù Euros et conversionFrancs
If txtSoldeEuros > '' Then SoldeEuros = vbCrLf & vbCrLf _
& 'Il restera donc a régler le jour de la prestation la somme de ' & txtSoldeEuros.Value & ' €uros, '
If txtSoldeFrancs > '' Then SoldeFrs = 'soit ' _
& txtSoldeFrancs.Value & ' Francs .'

.txtConclusions = DatePrestation & NomDeSalle & PrixEuros & PrixFrs _
& RéductionEuros & AccompteEuros & AccompteFrs & SoldeEuros & SoldeFrs & HeureArrivee & HeureDepart
End With
MsgBox NomDeSalle
'Dans la feuille ('Contrat_verso')
With Sheets('Contrat_verso')
.lblDateDeSignature = 'Fait à Valence, le ' & Application.Proper(Format(Now, 'dddd dd mmmm yyyy '))
End With
End Sub

à bientôt
 

Laisse moi rire

XLDnaute Occasionnel
Bébère, le forum

Un grand merci.

Je viens de finir, la rectification que tu m'a apporté.
Cela fonctionne, j'avais un autre message d'erreur mais j'ai réussi a trouvé d'ou cela provenait (Le test qui été mis en vert que j'ai voulu remettre :

' If cbxHeureFin > '' Then HeureDepart ', à ' _
' & cbxHeureFin.Value

J'ai simplement mis le contol a la suite de cela :

If cbxHeureArrivee > '' Then HeureArrivee = vbCrLf & vbCrLf _
& 'Les techniciens devront être présents à partir de ' _
& cbxHeureArrivee.Value


Je n'arrive pas a voir l'erreur que j'avais fait, sachant que plus loin il y avait a peu de chose prés la même chose et que cela fonctionné.

A priori tu a changé le nom d'un variable, es-ce du a cela ?

Je regarderai plus en détail demain, pour ne pas rester sur une interrogation.

Merci encore, G'Claire
 

Statistiques des forums

Discussions
312 219
Messages
2 086 372
Membres
103 198
dernier inscrit
CACCIATORE