VBA FORMULAIRE / passage à la ligne suivante
Claire comme de l'eau de roche
-
Claire_1982 Messages postés 144 Date d'inscription Statut Membre Dernière intervention -
Claire_1982 Messages postés 144 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je me tourne vers vous afin de vous demander de l'aide. Après avoir essayé des codes trouvé sur le net, d'essayer de comprendre où est mon erreur, je me sens complètement perdue...
J'explique mon projet
sur une feuille Excel appelée "BDD" j'ai pour chaque ligne une date (colonne A) et une équipe (colonne B) comme ci-dessous
A B
1 DATE EQUIPE
2 01/01/2017 JAUNE
3 01/01/2017 BLEU
4 01/01/2017 ROUGE
5 02/02/2017 JAUNE
6 02/02/2017 BLEU
7 02/02/2017 ROUGE
et ainsi de suite jusqu'à ce que je sois au chomage... lol
Je souhaite créer un UserForm afin que ces données apparaissent automatiquement (avec évidemment un controle suivant / précédent) pour sélectionner le jour et l'équipe.
Dans ce même UserForm, je souhaite ajouter pour chaque journée et chaque équipe des TextBox, ComboBox qui seront à compléter après chaque journée de travail
A B C D E F
1 DATE EQUIPE QUALITE ARTICLE A ARTICLE B ARTICLE C
2 01/01/2017 JAUNE
3 01/01/2017 BLEU
4 01/01/2017 ROUGE
5 02/02/2017 JAUNE
6 02/02/2017 BLEU
7 02/02/2017 ROUGE
la colonne C "QUALITE" est la combobox1 que j'ai "alimentée" avec le code suivant :
Private Sub Userform_Initialize()
With.Me.ComboBox1
ComboBox1.AddItem"BON"
ComboBox1.AddItem"MOYEN"
ComboBox1.AddItem"FAIBLE"
End with
End Sub
les colonnes D "articleA", E "articleB" et F "articleF" sont des TextBox où sera rentré un chiffre entre 0 et 100. Ceci étant un exemple (j'ai appris récemment qu'il était malvenu d'envoyer son fichier Excel directement en copie, risque de virus et/ou politesse je ne sais pas) il faut savoir que mes textbox seront nombreuses et que si il n'y à rien concernant cet article, je ne souhaite pas écrire "0" mais laisser la textbox vide.
A B C D E F
1 DATE EQUIPE QUALITE ARTICLE A ARTICLE B ARTICLE C
2 01/01/2017 JAUNE BON 5 2
3 01/01/2017 BLEU MOYEN 1 1
4 01/01/2017 ROUGE BON 1
5 02/02/2017 JAUNE
6 02/02/2017 BLEU
7 02/02/2017 ROUGE
Voici ce que j'ai essayée de faire dans le code VBA
'Pour afficher automatiquement la date et l'équipe dans les textbox1 et 2
Private Sub Userform_initialize()
Me.Textbox1 = Sheets("BDD").Range ("A2")
Me.Textbox2 = Sheets("BDD").Range ("B2")
(ensuite est mon code pour alimenter la combobox1)
with me.ComboBox1
ComboBox1.AddItem"BON"
ComboBox1.additem "MOYEN"
ComboBox1.Additem "FAIBLE"
End With
End Sub
Ensuite j'ai créé un bouton de commande pour valider la saisie avec le code ci-dessous
Private Sub CommandButton1_click()
With Sheets ("BDD")
derligne = .Cells(.Rows.Count, "A".End (x1Up).Row+1
If derligne = 1 Then derligne = 2 'car je ne souhaite pas écraser ma ligne d'en-tête sur la feuille "BDD"
.Range("A" & derligne) = TextBox1.Value
.Range("B" & derligne) = TextBox2.Value
.Range("C" & derligne) = ComboBox1.Value
.Range("D" & derligne) = TextBox3.Value
.Range("E" & derligne) = TextBox4.Value
.Range("F" & derligne) = TextBox5.Value
End with
End Sub
Et là bah je ne comprend pas ça ne fonctionne pas correctement. Avant d'aller plus loin je souhaite vous demander conseil déjà à ce niveau.
Je vous suis très reconnaissante pour votre patience. Merci beaucoup !!! Bisous
Claire
Je me tourne vers vous afin de vous demander de l'aide. Après avoir essayé des codes trouvé sur le net, d'essayer de comprendre où est mon erreur, je me sens complètement perdue...
J'explique mon projet
sur une feuille Excel appelée "BDD" j'ai pour chaque ligne une date (colonne A) et une équipe (colonne B) comme ci-dessous
A B
1 DATE EQUIPE
2 01/01/2017 JAUNE
3 01/01/2017 BLEU
4 01/01/2017 ROUGE
5 02/02/2017 JAUNE
6 02/02/2017 BLEU
7 02/02/2017 ROUGE
et ainsi de suite jusqu'à ce que je sois au chomage... lol
Je souhaite créer un UserForm afin que ces données apparaissent automatiquement (avec évidemment un controle suivant / précédent) pour sélectionner le jour et l'équipe.
Dans ce même UserForm, je souhaite ajouter pour chaque journée et chaque équipe des TextBox, ComboBox qui seront à compléter après chaque journée de travail
A B C D E F
1 DATE EQUIPE QUALITE ARTICLE A ARTICLE B ARTICLE C
2 01/01/2017 JAUNE
3 01/01/2017 BLEU
4 01/01/2017 ROUGE
5 02/02/2017 JAUNE
6 02/02/2017 BLEU
7 02/02/2017 ROUGE
la colonne C "QUALITE" est la combobox1 que j'ai "alimentée" avec le code suivant :
Private Sub Userform_Initialize()
With.Me.ComboBox1
ComboBox1.AddItem"BON"
ComboBox1.AddItem"MOYEN"
ComboBox1.AddItem"FAIBLE"
End with
End Sub
les colonnes D "articleA", E "articleB" et F "articleF" sont des TextBox où sera rentré un chiffre entre 0 et 100. Ceci étant un exemple (j'ai appris récemment qu'il était malvenu d'envoyer son fichier Excel directement en copie, risque de virus et/ou politesse je ne sais pas) il faut savoir que mes textbox seront nombreuses et que si il n'y à rien concernant cet article, je ne souhaite pas écrire "0" mais laisser la textbox vide.
A B C D E F
1 DATE EQUIPE QUALITE ARTICLE A ARTICLE B ARTICLE C
2 01/01/2017 JAUNE BON 5 2
3 01/01/2017 BLEU MOYEN 1 1
4 01/01/2017 ROUGE BON 1
5 02/02/2017 JAUNE
6 02/02/2017 BLEU
7 02/02/2017 ROUGE
Voici ce que j'ai essayée de faire dans le code VBA
'Pour afficher automatiquement la date et l'équipe dans les textbox1 et 2
Private Sub Userform_initialize()
Me.Textbox1 = Sheets("BDD").Range ("A2")
Me.Textbox2 = Sheets("BDD").Range ("B2")
(ensuite est mon code pour alimenter la combobox1)
with me.ComboBox1
ComboBox1.AddItem"BON"
ComboBox1.additem "MOYEN"
ComboBox1.Additem "FAIBLE"
End With
End Sub
Ensuite j'ai créé un bouton de commande pour valider la saisie avec le code ci-dessous
Private Sub CommandButton1_click()
With Sheets ("BDD")
derligne = .Cells(.Rows.Count, "A".End (x1Up).Row+1
If derligne = 1 Then derligne = 2 'car je ne souhaite pas écraser ma ligne d'en-tête sur la feuille "BDD"
.Range("A" & derligne) = TextBox1.Value
.Range("B" & derligne) = TextBox2.Value
.Range("C" & derligne) = ComboBox1.Value
.Range("D" & derligne) = TextBox3.Value
.Range("E" & derligne) = TextBox4.Value
.Range("F" & derligne) = TextBox5.Value
End with
End Sub
Et là bah je ne comprend pas ça ne fonctionne pas correctement. Avant d'aller plus loin je souhaite vous demander conseil déjà à ce niveau.
Je vous suis très reconnaissante pour votre patience. Merci beaucoup !!! Bisous
Claire
A voir également:
- Code vba pour passer à la ligne suivante
- Code ascii - Guide
- Aller à la ligne excel - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Partager photos en ligne - Guide
- Passer de qwerty a azerty - Guide
16 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir Claire,
je vois deux erreurs dans
je suggère
Je te recommande d'ajouter "option explicit" au début de ton code : cela t'aurait aidé à découvrir une des deux erreurs. Et de compiler ton code avant de l'exécuter : cela t'aurait aidé à découvrir la seconde erreur.
Peux-tu ensuite donner plus de détails à propos de "ça ne fonctionne pas correctement": que vois-tu, message d'erreur?
je vois deux erreurs dans
derligne = .Cells(.Rows.Count, "A".End (x1Up).Row+1
je suggère
derligne = .Cells(.Rows.Count, "A").End (xlUp).Row+1
Je te recommande d'ajouter "option explicit" au début de ton code : cela t'aurait aidé à découvrir une des deux erreurs. Et de compiler ton code avant de l'exécuter : cela t'aurait aidé à découvrir la seconde erreur.
Peux-tu ensuite donner plus de détails à propos de "ça ne fonctionne pas correctement": que vois-tu, message d'erreur?