comment coder une combobox pour remplir diverses feuilles d'un classeur
26 réponses
raptorus1er
Bonjour,
Tout nouveau sur le forum et dans le codage VBA, je viens vers vous car n'ayant que pour seul méthode d'apprentissage le visionnage et la retranscription de tutoriels vidéos je suis vite perdu dans les termes utilisés.
Après bcp de temps à essayer de comprendre comment créer un formulaire, je suis face à une colle pour mon faible niveau.
Pour la petite explication, j'ai souhaité créer un formulaire car dans mon service, chaque dossier contient une liste mise sous excel, j'ai premièrement rassemblé toutes les listes sur un seul classeur sur diverses feuilles.
De là je me suis lancé sur la création d'un formulaire qui reprend par les textbox toutes les données des diverses listes et une combobox (dans laquelle j'ai listé les diverses feuilles) qui est censée diriger les informations remplies vers la feuille qui aura été sélectionné dans la ComboBox.
et me voilà dans le flou le plus total pour la rédaction d'un code me permettant cette instruction.
Après avoir parcouru les diverses questions, je n'ai pas trouver de solution à mon problème.
Quelqu'un aurait il la possibilité d'orienter mes recherches ou de me guider dans la rédaction du code.
merci à vous
bien cordialement
Bonjour, Un fichier exemple à cette adresse : https://www.cjoint.com/c/HHioLCGjJmi Il y a plus d'une manière de procéder, cela dépend de ce que tu veux faire. L'exemple est simple! MichD
Bonjour,
Un fichier exemple à cette adresse : https://www.cjoint.com/c/HHioLCGjJmi
Il y a plus d'une manière de procéder, cela dépend de ce que tu veux faire. L'exemple est simple!
Bonjour, Un fichier exemple à cette adresse : https://www.cjoint.com/c/HHioLCGjJmi Il y a plus d'une manière de procéder, cela dépend de ce que tu veux faire. L'exemple est simple! MichD
Jacquouille
Juste une question: Quand on remplit le formulaire, il ne s'inscrit pas automatiquement sous la dernière ligne, dans le tableau des datas? Jacques " Le vin est au repas ce que le parfum est à la femme." . "Michd" a écrit dans le message de groupe de discussion : pkevaj$1ig8$ Bonjour, Un fichier exemple à cette adresse : https://www.cjoint.com/c/HHioLCGjJmi Il y a plus d'une manière de procéder, cela dépend de ce que tu veux faire. L'exemple est simple! MichD
Juste une question:
Quand on remplit le formulaire, il ne s'inscrit pas automatiquement sous la
dernière ligne, dans le tableau des datas?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Michd" a écrit dans le message de groupe de discussion :
pkevaj$1ig8$1@gioia.aioe.org...
Bonjour,
Un fichier exemple à cette adresse : https://www.cjoint.com/c/HHioLCGjJmi
Il y a plus d'une manière de procéder, cela dépend de ce que tu veux faire.
L'exemple est simple!
Juste une question: Quand on remplit le formulaire, il ne s'inscrit pas automatiquement sous la dernière ligne, dans le tableau des datas? Jacques " Le vin est au repas ce que le parfum est à la femme." . "Michd" a écrit dans le message de groupe de discussion : pkevaj$1ig8$ Bonjour, Un fichier exemple à cette adresse : https://www.cjoint.com/c/HHioLCGjJmi Il y a plus d'une manière de procéder, cela dépend de ce que tu veux faire. L'exemple est simple! MichD
Michd
Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les données du tableau. Cela se voulait un exemple simple pour un débutant... MichD
Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se
remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les
données du tableau. Cela se voulait un exemple simple pour un débutant...
Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les données du tableau. Cela se voulait un exemple simple pour un débutant... MichD
Jacquouille
Alors, je suis pré-débutant. -)) Merci Jacques " Le vin est au repas ce que le parfum est à la femme." . "Michd" a écrit dans le message de groupe de discussion : pkfhe6$jfh$ Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les données du tableau. Cela se voulait un exemple simple pour un débutant... MichD
Alors, je suis pré-débutant. -))
Merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Michd" a écrit dans le message de groupe de discussion :
pkfhe6$jfh$1@gioia.aioe.org...
Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires
et les 3 textbox se
remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles
données ou mettre à jour les
données du tableau. Cela se voulait un exemple simple pour un débutant...
Alors, je suis pré-débutant. -)) Merci Jacques " Le vin est au repas ce que le parfum est à la femme." . "Michd" a écrit dans le message de groupe de discussion : pkfhe6$jfh$ Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les données du tableau. Cela se voulait un exemple simple pour un débutant... MichD
raptorus1er
Le mercredi 08 Août 2018 à 21:59 par Jacquouille :
Alors, je suis pré-débutant. -)) Merci Jacques " Le vin est au repas ce que le parfum est à la femme." . "Michd" a écrit dans le message de groupe de discussion : pkfhe6$jfh$ Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les données du tableau. Cela se voulait un exemple simple pour un débutant... MichD
bonjour, après avoir cherché encore et toujours, je me retrouve avec ceci Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate End Sub Private Sub ComboBox1_DropButtonClick() ComboBox1.Clear For Each vfeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vfeuille.Name Next End Sub qui me permet de passer de feuille en feuille depuis mon formulaire via la ComboBox1 mais lors de la validation, un message d'erreur s'affiche en disant :"valeur de propriété non valide". y a t'il une erreur ou quelque chose à rajouter? merci à vous
Le mercredi 08 Août 2018 à 21:59 par Jacquouille :
> Alors, je suis pré-débutant. -))
> Merci
>
>
>
> Jacques
> " Le vin est au repas ce que le parfum est à la femme."
> .
> "Michd" a écrit dans le message de groupe de discussion :
> pkfhe6$jfh$
>
> Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu
> désires
> et les 3 textbox se
> remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles
> données ou mettre à jour les
> données du tableau. Cela se voulait un exemple simple pour un
> débutant...
>
> MichD
bonjour,
après avoir cherché encore et toujours, je me retrouve avec ceci
Private Sub ComboBox1_Click()
Sheets(ComboBox1.Value).Activate
End Sub
Private Sub ComboBox1_DropButtonClick()
ComboBox1.Clear
For Each vfeuille In ActiveWorkbook.Sheets
ComboBox1.AddItem vfeuille.Name
Next
End Sub
qui me permet de passer de feuille en feuille depuis mon formulaire via la ComboBox1 mais lors de la validation,
un message d'erreur s'affiche en disant :"valeur de propriété non valide".
y a t'il une erreur ou quelque chose à rajouter?
merci à vous
Le mercredi 08 Août 2018 à 21:59 par Jacquouille :
Alors, je suis pré-débutant. -)) Merci Jacques " Le vin est au repas ce que le parfum est à la femme." . "Michd" a écrit dans le message de groupe de discussion : pkfhe6$jfh$ Quand tu cliques sur le bouton du combobox, tu choisis l'item que tu désires et les 3 textbox se remplissent automatiquement. Il n'est pas fait pour saisir de nouvelles données ou mettre à jour les données du tableau. Cela se voulait un exemple simple pour un débutant... MichD
bonjour, après avoir cherché encore et toujours, je me retrouve avec ceci Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate End Sub Private Sub ComboBox1_DropButtonClick() ComboBox1.Clear For Each vfeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vfeuille.Name Next End Sub qui me permet de passer de feuille en feuille depuis mon formulaire via la ComboBox1 mais lors de la validation, un message d'erreur s'affiche en disant :"valeur de propriété non valide". y a t'il une erreur ou quelque chose à rajouter? merci à vous
Michd
Bonjour Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un combobox. Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai modifié ton code comme ceci. 'Déclaration de la variable dans le haut du module du formulaire Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub '---------------------------------------------- MichD
Bonjour
Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un
combobox.
Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai
modifié ton code comme ceci.
'Déclaration de la variable dans le haut du module du formulaire
Dim X As Long
'----------------------------------------------
Private Sub ComboBox1_Click()
Sheets(ComboBox1.Value).Activate
X = 1
End Sub
'----------------------------------------------
Private Sub ComboBox1_DropButtonClick()
If X = 0 Then
ComboBox1.Clear
Else: X = 0
Exit Sub
End If
For Each vFeuille In ActiveWorkbook.Sheets
ComboBox1.AddItem vFeuille.Name
Next
End Sub
'----------------------------------------------
Bonjour Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un combobox. Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai modifié ton code comme ceci. 'Déclaration de la variable dans le haut du module du formulaire Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub '---------------------------------------------- MichD
raptorus1er
Le jeudi 09 Août 2018 à 12:12 par Michd :
Bonjour Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un combobox. Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai modifié ton code comme ceci. 'Déclaration de la variable dans le haut du module du formulaire Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub '---------------------------------------------- MichD
j'ai positionné la modification du code que tu m'as fourni mais je ne peux toujours pas inscrire sur les autres feuilles malgré tout. Je te mets le codage complet de mon formulaire pour que tu vois si une erreur empêcherait la selection des données de la ComboBox1. Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub Private Sub CommandButton1_Click() If Sheets("feuille1").Range("A3") = "" Then Sheets("feuille1").Range("A3") = TextBox2 Else Sheets("feuille1").ListObjects(1).ListRows.Add End If dlt = Sheets("feuille1").Range("d1000000").End(xlUp).Row Sheets("feuille1").Range("A" & dlt) = TextBox2 Sheets("feuille1").Range("B" & dlt) = TextBox3 Sheets("feuille1").Range("C" & dlt) = TextBox8 Sheets("feuille1").Range("D" & dlt) = TextBox9 End Sub Private Sub Label25_Click() End Sub 'creation format de date et message d'erreur listing Private Sub TextBox11_AfterUpdate() On Error GoTo Messagerreur TextBox11 = Format(TextBox11, "short date") Exit Sub Messagerreur: MsgBox ("le format de la date n'est pas valide jj/mm/aaaa") TextBox11 = Empty End Sub Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox11 = "" Then TextBox11 = "jj/mm/aaaa" End If End Sub 'definition des caractères imposé pour la case listing Private Sub TextBox11_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'suppression automatique du modèle de date imposé date des faits Private Sub TextBox11_Enter() If TextBox11 = "jj/mm/aaaa" Then TextBox11 = "" End If End Sub 'creation format de date et message d'erreur date de départ feuille1 Private Sub TextBox8_AfterUpdate() On Error GoTo Messagerreur TextBox8 = Format(TextBox8, "short date") Exit Sub Messagerreur: MsgBox ("le format de la date n'est pas valide jj/mm/aaaa") TextBox8 = Empty End Sub Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox8 = "" Then TextBox8 = "jj/mm/aaaa" End If End Sub 'definition des caractères imposé pour la case date de départ feuille1 Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'suppression automatique du modèle de date imposé date de départ feuille1 Private Sub TextBox8_Enter() If TextBox8 = "jj/mm/aaaa" Then TextBox8 = "" End If End Sub 'creation format de date et message d'erreur listing Private Sub TextBox9_AfterUpdate() On Error GoTo Messagerreur TextBox9 = Format(TextBox9, "short date") Exit Sub Messagerreur: MsgBox ("le format de la date n'est pas valide jj/mm/aaaa") TextBox9 = Empty End Sub Private Sub TextBox9_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox9 = "" Then TextBox9 = "jj/mm/aaaa" End If End Sub 'definition des caractères imposé pour la case retour feuille 1 Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'suppression automatique du modèle de date imposé case retour feuille 1 Private Sub TextBox9_Enter() If TextBox9 = "jj/mm/aaaa" Then TextBox9 = "" End If End Sub 'demonstration format de date demandée case des dates Private Sub UserForm_Initialize() TextBox11.Text = "jj/mm/aaaa" TextBox9.Text = "jj/mm/aaaa" TextBox8.Text = "jj/mm/aaaa" With ComboBox1 .AddItem " feuille1" .AddItem " feuille 2" .AddItem " feuille 3" .AddItem " feuille 4" .AddItem " feuille 5" .AddItem " feuille 6" .AddItem " feuille 7" .AddItem " feuille 8" End With With ComboBox2 .AddItem "M." .AddItem "Melle" .AddItem "Mme" End With With ComboBox3 .AddItem "membre1" .AddItem " membre2" .AddItem " membre3" .AddItem " membre4" .AddItem " membre5" End With With ComboBox4 .AddItem "Actif" .AddItem "Non Actif" End With With ComboBox5 .AddItem "dossier 1" .AddItem " dossier 2" .AddItem " dossier 3" .AddItem " dossier 4" .AddItem " dossier 5" End With End Sub 'definition des caractères imposé pour la case code postal logement Private Sub TextBox26_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case km liaison Private Sub TextBox29_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case numéro de téléphone fixe Private Sub TextBox32_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case code postal civilité Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case numéro de téléphone portable Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub Je pense que j'ai dû zapper pas mal de choses et avoir fait des bourdes! mais bon jusque là tout fonctionne avec la feuille1 seulement. merci à toi MichD en tout cas de te pencher sur mon cas.
Le jeudi 09 Août 2018 à 12:12 par Michd :
> Bonjour
>
> Ton code fonctionne bien, testé à l'aide d'un copier-coller dans
> un formulaire n'ayant qu'un
> combobox.
>
> Cependant, si tu désires que le nom de la feuille
> sélectionnée demeure dans le combobox, j'ai
> modifié ton code comme ceci.
>
> 'Déclaration de la variable dans le haut du module du formulaire
> Dim X As Long
> '----------------------------------------------
> Private Sub ComboBox1_Click()
> Sheets(ComboBox1.Value).Activate
> X = 1
> End Sub
> '----------------------------------------------
> Private Sub ComboBox1_DropButtonClick()
> If X = 0 Then
> ComboBox1.Clear
> Else: X = 0
> Exit Sub
> End If
> For Each vFeuille In ActiveWorkbook.Sheets
> ComboBox1.AddItem vFeuille.Name
> Next
> End Sub
> '----------------------------------------------
>
> MichD
j'ai positionné la modification du code que tu m'as fourni mais je ne peux toujours pas inscrire sur les autres feuilles malgré tout.
Je te mets le codage complet de mon formulaire pour que tu vois si une erreur empêcherait la selection des données de la ComboBox1.
Dim X As Long
'----------------------------------------------
Private Sub ComboBox1_Click()
Sheets(ComboBox1.Value).Activate
X = 1
End Sub
'----------------------------------------------
Private Sub ComboBox1_DropButtonClick()
If X = 0 Then
ComboBox1.Clear
Else: X = 0
Exit Sub
End If
For Each vFeuille In ActiveWorkbook.Sheets
ComboBox1.AddItem vFeuille.Name
Next
End Sub
Private Sub CommandButton1_Click()
If Sheets("feuille1").Range("A3") = "" Then
Sheets("feuille1").Range("A3") = TextBox2
Else
Sheets("feuille1").ListObjects(1).ListRows.Add
End If
dlt = Sheets("feuille1").Range("d1000000").End(xlUp).Row
Sheets("feuille1").Range("A" & dlt) = TextBox2
Sheets("feuille1").Range("B" & dlt) = TextBox3
Sheets("feuille1").Range("C" & dlt) = TextBox8
Sheets("feuille1").Range("D" & dlt) = TextBox9
End Sub
Private Sub Label25_Click()
End Sub
'creation format de date et message d'erreur listing
Private Sub TextBox11_AfterUpdate()
On Error GoTo Messagerreur
TextBox11 = Format(TextBox11, "short date")
Exit Sub
Messagerreur:
MsgBox ("le format de la date n'est pas valide jj/mm/aaaa")
TextBox11 = Empty
End Sub
Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox11 = "" Then
TextBox11 = "jj/mm/aaaa"
End If
End Sub
'definition des caractères imposé pour la case listing
Private Sub TextBox11_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'suppression automatique du modèle de date imposé date des faits
Private Sub TextBox11_Enter()
If TextBox11 = "jj/mm/aaaa" Then
TextBox11 = ""
End If
End Sub
'creation format de date et message d'erreur date de départ feuille1
Private Sub TextBox8_AfterUpdate()
On Error GoTo Messagerreur
TextBox8 = Format(TextBox8, "short date")
Exit Sub
Messagerreur:
MsgBox ("le format de la date n'est pas valide jj/mm/aaaa")
TextBox8 = Empty
End Sub
Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox8 = "" Then
TextBox8 = "jj/mm/aaaa"
End If
End Sub
'definition des caractères imposé pour la case date de départ feuille1
Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'suppression automatique du modèle de date imposé date de départ feuille1
Private Sub TextBox8_Enter()
If TextBox8 = "jj/mm/aaaa" Then
TextBox8 = ""
End If
End Sub
'creation format de date et message d'erreur listing
Private Sub TextBox9_AfterUpdate()
On Error GoTo Messagerreur
TextBox9 = Format(TextBox9, "short date")
Exit Sub
Messagerreur:
MsgBox ("le format de la date n'est pas valide jj/mm/aaaa")
TextBox9 = Empty
End Sub
Private Sub TextBox9_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox9 = "" Then
TextBox9 = "jj/mm/aaaa"
End If
End Sub
'definition des caractères imposé pour la case retour feuille 1
Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'suppression automatique du modèle de date imposé case retour feuille 1
Private Sub TextBox9_Enter()
If TextBox9 = "jj/mm/aaaa" Then
TextBox9 = ""
End If
End Sub
'demonstration format de date demandée case des dates
Private Sub UserForm_Initialize()
TextBox11.Text = "jj/mm/aaaa"
TextBox9.Text = "jj/mm/aaaa"
TextBox8.Text = "jj/mm/aaaa"
With ComboBox1
.AddItem " feuille1"
.AddItem " feuille 2"
.AddItem " feuille 3"
.AddItem " feuille 4"
.AddItem " feuille 5"
.AddItem " feuille 6"
.AddItem " feuille 7"
.AddItem " feuille 8"
End With
With ComboBox2
.AddItem "M."
.AddItem "Melle"
.AddItem "Mme"
End With
With ComboBox3
.AddItem "membre1"
.AddItem " membre2"
.AddItem " membre3"
.AddItem " membre4"
.AddItem " membre5"
End With
With ComboBox4
.AddItem "Actif"
.AddItem "Non Actif"
End With
With ComboBox5
.AddItem "dossier 1"
.AddItem " dossier 2"
.AddItem " dossier 3"
.AddItem " dossier 4"
.AddItem " dossier 5"
End With
End Sub
'definition des caractères imposé pour la case code postal logement
Private Sub TextBox26_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'definition des caractères imposé pour la case km liaison
Private Sub TextBox29_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'definition des caractères imposé pour la case numéro de téléphone fixe
Private Sub TextBox32_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'definition des caractères imposé pour la case code postal civilité
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
'definition des caractères imposé pour la case numéro de téléphone portable
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0
End Sub
Je pense que j'ai dû zapper pas mal de choses et avoir fait des bourdes!
mais bon jusque là tout fonctionne avec la feuille1 seulement.
merci à toi MichD en tout cas de te pencher sur mon cas.
Bonjour Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un combobox. Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai modifié ton code comme ceci. 'Déclaration de la variable dans le haut du module du formulaire Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub '---------------------------------------------- MichD
j'ai positionné la modification du code que tu m'as fourni mais je ne peux toujours pas inscrire sur les autres feuilles malgré tout. Je te mets le codage complet de mon formulaire pour que tu vois si une erreur empêcherait la selection des données de la ComboBox1. Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub Private Sub CommandButton1_Click() If Sheets("feuille1").Range("A3") = "" Then Sheets("feuille1").Range("A3") = TextBox2 Else Sheets("feuille1").ListObjects(1).ListRows.Add End If dlt = Sheets("feuille1").Range("d1000000").End(xlUp).Row Sheets("feuille1").Range("A" & dlt) = TextBox2 Sheets("feuille1").Range("B" & dlt) = TextBox3 Sheets("feuille1").Range("C" & dlt) = TextBox8 Sheets("feuille1").Range("D" & dlt) = TextBox9 End Sub Private Sub Label25_Click() End Sub 'creation format de date et message d'erreur listing Private Sub TextBox11_AfterUpdate() On Error GoTo Messagerreur TextBox11 = Format(TextBox11, "short date") Exit Sub Messagerreur: MsgBox ("le format de la date n'est pas valide jj/mm/aaaa") TextBox11 = Empty End Sub Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox11 = "" Then TextBox11 = "jj/mm/aaaa" End If End Sub 'definition des caractères imposé pour la case listing Private Sub TextBox11_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'suppression automatique du modèle de date imposé date des faits Private Sub TextBox11_Enter() If TextBox11 = "jj/mm/aaaa" Then TextBox11 = "" End If End Sub 'creation format de date et message d'erreur date de départ feuille1 Private Sub TextBox8_AfterUpdate() On Error GoTo Messagerreur TextBox8 = Format(TextBox8, "short date") Exit Sub Messagerreur: MsgBox ("le format de la date n'est pas valide jj/mm/aaaa") TextBox8 = Empty End Sub Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox8 = "" Then TextBox8 = "jj/mm/aaaa" End If End Sub 'definition des caractères imposé pour la case date de départ feuille1 Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'suppression automatique du modèle de date imposé date de départ feuille1 Private Sub TextBox8_Enter() If TextBox8 = "jj/mm/aaaa" Then TextBox8 = "" End If End Sub 'creation format de date et message d'erreur listing Private Sub TextBox9_AfterUpdate() On Error GoTo Messagerreur TextBox9 = Format(TextBox9, "short date") Exit Sub Messagerreur: MsgBox ("le format de la date n'est pas valide jj/mm/aaaa") TextBox9 = Empty End Sub Private Sub TextBox9_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox9 = "" Then TextBox9 = "jj/mm/aaaa" End If End Sub 'definition des caractères imposé pour la case retour feuille 1 Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'suppression automatique du modèle de date imposé case retour feuille 1 Private Sub TextBox9_Enter() If TextBox9 = "jj/mm/aaaa" Then TextBox9 = "" End If End Sub 'demonstration format de date demandée case des dates Private Sub UserForm_Initialize() TextBox11.Text = "jj/mm/aaaa" TextBox9.Text = "jj/mm/aaaa" TextBox8.Text = "jj/mm/aaaa" With ComboBox1 .AddItem " feuille1" .AddItem " feuille 2" .AddItem " feuille 3" .AddItem " feuille 4" .AddItem " feuille 5" .AddItem " feuille 6" .AddItem " feuille 7" .AddItem " feuille 8" End With With ComboBox2 .AddItem "M." .AddItem "Melle" .AddItem "Mme" End With With ComboBox3 .AddItem "membre1" .AddItem " membre2" .AddItem " membre3" .AddItem " membre4" .AddItem " membre5" End With With ComboBox4 .AddItem "Actif" .AddItem "Non Actif" End With With ComboBox5 .AddItem "dossier 1" .AddItem " dossier 2" .AddItem " dossier 3" .AddItem " dossier 4" .AddItem " dossier 5" End With End Sub 'definition des caractères imposé pour la case code postal logement Private Sub TextBox26_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case km liaison Private Sub TextBox29_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case numéro de téléphone fixe Private Sub TextBox32_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case code postal civilité Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 47 And KeyAscii < 58)) Then KeyAscii = 0 End Sub 'definition des caractères imposé pour la case numéro de téléphone portable Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not ((KeyAscii > 46 And KeyAscii < 58)) Then KeyAscii = 0 End Sub Je pense que j'ai dû zapper pas mal de choses et avoir fait des bourdes! mais bon jusque là tout fonctionne avec la feuille1 seulement. merci à toi MichD en tout cas de te pencher sur mon cas.
raptorus1er
Le jeudi 09 Août 2018 à 12:12 par Michd :
Bonjour Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un combobox. Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai modifié ton code comme ceci. 'Déclaration de la variable dans le haut du module du formulaire Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub '---------------------------------------------- MichD
Me faudrait il dupliquer Private Sub CommandButton1_Click() If Sheets("feuille1").Range("A3") = "" Then Sheets("feuille1").Range("A3") = TextBox2 Else Sheets("feuille1").ListObjects(1).ListRows.Add End If dlt = Sheets("feuille1").Range("d1000000").End(xlUp).Row Sheets("feuille1").Range("A" & dlt) = TextBox2 Sheets("feuille1").Range("B" & dlt) = TextBox3 Sheets("feuille1").Range("C" & dlt) = TextBox8 Sheets("feuille1").Range("D" & dlt) = TextBox9 End Sub pour chaque feuille? avec evidemment le changement des nom des textBox?
Le jeudi 09 Août 2018 à 12:12 par Michd :
> Bonjour
>
> Ton code fonctionne bien, testé à l'aide d'un copier-coller dans
> un formulaire n'ayant qu'un
> combobox.
>
> Cependant, si tu désires que le nom de la feuille
> sélectionnée demeure dans le combobox, j'ai
> modifié ton code comme ceci.
>
> 'Déclaration de la variable dans le haut du module du formulaire
> Dim X As Long
> '----------------------------------------------
> Private Sub ComboBox1_Click()
> Sheets(ComboBox1.Value).Activate
> X = 1
> End Sub
> '----------------------------------------------
> Private Sub ComboBox1_DropButtonClick()
> If X = 0 Then
> ComboBox1.Clear
> Else: X = 0
> Exit Sub
> End If
> For Each vFeuille In ActiveWorkbook.Sheets
> ComboBox1.AddItem vFeuille.Name
> Next
> End Sub
> '----------------------------------------------
>
> MichD
Me faudrait il dupliquer
Private Sub CommandButton1_Click()
If Sheets("feuille1").Range("A3") = "" Then
Sheets("feuille1").Range("A3") = TextBox2
Else
Sheets("feuille1").ListObjects(1).ListRows.Add
End If
dlt = Sheets("feuille1").Range("d1000000").End(xlUp).Row
Sheets("feuille1").Range("A" & dlt) = TextBox2
Sheets("feuille1").Range("B" & dlt) = TextBox3
Sheets("feuille1").Range("C" & dlt) = TextBox8
Sheets("feuille1").Range("D" & dlt) = TextBox9
End Sub
pour chaque feuille? avec evidemment le changement des nom des textBox?
Bonjour Ton code fonctionne bien, testé à l'aide d'un copier-coller dans un formulaire n'ayant qu'un combobox. Cependant, si tu désires que le nom de la feuille sélectionnée demeure dans le combobox, j'ai modifié ton code comme ceci. 'Déclaration de la variable dans le haut du module du formulaire Dim X As Long '---------------------------------------------- Private Sub ComboBox1_Click() Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------------- Private Sub ComboBox1_DropButtonClick() If X = 0 Then ComboBox1.Clear Else: X = 0 Exit Sub End If For Each vFeuille In ActiveWorkbook.Sheets ComboBox1.AddItem vFeuille.Name Next End Sub '---------------------------------------------- MichD
Me faudrait il dupliquer Private Sub CommandButton1_Click() If Sheets("feuille1").Range("A3") = "" Then Sheets("feuille1").Range("A3") = TextBox2 Else Sheets("feuille1").ListObjects(1).ListRows.Add End If dlt = Sheets("feuille1").Range("d1000000").End(xlUp).Row Sheets("feuille1").Range("A" & dlt) = TextBox2 Sheets("feuille1").Range("B" & dlt) = TextBox3 Sheets("feuille1").Range("C" & dlt) = TextBox8 Sheets("feuille1").Range("D" & dlt) = TextBox9 End Sub pour chaque feuille? avec evidemment le changement des nom des textBox?
Michd
Dans le haut du module du formulaire, ajoute une variable : Dim X As Long Dim Feuille As String '<<<<==== modifie cette procédure comme ceci : '---------------------------------------- Private Sub ComboBox1_Click() Feuille = ComboBox1.Value Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------- Et dans cette procédure, ajoute une ligne de code : '------------------------------------------------ Private Sub CommandButton1_Click() if Feuille = "" then Exit sub ' <<<<<==== 'Le reste du code '------------------------------------------------ MichD
Dans le haut du module du formulaire, ajoute une variable :
Dim X As Long
Dim Feuille As String '<<<<====
modifie cette procédure comme ceci :
'----------------------------------------
Private Sub ComboBox1_Click()
Feuille = ComboBox1.Value
Sheets(ComboBox1.Value).Activate
X = 1
End Sub
'----------------------------------------
Et dans cette procédure, ajoute une ligne de code :
'------------------------------------------------
Private Sub CommandButton1_Click()
if Feuille = "" then Exit sub ' <<<<<====
'Le reste du code
Dans le haut du module du formulaire, ajoute une variable : Dim X As Long Dim Feuille As String '<<<<==== modifie cette procédure comme ceci : '---------------------------------------- Private Sub ComboBox1_Click() Feuille = ComboBox1.Value Sheets(ComboBox1.Value).Activate X = 1 End Sub '---------------------------------------- Et dans cette procédure, ajoute une ligne de code : '------------------------------------------------ Private Sub CommandButton1_Click() if Feuille = "" then Exit sub ' <<<<<==== 'Le reste du code '------------------------------------------------ MichD
Michd
| pour chaque feuille? avec evidemment le changement des nom des textBox? Je n'en sais rien. Je ne sais pas où sont ces textbox? De plus, rien n'empêche tes textbox d'avoir le même nom s'ils sont dans des feuilles différentes. À toi de voir! MichD
| pour chaque feuille? avec evidemment le changement des nom des textBox?
Je n'en sais rien. Je ne sais pas où sont ces textbox? De plus, rien n'empêche tes textbox d'avoir
le même nom s'ils sont dans des feuilles différentes. À toi de voir!
| pour chaque feuille? avec evidemment le changement des nom des textBox? Je n'en sais rien. Je ne sais pas où sont ces textbox? De plus, rien n'empêche tes textbox d'avoir le même nom s'ils sont dans des feuilles différentes. À toi de voir! MichD