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

comment coder une combobox pour remplir diverses feuilles d'un classeur

26 réponses
Avatar
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

10 réponses

1 2 3
Avatar
raptorus1er
Le jeudi 09 Août 2018 à 21:39 par 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
bonjour,
après avoir fait les modifications que tu m'as donné (Michd),
donc au jour d'aujourd'hui, les informations s'inscrivent sur toutes les feuilles en même temps peu importe la feuille que je sélectionne sur la ComboBox1.
je reste donc dans la galère mais pas la même lol.
si quelqu'un a une solution je suis toujours preneur.
merci à tous
Avatar
Michd
Fichier exemple : : https://www.cjoint.com/c/HHxueYlupui
Tu sélectionnes la feuille que tu désires dans le textbox
Tu entres des données dans les textbox du formulaire
et tu cliques sur le bouton transfert.
MichD
"raptorus1er" a écrit dans le message de groupe de discussion :
Le jeudi 09 Août 2018 à 21:39 par 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

bonjour,
après avoir fait les modifications que tu m'as donné (Michd),
donc au jour d'aujourd'hui, les informations s'inscrivent sur toutes les
feuilles en même temps peu importe la feuille que je sélectionne sur la
ComboBox1.
je reste donc dans la galère mais pas la même lol.
si quelqu'un a une solution je suis toujours preneur.
merci à tous
Avatar
raptorus1er
Le jeudi 23 Août 2018 à 22:06 par Michd :
Fichier exemple : : https://www.cjoint.com/c/HHxueYlupui
Tu sélectionnes la feuille que tu désires dans le textbox
Tu entres des données dans les textbox du formulaire
et tu cliques sur le bouton transfert.
MichD
"raptorus1er" a écrit dans le message de groupe de discussion
:
Le jeudi 09 Août 2018 à 21:39 par 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
bonjour,
après avoir fait les modifications que tu m'as donné (Michd),
donc au jour d'aujourd'hui, les informations s'inscrivent sur toutes les
feuilles en même temps peu importe la feuille que je sélectionne
sur la
ComboBox1.
je reste donc dans la galère mais pas la même lol.
si quelqu'un a une solution je suis toujours preneur.
merci à tous
bonjour MichD et à tous,
j'ai testé les formules que tu as mis dans ton formulaire mais je ne peux pas le mettre en place dans le mien car je n'ai pas de textbox dans mes feuilles mais un tableau par feuille.
les cellules des tableaux sont remplies via:
Private Sub CommandButton1_Click()
'activation de commande de la 1ere textbox valide pour feuille1
If Sheets("feuille1").Range("A3") = "" Then
Sheets("feuille1").Range("A3") = TextBox2
Else
Sheets("feuille1").ListObjects(1).ListRows.Add
End If
'Détail des TextBox uilisé pour la feuille sélectionnée
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
du coup j'ai fait cela pour chaque feuille ce qui fonctionne au jour d'aujourd'hui.
Malheureusement TextBox2 impacte également une colonne de la feuille 2, de la feuille 3 etc.... et me les inscrit également.
tu me conseilles de coder:
Private Sub CmdTransfer_Click()
plutot que
Private Sub CommandButton1_Click()
ou cela importe peu?
quelqu'un aurait une idée pour le transfert des données des textbox sur une feuille vers les cellules correspondantes?
Avatar
Michd
'--------------------------------------------------------------
tu me conseilles de coder:
Private Sub CmdTransfer_Click()
plutot que
Private Sub CommandButton1_Click()
'--------------------------------------------------------------
Si tu as remarqué, si tu affiches les propriétés (barre des menus / développeur / Mode création /
après sélectionne le bouton de commande et affiche les propriétés par la commande du même nom.
Remarque que la propriété "Name" a comme "NOM" CmdTransfer".
Si ce bouton est dans un formulaire, en mode création, sélectionne le bouton et regarde la propriété
"NAME" du bouton, il doit avoir comme nom "CmdTranfer". Le fait de donner un nom au bouton de
commande aide à reconnaître à quoi sert ces boutons lorsque vient le temps de CODER. Le nom lui-même
n'a aucun impact sur l'exécution du code. Après donner un nom, lorsque tu fais un double-clic pour
inscrire le code, au lieu d'avoir un bouton Private Sub CommandButton1_Click(), tu as Private Sub
CmdTransfer_Click()
MichD
?
Avatar
raptorus1er
Le jeudi 06 Septembre 2018 à 20:11 par Michd :
'--------------------------------------------------------------
tu me conseilles de coder:
Private Sub CmdTransfer_Click()
plutot que
Private Sub CommandButton1_Click()
'--------------------------------------------------------------
Si tu as remarqué, si tu affiches les propriétés (barre
des menus / développeur / Mode création /
après sélectionne le bouton de commande et affiche les
propriétés par la commande du même nom.
Remarque que la propriété "Name" a comme
"NOM" CmdTransfer".
Si ce bouton est dans un formulaire, en mode création,
sélectionne le bouton et regarde la propriété
"NAME" du bouton, il doit avoir comme nom "CmdTranfer". Le
fait de donner un nom au bouton de
commande aide à reconnaître à quoi sert ces boutons lorsque
vient le temps de CODER. Le nom lui-même
n'a aucun impact sur l'exécution du code. Après donner un nom,
lorsque tu fais un double-clic pour
inscrire le code, au lieu d'avoir un bouton Private Sub CommandButton1_Click(),
tu as Private Sub
CmdTransfer_Click()
MichD
?
bonjour MichD et à tous!
je pensais que CmdTransfer_Click() étaitun bouton de commande particulier créé à partir de la boite à outils comme l'est CommandButton1_Click() en fait c'est juste le nom que tu as changé pour donner sa description.
du coup ça ne change pas mon problème! :)
je continue à chercher. bonne journée à tous
Avatar
Michd
| du coup ça ne change pas mon problème! :)
Et c'est quoi ton problème?
MichD
Avatar
raptorus1er
Le vendredi 07 Septembre 2018 à 11:39 par Michd :
| du coup ça ne change pas mon problème! :)
Et c'est quoi ton problème?
MichD
ben lorsque j'inscris dans mes textbox, les informations vont sur toutes les feuilles en même temps.
le formulaire que tu m'as montré permet de transférer des informations de textbox vers des textbox, ce que je recherche c'est pour le transfert des information de textbox vers les cellules du tableau (d'une feuille préselectionnée auparavant depuis une combobox).
si tu veux je peux te faire parvenir mon projet par mp pour que tu le vois dans son intégralité.
Avatar
Michd
Si tu veux ajouter des données (une nouvelle ligne) à un tableau des données, voici un exemple de
code.
Si tu veux simplement modifier une donnée existante du tableau, ceci est suffisant :
With Activesheet 'OU Worksheets("NomFeuille")
.Cells(3, 1) = "toto100"
End With
Ce code ajoute une ligne nouvelle de donnée au tableau.
'-------------------------------------
Sub Ajouter_New_Data_To_A_Table()
Dim Sh As Worksheet
Dim T As ListObject, Newrow As ListRow
Set Sh = ActiveSheet
Set T = Sh.ListObjects("Tableau1")
Set Newrow = T.ListRows.Add
With Newrow
.Range(1) = "...." 'Première colonne nouvelle ligne
.Range(2) = "......" 'Deuxième colonne ...
.Range(3) = "Ce que tu veux"
End With
End Sub
'-------------------------------------
Pour ce qui est des textbox, tu as déjà un exemple.
MichD
Avatar
raptorus1er
Le vendredi 07 Septembre 2018 à 14:12 par Michd :
Si tu veux ajouter des données (une nouvelle ligne) à un tableau
des données, voici un exemple de
code.
Si tu veux simplement modifier une donnée existante du tableau, ceci est
suffisant :
With Activesheet 'OU Worksheets("NomFeuille")
.Cells(3, 1) = "toto100"
End With
Ce code ajoute une ligne nouvelle de donnée au tableau.
'-------------------------------------
Sub Ajouter_New_Data_To_A_Table()
Dim Sh As Worksheet
Dim T As ListObject, Newrow As ListRow
Set Sh = ActiveSheet
Set T = Sh.ListObjects("Tableau1")
Set Newrow = T.ListRows.Add
With Newrow
.Range(1) = "...." 'Première colonne nouvelle ligne
.Range(2) = "......" 'Deuxième colonne ...
.Range(3) = "Ce que tu veux"
End With
End Sub
'-------------------------------------
Pour ce qui est des textbox, tu as déjà un exemple.
MichD
bonjour,
voici mon fichier avec les problèmes qui se posent à moi, à savoir:
- enregistrement des informations sur toutes les feuilles de mon classeur
- lorsque l'on passe d'une donnée à une autre dans la combobox1, les textboxs qui ont déjà été désactivées ne sont plus actives sans avoir redémarré le formulaire.
c'est tout ce qui me pose problème du moins pour le moment :)
https://www.cjoint.com/c/HIlhAauYsFc
toutes modifications seront les bienvenues pour faciliter l'utilisation de mon projet.
merci à vous et bonne journée
Avatar
Michd
Bonjour,
Dans ton formulaire, j'ai renommé tous les contrôles "Texte" et "Combobox" du nom de l'étiquette
au-dessus des contrôles respectifs. Lorsque ces étiquettes ont une appellation de plus d'un mot, le
nom (propriété name) des contrôles est le même que l'étiquette + un "_" remplaçant l'espace. Les
accents font aussi partie des noms des contrôles.
Dans tes feuilles, le nom des étiquettes de colonnes de la ligne 2, doit avoir la même appellation
que les étiquettes ou noms des contrôles du formulaire. Cependant, nul besoin d'utiliser le "_" pour
remplacer les espaces. Ces étiquettes de colonnes dans plusieurs feuilles ont des noms différents.
Je ne les ai pas modifiés, c'est ton travail.
Les contrôles "Combobx" ne sont jamais "touchés par la procédure".
Quand tu modifies le contenu du combobox "Listing" seulement les contrôles de la feuille contenant
le nom des étiquettes de la ligne 2 de la feuille sont activés dans le formulaire.
Ton fichier : https://www.cjoint.com/c/HIlrAWyQNdF
Observe, tous les noms des "Textbox" débutent par "Txt", celui des combobox par "Cmb" et celui des
boutons de commande par "Cmd". En prenant le temps de bien nommer les contrôles, c'est beaucoup plus
facile de s'y retrouver lorsque l'on désire insérer du code!
MichD
"raptorus1er" a écrit dans le message de groupe de discussion :
Le vendredi 07 Septembre 2018 à 14:12 par Michd :
Si tu veux ajouter des données (une nouvelle ligne) à un tableau
des données, voici un exemple de
code.
Si tu veux simplement modifier une donnée existante du tableau, ceci est
suffisant :
With Activesheet 'OU Worksheets("NomFeuille")
.Cells(3, 1) = "toto100"
End With
Ce code ajoute une ligne nouvelle de donnée au tableau.
'-------------------------------------
Sub Ajouter_New_Data_To_A_Table()
Dim Sh As Worksheet
Dim T As ListObject, Newrow As ListRow
Set Sh = ActiveSheet
Set T = Sh.ListObjects("Tableau1")
Set Newrow = T.ListRows.Add
With Newrow
.Range(1) = "...." 'Première colonne nouvelle ligne
.Range(2) = "......" 'Deuxième colonne ...
.Range(3) = "Ce que tu veux"
End With
End Sub
'-------------------------------------
Pour ce qui est des textbox, tu as déjà un exemple.
MichD

bonjour,
voici mon fichier avec les problèmes qui se posent à moi, à savoir:
- enregistrement des informations sur toutes les feuilles de mon classeur
- lorsque l'on passe d'une donnée à une autre dans la combobox1, les textboxs
qui ont déjà été désactivées ne sont plus actives sans avoir redémarré le
formulaire.
c'est tout ce qui me pose problème du moins pour le moment :)
https://www.cjoint.com/c/HIlhAauYsFc
toutes modifications seront les bienvenues pour faciliter l'utilisation de mon
projet.
merci à vous et bonne journée
1 2 3