Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Souci listbox

6 réponses
Avatar
Jacques
Bonjour,
J'avais fait appel à vous concernant des combobox en cascades, lesréponses
reçues, dont je remercie les auteurs, m'ont permis de constater que ma
demande n'était pas bien formulée.
J'ai fait desrecherches et ai trouvé sur EXCELABO ( Merci Misange!), une
methode décrite par Alain Vallon qui correspondait appremment parfaitement à
ma demande
Le combobox fait apparaitre une liste qui est en colonne A et on y adjoint
deux textBox qui font apparaitre les colonnes B et C correspondant à la même
ligne.
Dans le formulaire, je permets à l'opérateur de faire des saisie au
"kilomètre" ... et là j'ai un souci cela "bugue" au niveau de la sub
Cbo_change et je suis coincé.
La routine fonctionnait sans les textbox, je vous joins le code, je suis sûr
que le Bug est gros comme une maison !!!, mais je ne le vois pas...
Je vous joins le bout de code correspondant


Private Sub CboComptes_Change()
TextBoxlibelle.Text = Application.Index(Range("Libellé"),
cboComptes.ListIndex + 1)
TextBoxqtestock.Text = Application.Index(Range("STOCK"),
cboComptes.ListIndex + 1)
End Sub



Private Sub cmdEnregistrerEtFin_Click()
TextBoxlibelle.Text = ""
TextBoxqtestock.Text = ""
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Call Enregistrer
ActiveWorkbook.Worksheets("Journal").Activate
End
End If
End Sub

Private Sub cmdEnregistrerEtSuite_Click()
TextBoxlibelle.Text = ""
TextBoxqtestock.Text = ""
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else

Call Enregistrer
cboComptes.Value = ""
cboCompetitions.Value = ""
cboMouvements.Value = ""
cboCategories.Value = ""
txtMontant.Text = ""
End If
End Sub

D'avance, je vous remercie du coup de main

Bien Cordialement

Jacques Gronier



"Jacques Gronier" <nobody@nowhere.com> a écrit dans le message de news:
4aa7cb09$0$12630$ba4acef3@news.orange.fr...
>
>
> Merci Beaucoup,
> Voilà de la saine lecture !!!
> Bien Cordialement
> Jacques
>
> "JB" <boisgontier@hotmail.com> a écrit dans le message de news:
> 8fbff4b5-009b-49d1-990c-4315a3ed4b41@c37g2000yqi.googlegroups.com...
> Bonjour,
>
> http://boisgontierjacques.free.fr/pages_site/formulairecascade.htm
>
> JB
> On 9 sep, 17:17, "Jacques Gronier" <nob...@nowhere.com> wrote:
>> Bonjour,
>> Dans le cadre d'un suivi de stock, j'ai fait un petit fichier permettant
>> de
>> créer des entrées et des sorties, à l'aide d'un Userform.
>> Le premier combobox, permet grâce à une liste déroulante, dont la source
>> est
>> une plage dite "Catalogue", de lire, référence et libellé, j'en
>> enregistre
>> la Référence, je souhaiterai pourvoir mettre à disposition sur le
>> Userform,
>> le stock correspondant à la référence choisie ( la cellule se trouve en
>> colonne C du " Catalogue".
>> Soit en affichant les colonnes 1 et 3 dans le Combobox1, ou par tout
>> autre
>> moyen.
>>
>> Merci d'avance
>> Bien cordialement
>> Jacques

6 réponses

Avatar
michdenis
Bonjour Jacques,

Publie ton application en utilisant une de ces adresses :
cjoint.com ou cijoint.fr et transmets-nous ici l'adresse que
tu auras obtenue ici. Fais disparaître l'information sensible ou
tout ce qui n'est pas pertinent à ton problème.

Assure-toi que la définition de ton problème est bien cernée.





"Jacques" a écrit dans le message de groupe de discussion :
4abb3a84$0$12651$
Bonjour,
J'avais fait appel à vous concernant des combobox en cascades, lesréponses
reçues, dont je remercie les auteurs, m'ont permis de constater que ma
demande n'était pas bien formulée.
J'ai fait desrecherches et ai trouvé sur EXCELABO ( Merci Misange!), une
methode décrite par Alain Vallon qui correspondait appremment parfaitement à
ma demande
Le combobox fait apparaitre une liste qui est en colonne A et on y adjoint
deux textBox qui font apparaitre les colonnes B et C correspondant à la même
ligne.
Dans le formulaire, je permets à l'opérateur de faire des saisie au
"kilomètre" ... et là j'ai un souci cela "bugue" au niveau de la sub
Cbo_change et je suis coincé.
La routine fonctionnait sans les textbox, je vous joins le code, je suis sûr
que le Bug est gros comme une maison !!!, mais je ne le vois pas...
Je vous joins le bout de code correspondant


Private Sub CboComptes_Change()
TextBoxlibelle.Text = Application.Index(Range("Libellé"),
cboComptes.ListIndex + 1)
TextBoxqtestock.Text = Application.Index(Range("STOCK"),
cboComptes.ListIndex + 1)
End Sub



Private Sub cmdEnregistrerEtFin_Click()
TextBoxlibelle.Text = ""
TextBoxqtestock.Text = ""
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Call Enregistrer
ActiveWorkbook.Worksheets("Journal").Activate
End
End If
End Sub

Private Sub cmdEnregistrerEtSuite_Click()
TextBoxlibelle.Text = ""
TextBoxqtestock.Text = ""
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else

Call Enregistrer
cboComptes.Value = ""
cboCompetitions.Value = ""
cboMouvements.Value = ""
cboCategories.Value = ""
txtMontant.Text = ""
End If
End Sub

D'avance, je vous remercie du coup de main

Bien Cordialement

Jacques Gronier



"Jacques Gronier" a écrit dans le message de news:
4aa7cb09$0$12630$


Merci Beaucoup,
Voilà de la saine lecture !!!
Bien Cordialement
Jacques

"JB" a écrit dans le message de news:

Bonjour,

http://boisgontierjacques.free.fr/pages_site/formulairecascade.htm

JB
On 9 sep, 17:17, "Jacques Gronier" wrote:
Bonjour,
Dans le cadre d'un suivi de stock, j'ai fait un petit fichier permettant
de
créer des entrées et des sorties, à l'aide d'un Userform.
Le premier combobox, permet grâce à une liste déroulante, dont la source
est
une plage dite "Catalogue", de lire, référence et libellé, j'en
enregistre
la Référence, je souhaiterai pourvoir mettre à disposition sur le
Userform,
le stock correspondant à la référence choisie ( la cellule se trouve en
colonne C du " Catalogue".
Soit en affichant les colonnes 1 et 3 dans le Combobox1, ou par tout
autre
moyen.

Merci d'avance
Bien cordialement
Jacques




Avatar
Jacques Gronier
Bonjour à tous,

je vous joins le lien sur cjoint : http://cjoint.com/?jziIz0YCQn

Comme vous pourrez le constater (Feuille Accueil) le bouton "valider et fin"
fonctionne correctement, alors que celui "valider et encore" provoque un
blocage

Merci de votre aide
--
Bien Cordialement

Jacques Gronier




"michdenis" a écrit dans le message de news:

Bonjour Jacques,

Publie ton application en utilisant une de ces adresses :
cjoint.com ou cijoint.fr et transmets-nous ici l'adresse que
tu auras obtenue ici. Fais disparaître l'information sensible ou
tout ce qui n'est pas pertinent à ton problème.

Assure-toi que la définition de ton problème est bien cernée.





"Jacques" a écrit dans le message de groupe de
discussion :
4abb3a84$0$12651$
Bonjour,
J'avais fait appel à vous concernant des combobox en cascades, lesréponses
reçues, dont je remercie les auteurs, m'ont permis de constater que ma
demande n'était pas bien formulée.
J'ai fait desrecherches et ai trouvé sur EXCELABO ( Merci Misange!), une
methode décrite par Alain Vallon qui correspondait appremment parfaitement
à
ma demande
Le combobox fait apparaitre une liste qui est en colonne A et on y adjoint
deux textBox qui font apparaitre les colonnes B et C correspondant à la
même
ligne.
Dans le formulaire, je permets à l'opérateur de faire des saisie au
"kilomètre" ... et là j'ai un souci cela "bugue" au niveau de la sub
Cbo_change et je suis coincé.
La routine fonctionnait sans les textbox, je vous joins le code, je suis
sûr
que le Bug est gros comme une maison !!!, mais je ne le vois pas...
Je vous joins le bout de code correspondant


Private Sub CboComptes_Change()
TextBoxlibelle.Text = Application.Index(Range("Libellé"),
cboComptes.ListIndex + 1)
TextBoxqtestock.Text = Application.Index(Range("STOCK"),
cboComptes.ListIndex + 1)
End Sub



Private Sub cmdEnregistrerEtFin_Click()
TextBoxlibelle.Text = ""
TextBoxqtestock.Text = ""
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Call Enregistrer
ActiveWorkbook.Worksheets("Journal").Activate
End
End If
End Sub

Private Sub cmdEnregistrerEtSuite_Click()
TextBoxlibelle.Text = ""
TextBoxqtestock.Text = ""
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else

Call Enregistrer
cboComptes.Value = ""
cboCompetitions.Value = ""
cboMouvements.Value = ""
cboCategories.Value = ""
txtMontant.Text = ""
End If
End Sub

D'avance, je vous remercie du coup de main

Bien Cordialement

Jacques Gronier



"Jacques Gronier" a écrit dans le message de news:
4aa7cb09$0$12630$


Merci Beaucoup,
Voilà de la saine lecture !!!
Bien Cordialement
Jacques

"JB" a écrit dans le message de news:

Bonjour,

http://boisgontierjacques.free.fr/pages_site/formulairecascade.htm

JB
On 9 sep, 17:17, "Jacques Gronier" wrote:
Bonjour,
Dans le cadre d'un suivi de stock, j'ai fait un petit fichier permettant
de
créer des entrées et des sorties, à l'aide d'un Userform.
Le premier combobox, permet grâce à une liste déroulante, dont la source
est
une plage dite "Catalogue", de lire, référence et libellé, j'en
enregistre
la Référence, je souhaiterai pourvoir mettre à disposition sur le
Userform,
le stock correspondant à la référence choisie ( la cellule se trouve en
colonne C du " Catalogue".
Soit en affichant les colonnes 1 et 3 dans le Combobox1, ou par tout
autre
moyen.

Merci d'avance
Bien cordialement
Jacques







Avatar
michdenis
Bonjour Jacques,

Pour ton code :

A ) dans le haut de ton formulaire, déclare une variable booléenne Ok
B ) Cette variable va empêcher à la procédure
Private Sub CboComptes_Change()
de s'exécuter lorsque la procédure suivante :
Private Sub cmdEnregistrerEtSuite_Click()
s'exécute et que tu "vides" les contrôles de ton application.
En voulant modifier ce qu'affiche le contrôle "CboComptes"
cela appelle la procédure : Private Sub CboComptes_Change()
et comme celui-là est vide, ta formule cause problème.

C ) ton code contient une référence à un contrôle
cboCompetitions.Value = ""
qui n'existe pas dans ton formulaire.

Le code de ton formulaire :
'-----------------------------------------------------------------------
Dim Ok As Boolean


Private Sub Enregistrer()
Dim classeur As Workbook
Dim dataSheet As Worksheet
Dim uneLigne As Range

Set classeur = ActiveWorkbook
Set dataSheet = classeur.Worksheets("Data")

If Not IsNull(dataSheet) Then
Set uneLigne = dataSheet.Range("A65536").End(xlUp).EntireRow.Offset(1, 0)
If Not IsNull(uneLigne) Then
dataSheet.Unprotect
uneLigne.Cells(1, 1).Value = cboComptes.Value
uneLigne.Cells(1, 2).Value = TextLot.Text
uneLigne.Cells(1, 3).Value = cboMouvements.Value
uneLigne.Cells(1, 4).Value = cboCategories.Value
uneLigne.Cells(1, 5).Value = txtMontant.Text
dataSheet.Protect
Set classeur = Nothing
Set dataSheet = Nothing
Set uneLigne = Nothing
End If
End If

Set classeur = Nothing
Set dataSheet = Nothing
Set uneLigne = Nothing

End Sub

Private Sub CboComptes_Change()
If Ok = False Then Exit Sub
TextBoxlibelle.Text = Application.Index(Range("Libellé"), cboComptes.ListIndex + 1)
TextBoxqtestock.Text = Application.Index(Range("STOCK"), cboComptes.ListIndex + 1)
End Sub



Private Sub cmdEnregistrerEtFin_Click()
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Call Enregistrer
ActiveWorkbook.Worksheets("Journal").Activate
End
End If
End Sub

Private Sub cmdEnregistrerEtSuite_Click()
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir un compte.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
'Ce contrôle n'existe pas dans ton formulaire
'cboCompetitions.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer un montant.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Ok = False
Call Enregistrer
cboComptes.Value = ""
'Ce contrôle n'existe pas dans ton formulaire
' cboCompetitions.Value = ""
cboMouvements.Value = ""
cboCategories.Value = ""
txtMontant.Text = ""
Ok = True
End If
End Sub
'-----------------------------------------------------------------------
Avatar
Jacques Gronier
Je ne sais comment exprimer l'énorme merci au groupe et à Michel en
particulier.
Juste une dernière question, j'abuse:

cboComptes.Value = ""
'Ce contrôle n'existe pas dans ton formulaire

J'avoue ne pas bien comprendre, puisque c'est ce qui est enregistré sous le
nom Référence ?
c'est sûrement pour cela qu'il y a toujours une valeur à l'ouverture du
Formulaire ?
Comment faire ?
Encore Merci
Cela faisait longtemps que je n'étais pas revenu, mais vous êtes toujours
formidables !!!

--
Bien Cordialement

Jacques Gronier


"michdenis" a écrit dans le message de news:

Bonjour Jacques,

Pour ton code :

A ) dans le haut de ton formulaire, déclare une variable booléenne Ok
B ) Cette variable va empêcher à la procédure
Private Sub CboComptes_Change()
de s'exécuter lorsque la procédure suivante :
Private Sub cmdEnregistrerEtSuite_Click()
s'exécute et que tu "vides" les contrôles de ton application.
En voulant modifier ce qu'affiche le contrôle "CboComptes"
cela appelle la procédure : Private Sub CboComptes_Change()
et comme celui-là est vide, ta formule cause problème.

C ) ton code contient une référence à un contrôle
cboCompetitions.Value = ""
qui n'existe pas dans ton formulaire.

Le code de ton formulaire :
'-----------------------------------------------------------------------
Dim Ok As Boolean


Private Sub Enregistrer()
Dim classeur As Workbook
Dim dataSheet As Worksheet
Dim uneLigne As Range

Set classeur = ActiveWorkbook
Set dataSheet = classeur.Worksheets("Data")

If Not IsNull(dataSheet) Then
Set uneLigne =
dataSheet.Range("A65536").End(xlUp).EntireRow.Offset(1, 0)
If Not IsNull(uneLigne) Then
dataSheet.Unprotect
uneLigne.Cells(1, 1).Value = cboComptes.Value
uneLigne.Cells(1, 2).Value = TextLot.Text
uneLigne.Cells(1, 3).Value = cboMouvements.Value
uneLigne.Cells(1, 4).Value = cboCategories.Value
uneLigne.Cells(1, 5).Value = txtMontant.Text
dataSheet.Protect
Set classeur = Nothing
Set dataSheet = Nothing
Set uneLigne = Nothing
End If
End If

Set classeur = Nothing
Set dataSheet = Nothing
Set uneLigne = Nothing

End Sub

Private Sub CboComptes_Change()
If Ok = False Then Exit Sub
TextBoxlibelle.Text = Application.Index(Range("Libellé"),
cboComptes.ListIndex + 1)
TextBoxqtestock.Text = Application.Index(Range("STOCK"),
cboComptes.ListIndex + 1)
End Sub



Private Sub cmdEnregistrerEtFin_Click()
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir une Référence.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer une Quantité.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Call Enregistrer
ActiveWorkbook.Worksheets("Journal").Activate
End
End If
End Sub

Private Sub cmdEnregistrerEtSuite_Click()
If (cboComptes.Value = "" Or IsNull(cboComptes.Value)) Then
MsgBox ("Erreur vous devez choisir un compte.")
cboComptes.SetFocus
ElseIf (cboMouvements.Value = "" Or IsNull(cboMouvements.Value)) Then
MsgBox ("Erreur vous devez choisir un mouvement.")
cboMouvements.SetFocus
ElseIf (TextLot.Value = "" Or IsNull(TextLot.Value)) Then
MsgBox ("Erreur vous devez choisir un Numéro de LOT.")
txtLot.SelStart = 0
txtLot.SelLength = Len(txtMontant.Text)
txtLot.SetFocus
'Ce contrôle n'existe pas dans ton formulaire
'cboCompetitions.SetFocus
ElseIf (cboCategories.Value = "" Or IsNull(cboCategories.Value)) Then
MsgBox ("Erreur vous devez choisir une catégorie.")
cboCategories.SetFocus
ElseIf (txtMontant.Text = "" Or IsNull(txtMontant.Text)) Then
MsgBox ("Erreur vous devez entrer un montant.")
txtMontant.SetFocus
ElseIf Not (IsNumeric(txtMontant.Text)) Then
MsgBox ("Erreur le montant doit être numérique.")
txtMontant.SelStart = 0
txtMontant.SelLength = Len(txtMontant.Text)
txtMontant.SetFocus
Else
Ok = False
Call Enregistrer
cboComptes.Value = ""
'Ce contrôle n'existe pas dans ton formulaire
' cboCompetitions.Value = ""
cboMouvements.Value = ""
cboCategories.Value = ""
txtMontant.Text = ""
Ok = True
End If
End Sub
'-----------------------------------------------------------------------







Avatar
michdenis
| Juste une dernière question, j'abuse:

| cboComptes.Value = ""
| 'Ce contrôle n'existe pas dans ton formulaire

Il me semble avoir indiqué que c'était ce contrôle qui
n'existait pas. Ce que cela veut dire, c'est que tout simplement
que dans ton formulaire, tu n'as pas un contrôle (combobox ou textbox..)
qui porte ce nom (Propriété Name) des objets de ton formulaire.

cboCompetitions.Value = ""

Quoi faire ? si tu n'ajoutes pas de contrôle parce que tu n'en as
pas besoin, tu fais disparaître la ligne de code.

Et si tu désires que ton combobox n'affiche aucune valeur,
En mode création, tu ouvres ton formulaire, tu sélectionnes ton combobox
et dans la fenêtre des propriétés de ce combobox, tu effaces la valeur
de la propriété "Value". Cela devrait être suffisant.
Avatar
Jacques Gronier
Encore Merci !!!

--
Bien Cordialement

Jacques Gronier



"michdenis" a écrit dans le message de news:


| Juste une dernière question, j'abuse:

| cboComptes.Value = ""
| 'Ce contrôle n'existe pas dans ton formulaire

Il me semble avoir indiqué que c'était ce contrôle qui
n'existait pas. Ce que cela veut dire, c'est que tout simplement
que dans ton formulaire, tu n'as pas un contrôle (combobox ou textbox..)
qui porte ce nom (Propriété Name) des objets de ton formulaire.

cboCompetitions.Value = ""

Quoi faire ? si tu n'ajoutes pas de contrôle parce que tu n'en as
pas besoin, tu fais disparaître la ligne de code.

Et si tu désires que ton combobox n'affiche aucune valeur,
En mode création, tu ouvres ton formulaire, tu sélectionnes ton combobox
et dans la fenêtre des propriétés de ce combobox, tu effaces la valeur
de la propriété "Value". Cela devrait être suffisant.