VBA FORMULAIRE / passage à la ligne suivante

Fermé
Claire comme de l'eau de roche - 8 janv. 2017 à 22:54
Claire_1982 Messages postés 144 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 29 janvier 2019 - 30 janv. 2017 à 07:33
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

16 réponses

yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 Ambassadeur 1 548
Modifié par yg_be le 8/01/2017 à 23:12
bonsoir Claire,
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?
3