Formulaire de saisie avce liste déroulante dépendante

Bonjour à tous,
Je suis totalement débutante en VBA. J’ai crée un formulaire de création d’une base de données avec des listes déroulantes et cela ne fonctionne pas bien.
J’ai pour l’instant deux questions.
Lorsque je saisis les données dans le form et que je valide, les données apparaissent en dernière ligne. Je pense que c’est lié à ces lignes mais je ne parviens pas à écrire les lignes de code qu’il faudrait pour

  1. que les lignes figurent en ligne 2
  2. et que les autres aillent dans les lignes qui suivent celle qui vient d’être remplie.

'************************
'Procedure permettant de valider
'un choix dans la liste deroulante
'************************

Private Sub CommandButton_valider_Click()

derligne = Sheets("Tableau 2").Range("A1048576").End(xlUp).Row + 1
Sheets("Tableau 2").Cells(derligne, 1) = UserForm2_Formulairebulletin.Cbosource
Sheets("Tableau 2").Cells(derligne, 2) = UserForm2_Formulairebulletin.Cbocategorie
Sheets("Tableau 2").Cells(derligne, 4) = UserForm2_Formulairebulletin.Cbopays1
Sheets("Tableau 2").Cells(derligne, 5) = UserForm2_Formulairebulletin.Cbopays2
Sheets("Tableau 2").Cells(derligne, 6) = UserForm2_Formulairebulletin.Cbopays3

Ma seconde question concerne la création d’une liste déroulante dépendante. Je souhaiterais que sous catégorie soit dépendante de catégorie mais je ne sais pas comment faire.
Il ne faut pas prendre en compte l’onglet 1 du fichier qui relève d’un autre travail.
Je vous remercie pour votre attention et par avance pour votre conseil.
Nathalie
tableau remplissage .xlsm (99,9 Ko)

1 « J'aime »

Bonjour,

La première chose à faire c’est de convertir votre tableau en plage. (sur la feuille Tableau2)
1- Cliquez sur une cellule de votre tableau.


la deuxième est en cours …

Merci ! Je commence donc par là.

Ah oui, cela va déjà beaucoup mieux. La saisie commence désormais à la première ligne. Merci beaucoup déjà pour cela !

1 « J'aime »

2em partie,
1-il faut creer un évènement sur Cbocategorie:

Private Sub Cbocategorie_Change()
Cbosouscategorie.RowSource = Cbocategorie
End Sub

2- Et rajouter la ligne suivante sur le bouton de validation:

Private Sub CommandButton_Valider_Click()
'..............................................
    Sheets("Tableau 2").Cells(derligne, 3) = UserForm2_Formulairebulletin.Cbosouscategorie
'............................................
End Sub

En gros, voici ce que j’ai fais.
tableau remplissage .xlsm (97,5 Ko)
Will

Un immense merci Will. C’est parfait. Il est possible que je revienne vers toi pour te demander la raison de telle action sans pour autant solliciter un cours de VBA.
Je vais en plus pouvoir reprendre le code pour une prochaine fois. Top.
Je te souhaite un bon we un peu en avance
Nathalie

1 « J'aime »

Oui, vous pouvez lancer un sujet et on sera là.

Sub bon_weekend()
application.speech.speak "Bon Weekend Nathalie, ce fut un plaisir ",true
End Sub

Will

si on commence avec des tableaux structurés, il faut les utiliser comme des tableaux structurés et cela commence en supprimant toutes les lignes vides. Puis quand on ajoute des lignes, on les ajoute au tableau structuré au lieu de l’ajouter à la feuille.
Au début, c’est un petit effort pour apprende l’astuce, mais cela vaut la peine.
tableau remplissage (1).xlsm (92,5 Ko)

1 « J'aime »

Oui d’accord Cow. J’alimente mon tableau avec le seul formulaire donc ? Je ne crée pas des lignes en avance donc ? Est-ce bien cela ?
C’est formidable de pouvoir bénéficier de votre aide.
Nathalie

oui, c’est bien çà, le tableau ne contient jamais de lignes vides. Je n’ai pas regardé le reste de l’UF …

tableau remplissage (1).xlsm (101,9 Ko)

1 « J'aime »