je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur,
j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock,
je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer
un nouvel article en stock
je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une
combo box toutes les familles d'articles déjà existantes afin d'en
sélectionner une
je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et
dans laquelle se trouve une colonne FAMILLE
Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380
"Impossible de définir la propriété RowSource. Valeur de propriété non valide"
Quelqu'un peut il m'expliquer où est l'erreur ?
voici le code de la macro UsfNew :
========
'Préparé par Misange (Flo Cabon), septembre 2004
'Merci de citer vos sources
******
Private Sub UserForm_Initialize()
UsfMenu.Hide
Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs
classeurs sont ouverts
CboFam.RowSource = ("TYPE!FAMILLE")
CboFam.ListIndex = -1
TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la
date du jour dans le textbox date.
End Sub
Private Sub CmdAnnuler_Click()
Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure
userform_initialize sera effecuée
'UsfNew.Hide cache le formulaire sans le décharger.
'Au prochain lancement, le userform_initialize n'est pas effectué
End Sub
Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES
**************************************
'on vérifie que les champs texte sont remplis (sauf pour les commentaires
qui ne sont pas obligatoires)
If TxtRef.Value = "" Then
MsgBox ("Il faut indiquer la référence !")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtDesignation.Value = "" Then
MsgBox ("Il faut indiquer la désignation")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtPrix.Value = "" Then
MsgBox ("Il faut indiquer le prix")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtDate.Value = "" Then
MsgBox ("Il faut indiquer la date !")
Exit Sub
Else
MaDate = CDate(TxtDate.Value)
End If
If TxtFournisseur.Value = "" Then
MsgBox ("Indiquez le fournisseur")
Exit Sub
End If
If CboFam.ListIndex = -1 Then
MsgBox ("Indiquez la famille")
Exit Sub
End If
'inscription des données récupérées du formulaire validé dans la feuille excel
'sélection de la ligne sur laquelle écrire (la première vide)
num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1
'on part du bas de la colonne, on cherche la première cellule non vide avec
end(xlup), on renvoie son N° avec row et on ajoute 1
'pour avoir le numéro de la ligne d'en dessous
'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN
STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate
Range("A" & num).Value = TxtRef.Value
Range("B" & num).Value = TxtDesignation.Value
Range("C" & num).Value = TxtPrix.Value
Range("D" & num).Value = CboFam.Value
Range("E" & num).Value = TxtInitiale
Range("J" & num).Value = TxtCommentaire.Value
Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une
date au format des paramètres régionaux du pc
Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les
contrôles seront remis dans
'leur état initial. Si l'on voulait conserver certaines des données entrées,
on pourrait simplement cacher
'le formulaire (hide UsfNew, sans point entre les deux) et dans le
userform_initialize vider les
'contrôles de son choix.
UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à
l'utilisateur.
End Sub
===========
D'avance merci pour votre aide, car là je bloque complètement !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Youky
Bonjour Francoise, En attendant Misange... peut être remplacer CboFam.RowSource = ("TYPE!FAMILLE") par CboFam.RowSource = "FAMILLE" Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES Non testé ! Youky
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur, j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock, je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer un nouvel article en stock je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une combo box toutes les familles d'articles déjà existantes afin d'en sélectionner une je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et dans laquelle se trouve une colonne FAMILLE Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380 "Impossible de définir la propriété RowSource. Valeur de propriété non valide" Quelqu'un peut il m'expliquer où est l'erreur ? voici le code de la macro UsfNew :
======= > 'Préparé par Misange (Flo Cabon), septembre 2004 'Merci de citer vos sources ******
Private Sub UserForm_Initialize() UsfMenu.Hide Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs classeurs sont ouverts CboFam.RowSource = ("TYPE!FAMILLE") CboFam.ListIndex = -1 TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la date du jour dans le textbox date. End Sub Private Sub CmdAnnuler_Click() Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure userform_initialize sera effecuée 'UsfNew.Hide cache le formulaire sans le décharger. 'Au prochain lancement, le userform_initialize n'est pas effectué End Sub Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES ************************************** 'on vérifie que les champs texte sont remplis (sauf pour les commentaires qui ne sont pas obligatoires)
If TxtRef.Value = "" Then MsgBox ("Il faut indiquer la référence !") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDesignation.Value = "" Then MsgBox ("Il faut indiquer la désignation") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtPrix.Value = "" Then MsgBox ("Il faut indiquer le prix") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDate.Value = "" Then MsgBox ("Il faut indiquer la date !") Exit Sub Else MaDate = CDate(TxtDate.Value) End If
If TxtFournisseur.Value = "" Then MsgBox ("Indiquez le fournisseur") Exit Sub End If
If CboFam.ListIndex = -1 Then MsgBox ("Indiquez la famille") Exit Sub End If
'inscription des données récupérées du formulaire validé dans la feuille excel 'sélection de la ligne sur laquelle écrire (la première vide) num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1 'on part du bas de la colonne, on cherche la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 'pour avoir le numéro de la ligne d'en dessous 'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate Range("A" & num).Value = TxtRef.Value Range("B" & num).Value = TxtDesignation.Value Range("C" & num).Value = TxtPrix.Value Range("D" & num).Value = CboFam.Value Range("E" & num).Value = TxtInitiale Range("J" & num).Value = TxtCommentaire.Value Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans 'leur état initial. Si l'on voulait conserver certaines des données entrées, on pourrait simplement cacher 'le formulaire (hide UsfNew, sans point entre les deux) et dans le userform_initialize vider les 'contrôles de son choix. UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à l'utilisateur. End Sub ========== > D'avance merci pour votre aide, car là je bloque complètement !
Bonjour Francoise,
En attendant Misange...
peut être remplacer
CboFam.RowSource = ("TYPE!FAMILLE")
par
CboFam.RowSource = "FAMILLE"
Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES
Non testé !
Youky
"Françoise" <Franoise@discussions.microsoft.com> a écrit dans le message de
news: 89E1974D-B215-4357-8CD3-3927BF34D134@microsoft.com...
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur,
j'utilise une UserForm d'un modèle créé par Misange sur la gestion de
stock,
je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour
entrer
un nouvel article en stock
je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une
combo box toutes les familles d'articles déjà existantes afin d'en
sélectionner une
je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et
dans laquelle se trouve une colonne FAMILLE
Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur
380
"Impossible de définir la propriété RowSource. Valeur de propriété non
valide"
Quelqu'un peut il m'expliquer où est l'erreur ?
voici le code de la macro UsfNew :
======= > 'Préparé par Misange (Flo Cabon), septembre 2004
'Merci de citer vos sources
******
Private Sub UserForm_Initialize()
UsfMenu.Hide
Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs
classeurs sont ouverts
CboFam.RowSource = ("TYPE!FAMILLE")
CboFam.ListIndex = -1
TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la
date du jour dans le textbox date.
End Sub
Private Sub CmdAnnuler_Click()
Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure
userform_initialize sera effecuée
'UsfNew.Hide cache le formulaire sans le décharger.
'Au prochain lancement, le userform_initialize n'est pas effectué
End Sub
Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES
**************************************
'on vérifie que les champs texte sont remplis (sauf pour les commentaires
qui ne sont pas obligatoires)
If TxtRef.Value = "" Then
MsgBox ("Il faut indiquer la référence !")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtDesignation.Value = "" Then
MsgBox ("Il faut indiquer la désignation")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtPrix.Value = "" Then
MsgBox ("Il faut indiquer le prix")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtDate.Value = "" Then
MsgBox ("Il faut indiquer la date !")
Exit Sub
Else
MaDate = CDate(TxtDate.Value)
End If
If TxtFournisseur.Value = "" Then
MsgBox ("Indiquez le fournisseur")
Exit Sub
End If
If CboFam.ListIndex = -1 Then
MsgBox ("Indiquez la famille")
Exit Sub
End If
'inscription des données récupérées du formulaire validé dans la feuille
excel
'sélection de la ligne sur laquelle écrire (la première vide)
num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1
'on part du bas de la colonne, on cherche la première cellule non vide
avec
end(xlup), on renvoie son N° avec row et on ajoute 1
'pour avoir le numéro de la ligne d'en dessous
'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE
EN
STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate
Range("A" & num).Value = TxtRef.Value
Range("B" & num).Value = TxtDesignation.Value
Range("C" & num).Value = TxtPrix.Value
Range("D" & num).Value = CboFam.Value
Range("E" & num).Value = TxtInitiale
Range("J" & num).Value = TxtCommentaire.Value
Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir
une
date au format des paramètres régionaux du pc
Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage,
les
contrôles seront remis dans
'leur état initial. Si l'on voulait conserver certaines des données
entrées,
on pourrait simplement cacher
'le formulaire (hide UsfNew, sans point entre les deux) et dans le
userform_initialize vider les
'contrôles de son choix.
UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à
l'utilisateur.
End Sub
========== >
D'avance merci pour votre aide, car là je bloque complètement !
Bonjour Francoise, En attendant Misange... peut être remplacer CboFam.RowSource = ("TYPE!FAMILLE") par CboFam.RowSource = "FAMILLE" Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES Non testé ! Youky
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur, j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock, je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer un nouvel article en stock je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une combo box toutes les familles d'articles déjà existantes afin d'en sélectionner une je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et dans laquelle se trouve une colonne FAMILLE Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380 "Impossible de définir la propriété RowSource. Valeur de propriété non valide" Quelqu'un peut il m'expliquer où est l'erreur ? voici le code de la macro UsfNew :
======= > 'Préparé par Misange (Flo Cabon), septembre 2004 'Merci de citer vos sources ******
Private Sub UserForm_Initialize() UsfMenu.Hide Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs classeurs sont ouverts CboFam.RowSource = ("TYPE!FAMILLE") CboFam.ListIndex = -1 TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la date du jour dans le textbox date. End Sub Private Sub CmdAnnuler_Click() Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure userform_initialize sera effecuée 'UsfNew.Hide cache le formulaire sans le décharger. 'Au prochain lancement, le userform_initialize n'est pas effectué End Sub Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES ************************************** 'on vérifie que les champs texte sont remplis (sauf pour les commentaires qui ne sont pas obligatoires)
If TxtRef.Value = "" Then MsgBox ("Il faut indiquer la référence !") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDesignation.Value = "" Then MsgBox ("Il faut indiquer la désignation") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtPrix.Value = "" Then MsgBox ("Il faut indiquer le prix") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDate.Value = "" Then MsgBox ("Il faut indiquer la date !") Exit Sub Else MaDate = CDate(TxtDate.Value) End If
If TxtFournisseur.Value = "" Then MsgBox ("Indiquez le fournisseur") Exit Sub End If
If CboFam.ListIndex = -1 Then MsgBox ("Indiquez la famille") Exit Sub End If
'inscription des données récupérées du formulaire validé dans la feuille excel 'sélection de la ligne sur laquelle écrire (la première vide) num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1 'on part du bas de la colonne, on cherche la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 'pour avoir le numéro de la ligne d'en dessous 'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate Range("A" & num).Value = TxtRef.Value Range("B" & num).Value = TxtDesignation.Value Range("C" & num).Value = TxtPrix.Value Range("D" & num).Value = CboFam.Value Range("E" & num).Value = TxtInitiale Range("J" & num).Value = TxtCommentaire.Value Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans 'leur état initial. Si l'on voulait conserver certaines des données entrées, on pourrait simplement cacher 'le formulaire (hide UsfNew, sans point entre les deux) et dans le userform_initialize vider les 'contrôles de son choix. UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à l'utilisateur. End Sub ========== > D'avance merci pour votre aide, car là je bloque complètement !
Françoise
Bonjour Youky
malheureusement cela ne marche pas, je dois préciser que CboFam.RowSource = ("TYPE!FAMILLE") est en fait CboFam.RowSource = ("FAMILLES!FAMILLE") Bon cela ne change pas le souci, c'est juste histoire de préciser Si d'autres idées, je suis "preneuse" d'avance merci
Bonjour Francoise, En attendant Misange... peut être remplacer CboFam.RowSource = ("TYPE!FAMILLE") par CboFam.RowSource = "FAMILLE" Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES Non testé ! Youky
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur, j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock, je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer un nouvel article en stock je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une combo box toutes les familles d'articles déjà existantes afin d'en sélectionner une je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et dans laquelle se trouve une colonne FAMILLE Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380 "Impossible de définir la propriété RowSource. Valeur de propriété non valide" Quelqu'un peut il m'expliquer où est l'erreur ? voici le code de la macro UsfNew :
======= > > 'Préparé par Misange (Flo Cabon), septembre 2004 'Merci de citer vos sources ******
Private Sub UserForm_Initialize() UsfMenu.Hide Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs classeurs sont ouverts CboFam.RowSource = ("TYPE!FAMILLE") CboFam.ListIndex = -1 TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la date du jour dans le textbox date. End Sub Private Sub CmdAnnuler_Click() Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure userform_initialize sera effecuée 'UsfNew.Hide cache le formulaire sans le décharger. 'Au prochain lancement, le userform_initialize n'est pas effectué End Sub Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES ************************************** 'on vérifie que les champs texte sont remplis (sauf pour les commentaires qui ne sont pas obligatoires)
If TxtRef.Value = "" Then MsgBox ("Il faut indiquer la référence !") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDesignation.Value = "" Then MsgBox ("Il faut indiquer la désignation") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtPrix.Value = "" Then MsgBox ("Il faut indiquer le prix") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDate.Value = "" Then MsgBox ("Il faut indiquer la date !") Exit Sub Else MaDate = CDate(TxtDate.Value) End If
If TxtFournisseur.Value = "" Then MsgBox ("Indiquez le fournisseur") Exit Sub End If
If CboFam.ListIndex = -1 Then MsgBox ("Indiquez la famille") Exit Sub End If
'inscription des données récupérées du formulaire validé dans la feuille excel 'sélection de la ligne sur laquelle écrire (la première vide) num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1 'on part du bas de la colonne, on cherche la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 'pour avoir le numéro de la ligne d'en dessous 'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate Range("A" & num).Value = TxtRef.Value Range("B" & num).Value = TxtDesignation.Value Range("C" & num).Value = TxtPrix.Value Range("D" & num).Value = CboFam.Value Range("E" & num).Value = TxtInitiale Range("J" & num).Value = TxtCommentaire.Value Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans 'leur état initial. Si l'on voulait conserver certaines des données entrées, on pourrait simplement cacher 'le formulaire (hide UsfNew, sans point entre les deux) et dans le userform_initialize vider les 'contrôles de son choix. UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à l'utilisateur. End Sub ========== > > D'avance merci pour votre aide, car là je bloque complètement !
Bonjour Youky
malheureusement cela ne marche pas, je dois préciser que
CboFam.RowSource = ("TYPE!FAMILLE")
est en fait CboFam.RowSource = ("FAMILLES!FAMILLE")
Bon cela ne change pas le souci, c'est juste histoire de préciser
Si d'autres idées, je suis "preneuse"
d'avance merci
Bonjour Francoise,
En attendant Misange...
peut être remplacer
CboFam.RowSource = ("TYPE!FAMILLE")
par
CboFam.RowSource = "FAMILLE"
Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES
Non testé !
Youky
"Françoise" <Franoise@discussions.microsoft.com> a écrit dans le message de
news: 89E1974D-B215-4357-8CD3-3927BF34D134@microsoft.com...
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur,
j'utilise une UserForm d'un modèle créé par Misange sur la gestion de
stock,
je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour
entrer
un nouvel article en stock
je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une
combo box toutes les familles d'articles déjà existantes afin d'en
sélectionner une
je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et
dans laquelle se trouve une colonne FAMILLE
Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur
380
"Impossible de définir la propriété RowSource. Valeur de propriété non
valide"
Quelqu'un peut il m'expliquer où est l'erreur ?
voici le code de la macro UsfNew :
======= > > 'Préparé par Misange (Flo Cabon), septembre 2004
'Merci de citer vos sources
******
Private Sub UserForm_Initialize()
UsfMenu.Hide
Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs
classeurs sont ouverts
CboFam.RowSource = ("TYPE!FAMILLE")
CboFam.ListIndex = -1
TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la
date du jour dans le textbox date.
End Sub
Private Sub CmdAnnuler_Click()
Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure
userform_initialize sera effecuée
'UsfNew.Hide cache le formulaire sans le décharger.
'Au prochain lancement, le userform_initialize n'est pas effectué
End Sub
Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES
**************************************
'on vérifie que les champs texte sont remplis (sauf pour les commentaires
qui ne sont pas obligatoires)
If TxtRef.Value = "" Then
MsgBox ("Il faut indiquer la référence !")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtDesignation.Value = "" Then
MsgBox ("Il faut indiquer la désignation")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtPrix.Value = "" Then
MsgBox ("Il faut indiquer le prix")
Exit Sub 'interrompt la macro de validation, le userform reste affiché en
l'état pour correction
End If
If TxtDate.Value = "" Then
MsgBox ("Il faut indiquer la date !")
Exit Sub
Else
MaDate = CDate(TxtDate.Value)
End If
If TxtFournisseur.Value = "" Then
MsgBox ("Indiquez le fournisseur")
Exit Sub
End If
If CboFam.ListIndex = -1 Then
MsgBox ("Indiquez la famille")
Exit Sub
End If
'inscription des données récupérées du formulaire validé dans la feuille
excel
'sélection de la ligne sur laquelle écrire (la première vide)
num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1
'on part du bas de la colonne, on cherche la première cellule non vide
avec
end(xlup), on renvoie son N° avec row et on ajoute 1
'pour avoir le numéro de la ligne d'en dessous
'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE
EN
STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate
Range("A" & num).Value = TxtRef.Value
Range("B" & num).Value = TxtDesignation.Value
Range("C" & num).Value = TxtPrix.Value
Range("D" & num).Value = CboFam.Value
Range("E" & num).Value = TxtInitiale
Range("J" & num).Value = TxtCommentaire.Value
Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir
une
date au format des paramètres régionaux du pc
Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage,
les
contrôles seront remis dans
'leur état initial. Si l'on voulait conserver certaines des données
entrées,
on pourrait simplement cacher
'le formulaire (hide UsfNew, sans point entre les deux) et dans le
userform_initialize vider les
'contrôles de son choix.
UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à
l'utilisateur.
End Sub
========== > >
D'avance merci pour votre aide, car là je bloque complètement !
malheureusement cela ne marche pas, je dois préciser que CboFam.RowSource = ("TYPE!FAMILLE") est en fait CboFam.RowSource = ("FAMILLES!FAMILLE") Bon cela ne change pas le souci, c'est juste histoire de préciser Si d'autres idées, je suis "preneuse" d'avance merci
Bonjour Francoise, En attendant Misange... peut être remplacer CboFam.RowSource = ("TYPE!FAMILLE") par CboFam.RowSource = "FAMILLE" Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES Non testé ! Youky
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur, j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock, je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer un nouvel article en stock je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une combo box toutes les familles d'articles déjà existantes afin d'en sélectionner une je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et dans laquelle se trouve une colonne FAMILLE Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380 "Impossible de définir la propriété RowSource. Valeur de propriété non valide" Quelqu'un peut il m'expliquer où est l'erreur ? voici le code de la macro UsfNew :
======= > > 'Préparé par Misange (Flo Cabon), septembre 2004 'Merci de citer vos sources ******
Private Sub UserForm_Initialize() UsfMenu.Hide Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs classeurs sont ouverts CboFam.RowSource = ("TYPE!FAMILLE") CboFam.ListIndex = -1 TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la date du jour dans le textbox date. End Sub Private Sub CmdAnnuler_Click() Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure userform_initialize sera effecuée 'UsfNew.Hide cache le formulaire sans le décharger. 'Au prochain lancement, le userform_initialize n'est pas effectué End Sub Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES ************************************** 'on vérifie que les champs texte sont remplis (sauf pour les commentaires qui ne sont pas obligatoires)
If TxtRef.Value = "" Then MsgBox ("Il faut indiquer la référence !") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDesignation.Value = "" Then MsgBox ("Il faut indiquer la désignation") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtPrix.Value = "" Then MsgBox ("Il faut indiquer le prix") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDate.Value = "" Then MsgBox ("Il faut indiquer la date !") Exit Sub Else MaDate = CDate(TxtDate.Value) End If
If TxtFournisseur.Value = "" Then MsgBox ("Indiquez le fournisseur") Exit Sub End If
If CboFam.ListIndex = -1 Then MsgBox ("Indiquez la famille") Exit Sub End If
'inscription des données récupérées du formulaire validé dans la feuille excel 'sélection de la ligne sur laquelle écrire (la première vide) num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1 'on part du bas de la colonne, on cherche la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 'pour avoir le numéro de la ligne d'en dessous 'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate Range("A" & num).Value = TxtRef.Value Range("B" & num).Value = TxtDesignation.Value Range("C" & num).Value = TxtPrix.Value Range("D" & num).Value = CboFam.Value Range("E" & num).Value = TxtInitiale Range("J" & num).Value = TxtCommentaire.Value Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans 'leur état initial. Si l'on voulait conserver certaines des données entrées, on pourrait simplement cacher 'le formulaire (hide UsfNew, sans point entre les deux) et dans le userform_initialize vider les 'contrôles de son choix. UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à l'utilisateur. End Sub ========== > > D'avance merci pour votre aide, car là je bloque complètement !
Youky
Re: As tu bien définit la liste FAMILLE en faisant Insertion/nom/définir ......FAMILLE Fait réfrérence à: ÞCALER(FAMILLES!$A$1;0;0;NBVAL(FAMILLES!$A:$A),1) remplacer A par la bonne lettre de colonne tu peux en principe mettre FAMILLES en RowSource directement dans la fenêtre des propriétés de CboFam Youky
"Françoise" a écrit dans le message de news:
Bonjour Youky
malheureusement cela ne marche pas, je dois préciser que CboFam.RowSource = ("TYPE!FAMILLE") est en fait CboFam.RowSource = ("FAMILLES!FAMILLE") Bon cela ne change pas le souci, c'est juste histoire de préciser Si d'autres idées, je suis "preneuse" d'avance merci
Bonjour Francoise, En attendant Misange... peut être remplacer CboFam.RowSource = ("TYPE!FAMILLE") par CboFam.RowSource = "FAMILLE" Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES Non testé ! Youky
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur, j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock, je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer un nouvel article en stock je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une combo box toutes les familles d'articles déjà existantes afin d'en sélectionner une je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et dans laquelle se trouve une colonne FAMILLE Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380 "Impossible de définir la propriété RowSource. Valeur de propriété non valide" Quelqu'un peut il m'expliquer où est l'erreur ? voici le code de la macro UsfNew :
======= >> > 'Préparé par Misange (Flo Cabon), septembre 2004 'Merci de citer vos sources ******
Private Sub UserForm_Initialize() UsfMenu.Hide Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs classeurs sont ouverts CboFam.RowSource = ("TYPE!FAMILLE") CboFam.ListIndex = -1 TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la date du jour dans le textbox date. End Sub Private Sub CmdAnnuler_Click() Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure userform_initialize sera effecuée 'UsfNew.Hide cache le formulaire sans le décharger. 'Au prochain lancement, le userform_initialize n'est pas effectué End Sub Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES ************************************** 'on vérifie que les champs texte sont remplis (sauf pour les commentaires qui ne sont pas obligatoires)
If TxtRef.Value = "" Then MsgBox ("Il faut indiquer la référence !") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDesignation.Value = "" Then MsgBox ("Il faut indiquer la désignation") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtPrix.Value = "" Then MsgBox ("Il faut indiquer le prix") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDate.Value = "" Then MsgBox ("Il faut indiquer la date !") Exit Sub Else MaDate = CDate(TxtDate.Value) End If
If TxtFournisseur.Value = "" Then MsgBox ("Indiquez le fournisseur") Exit Sub End If
If CboFam.ListIndex = -1 Then MsgBox ("Indiquez la famille") Exit Sub End If
'inscription des données récupérées du formulaire validé dans la feuille excel 'sélection de la ligne sur laquelle écrire (la première vide) num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1 'on part du bas de la colonne, on cherche la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 'pour avoir le numéro de la ligne d'en dessous 'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate Range("A" & num).Value = TxtRef.Value Range("B" & num).Value = TxtDesignation.Value Range("C" & num).Value = TxtPrix.Value Range("D" & num).Value = CboFam.Value Range("E" & num).Value = TxtInitiale Range("J" & num).Value = TxtCommentaire.Value Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans 'leur état initial. Si l'on voulait conserver certaines des données entrées, on pourrait simplement cacher 'le formulaire (hide UsfNew, sans point entre les deux) et dans le userform_initialize vider les 'contrôles de son choix. UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à l'utilisateur. End Sub ========== >> > D'avance merci pour votre aide, car là je bloque complètement !
Re:
As tu bien définit la liste FAMILLE
en faisant Insertion/nom/définir
......FAMILLE
Fait réfrérence à:
ÞCALER(FAMILLES!$A$1;0;0;NBVAL(FAMILLES!$A:$A),1)
remplacer A par la bonne lettre de colonne
tu peux en principe mettre FAMILLES en RowSource directement dans la fenêtre
des propriétés de CboFam
Youky
"Françoise" <Franoise@discussions.microsoft.com> a écrit dans le message de
news: E6D23521-48B8-498C-AB86-B01140758E39@microsoft.com...
Bonjour Youky
malheureusement cela ne marche pas, je dois préciser que
CboFam.RowSource = ("TYPE!FAMILLE")
est en fait CboFam.RowSource = ("FAMILLES!FAMILLE")
Bon cela ne change pas le souci, c'est juste histoire de préciser
Si d'autres idées, je suis "preneuse"
d'avance merci
Bonjour Francoise,
En attendant Misange...
peut être remplacer
CboFam.RowSource = ("TYPE!FAMILLE")
par
CboFam.RowSource = "FAMILLE"
Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES
Non testé !
Youky
"Françoise" <Franoise@discussions.microsoft.com> a écrit dans le message
de
news: 89E1974D-B215-4357-8CD3-3927BF34D134@microsoft.com...
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est
l'erreur,
j'utilise une UserForm d'un modèle créé par Misange sur la gestion de
stock,
je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour
entrer
un nouvel article en stock
je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans
une
combo box toutes les familles d'articles déjà existantes afin d'en
sélectionner une
je fais appel pour cela à une feuille de mon classeur appelée FAMILLES
et
dans laquelle se trouve une colonne FAMILLE
Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une
erreur
380
"Impossible de définir la propriété RowSource. Valeur de propriété non
valide"
Quelqu'un peut il m'expliquer où est l'erreur ?
voici le code de la macro UsfNew :
======= >> > 'Préparé par Misange (Flo Cabon), septembre 2004
'Merci de citer vos sources
******
Private Sub UserForm_Initialize()
UsfMenu.Hide
Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou
plusieurs
classeurs sont ouverts
CboFam.RowSource = ("TYPE!FAMILLE")
CboFam.ListIndex = -1
TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français
la
date du jour dans le textbox date.
End Sub
Private Sub CmdAnnuler_Click()
Unload UsfNew 'décharge le formulaire. Au prochain lancement la
procédure
userform_initialize sera effecuée
'UsfNew.Hide cache le formulaire sans le décharger.
'Au prochain lancement, le userform_initialize n'est pas effectué
End Sub
Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES
**************************************
'on vérifie que les champs texte sont remplis (sauf pour les
commentaires
qui ne sont pas obligatoires)
If TxtRef.Value = "" Then
MsgBox ("Il faut indiquer la référence !")
Exit Sub 'interrompt la macro de validation, le userform reste affiché
en
l'état pour correction
End If
If TxtDesignation.Value = "" Then
MsgBox ("Il faut indiquer la désignation")
Exit Sub 'interrompt la macro de validation, le userform reste affiché
en
l'état pour correction
End If
If TxtPrix.Value = "" Then
MsgBox ("Il faut indiquer le prix")
Exit Sub 'interrompt la macro de validation, le userform reste affiché
en
l'état pour correction
End If
If TxtDate.Value = "" Then
MsgBox ("Il faut indiquer la date !")
Exit Sub
Else
MaDate = CDate(TxtDate.Value)
End If
If TxtFournisseur.Value = "" Then
MsgBox ("Indiquez le fournisseur")
Exit Sub
End If
If CboFam.ListIndex = -1 Then
MsgBox ("Indiquez la famille")
Exit Sub
End If
'inscription des données récupérées du formulaire validé dans la
feuille
excel
'sélection de la ligne sur laquelle écrire (la première vide)
num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1
'on part du bas de la colonne, on cherche la première cellule non vide
avec
end(xlup), on renvoie son N° avec row et on ajoute 1
'pour avoir le numéro de la ligne d'en dessous
'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES
QTE
EN
STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate
Range("A" & num).Value = TxtRef.Value
Range("B" & num).Value = TxtDesignation.Value
Range("C" & num).Value = TxtPrix.Value
Range("D" & num).Value = CboFam.Value
Range("E" & num).Value = TxtInitiale
Range("J" & num).Value = TxtCommentaire.Value
Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à
convertir
une
date au format des paramètres régionaux du pc
Unload UsfNew 'on décharge le formulaire. Du coup au prochain
affichage,
les
contrôles seront remis dans
'leur état initial. Si l'on voulait conserver certaines des données
entrées,
on pourrait simplement cacher
'le formulaire (hide UsfNew, sans point entre les deux) et dans le
userform_initialize vider les
'contrôles de son choix.
UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à
l'utilisateur.
End Sub
========== >> >
D'avance merci pour votre aide, car là je bloque complètement !
Re: As tu bien définit la liste FAMILLE en faisant Insertion/nom/définir ......FAMILLE Fait réfrérence à: ÞCALER(FAMILLES!$A$1;0;0;NBVAL(FAMILLES!$A:$A),1) remplacer A par la bonne lettre de colonne tu peux en principe mettre FAMILLES en RowSource directement dans la fenêtre des propriétés de CboFam Youky
"Françoise" a écrit dans le message de news:
Bonjour Youky
malheureusement cela ne marche pas, je dois préciser que CboFam.RowSource = ("TYPE!FAMILLE") est en fait CboFam.RowSource = ("FAMILLES!FAMILLE") Bon cela ne change pas le souci, c'est juste histoire de préciser Si d'autres idées, je suis "preneuse" d'avance merci
Bonjour Francoise, En attendant Misange... peut être remplacer CboFam.RowSource = ("TYPE!FAMILLE") par CboFam.RowSource = "FAMILLE" Bien sur il faut que la colonne est été nommée dans la feuille FAMILLES Non testé ! Youky
"Françoise" a écrit dans le message de news:
Bonjour à tous,
je m'adresse à vous car je tourne en rond et ne vois pas où est l'erreur, j'utilise une UserForm d'un modèle créé par Misange sur la gestion de stock, je l'ai adapté à mes besoins, mais là je bute sur mon formulaire pour entrer un nouvel article en stock je veux dans ma nouvelle fiche produit "UsfNew" faire apparaître dans une combo box toutes les familles d'articles déjà existantes afin d'en sélectionner une je fais appel pour cela à une feuille de mon classeur appelée FAMILLES et dans laquelle se trouve une colonne FAMILLE Or dès que je lance ma macro faisant apparaître la UsfNew, j'ai une erreur 380 "Impossible de définir la propriété RowSource. Valeur de propriété non valide" Quelqu'un peut il m'expliquer où est l'erreur ? voici le code de la macro UsfNew :
======= >> > 'Préparé par Misange (Flo Cabon), septembre 2004 'Merci de citer vos sources ******
Private Sub UserForm_Initialize() UsfMenu.Hide Workbooks("Gestion du Stock SDF.xls").Activate 'pour le cas ou plusieurs classeurs sont ouverts CboFam.RowSource = ("TYPE!FAMILLE") CboFam.ListIndex = -1 TxtDate.Value = Format(Now(), "dd/mmm/yyyy") 'met sous format français la date du jour dans le textbox date. End Sub Private Sub CmdAnnuler_Click() Unload UsfNew 'décharge le formulaire. Au prochain lancement la procédure userform_initialize sera effecuée 'UsfNew.Hide cache le formulaire sans le décharger. 'Au prochain lancement, le userform_initialize n'est pas effectué End Sub Private Sub CmdValider_Click()
'**************************** VALIDATION DES DONNEES SAISIES ************************************** 'on vérifie que les champs texte sont remplis (sauf pour les commentaires qui ne sont pas obligatoires)
If TxtRef.Value = "" Then MsgBox ("Il faut indiquer la référence !") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDesignation.Value = "" Then MsgBox ("Il faut indiquer la désignation") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtPrix.Value = "" Then MsgBox ("Il faut indiquer le prix") Exit Sub 'interrompt la macro de validation, le userform reste affiché en l'état pour correction End If
If TxtDate.Value = "" Then MsgBox ("Il faut indiquer la date !") Exit Sub Else MaDate = CDate(TxtDate.Value) End If
If TxtFournisseur.Value = "" Then MsgBox ("Indiquez le fournisseur") Exit Sub End If
If CboFam.ListIndex = -1 Then MsgBox ("Indiquez la famille") Exit Sub End If
'inscription des données récupérées du formulaire validé dans la feuille excel 'sélection de la ligne sur laquelle écrire (la première vide) num = Sheets("STOCK").Range("A65536").End(xlUp).Row + 1 'on part du bas de la colonne, on cherche la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 'pour avoir le numéro de la ligne d'en dessous 'REFERENCE DESIGNATION PRIX FAMILLE QTE DEPART ENTREES SORTIES QTE EN STOCK VALORISATION COMMENTAIRE DATE
Sheets("STOCKS").Activate Range("A" & num).Value = TxtRef.Value Range("B" & num).Value = TxtDesignation.Value Range("C" & num).Value = TxtPrix.Value Range("D" & num).Value = CboFam.Value Range("E" & num).Value = TxtInitiale Range("J" & num).Value = TxtCommentaire.Value Range("K" & num).Value = CDate(TxtDate.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc Unload UsfNew 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans 'leur état initial. Si l'on voulait conserver certaines des données entrées, on pourrait simplement cacher 'le formulaire (hide UsfNew, sans point entre les deux) et dans le userform_initialize vider les 'contrôles de son choix. UsfMenu.Show 'on réaffiche le userform donnant le choix de l'action à l'utilisateur. End Sub ========== >> > D'avance merci pour votre aide, car là je bloque complètement !