UserForm : remplissage de différents feuilles

Bonjour le Forum,

Je suis en train de réaliser un fichier qui sera alimenté par un UserForm qui ressemble à ça :

image

Sinon le fichier sera construit de tel façon :

1 feuille excel = 1 mois construit de cette façon:

image

Du coup, le but de l'user form situé sur la page d'accueil est de reporter les information sur la bonne page.

Si dans l'onglet déroulant l'utilisateur choisis "Janvier", les informations doit être reportés sur la feuille "Janvier 2022", si Mars dans la feuille "Mars 2022".

Du coup pour le code VBA est ce que je dois faire :

Private Sub CommandButton1_Click() (---> Le bouton Valider la saisie)

If Mois=Janvier then      (Mois = Nom du liste déroulant)

Derligne = sheets(‘’Janvier 2022’).Range(‘’A456541’’).End(xlIp).Row+13

Sheets(‘’Janvier 2022’).Cells(derligne, 2)= Ajouter.TextBox1 

Sheets("Janvier2022").Cells(derligne,3)=Ajouter.ListBox1

Sheets("Janvier2022").Cells(derligne,4)=Ajouter.TextBox2

Sheets("Janvier2022").Cells(derligne,5)=Ajouter.TextBox3

Sheets("Janvier2022").Cells(derligne,6)=Ajouter.ListBox2

Sheets("Janvier2022").Cells(derligne,7)=Ajouter.TextBox5

Sheets("Janvier2022").Cells(derligne,8)=Ajouter.TextBox4

If Ajouter.OptionButton1.Value=True Then sheets(‘’Janvier 2022’).cells(derligne, 9)=Ajouter.Optionbutton1.caption

If Ajouter.OptionButton2.Value=True Then sheets(‘’Janvier 2022’).cells(derligne, 9)=Ajouter.Optionbutton2.caption

Ajouter.TextBox1=""
Ajouter.ListBox1=""
Ajouter.TextBox2=""

Ajouter.TextBox3=""

Ajouter.ListBox2=""

Ajouter.TextBox5=""

Ajouter.TextBox4=""

If Ajouter.OptionButton1.Value=False

If Ajouter.OptionButton1.Value=False

End 

If Mois=Février then 

Derligne = sheets(‘’Février 2022’).Range(‘’A456541’’).End(xlIp).Row+13

Sheets(‘’Février 2022’).Cells(derligne, 2)= Ajouter.TextBox1

Sheets("Février 2022").Cells(derligne,3)=Ajouter.ListBox1

Sheets("Février 2022").Cells(derligne,4)=Ajouter.TextBox2

Sheets("Février 2022").Cells(derligne,5)=Ajouter.TextBox3

Sheets("Février 2022").Cells(derligne,6)=Ajouter.ListBox2

Sheets("Février 2022").Cells(derligne,7)=Ajouter.TextBox5

Sheets("Février 2022").Cells(derligne,8)=Ajouter.TextBox4

If Ajouter.OptionButton1.Value=True Then sheets(‘’Février 2022’).cells(derligne, 9)=Ajouter.Optionbutton1.caption

If Ajouter.OptionButton2.Value=True Then sheets(‘’Février 2022’).cells(derligne, 9)=Ajouter.Optionbutton2.caption

Ajouter.TextBox1=""

Ajouter.ListBox1=""

Ajouter.TextBox2=""

Ajouter.TextBox3=""

Ajouter.ListBox2=""

Ajouter.TextBox5=""

Ajouter.TextBox4=""

If Ajouter.OptionButton1.Value=False

If Ajouter.OptionButton1.Value=False

End
.... et je continue de faire ça jusqu'à la fin ?

Du coup, je voulais savoir si c'était la bonne méthode avec If...then ?

Je débute dans le VBA du coup je ne sais pas si c'est bon ou non...

Je vous remercie de votre attention.

Cordialement

Praveena


Bonsoir,

Tu pourrais directement récupérer la valeur de ta combobox pour sélectionner la bonne feuille. Par exemple,

EDIT:

Private Sub CommandButton1_Click()
Ws = Mois.Value
derligne = Sheets(Ws).Range("A" & Rows.Count).End(xlUp).Row + 1

With Sheets(Ws)
    .Range("B" & derligne).Value = Ajouter.TextBox1
    .Range("C" & derligne).Value = Ajouter.ListBox1
    .Range("D" & derligne).Value = Ajouter.TextBox2
    .Range("E" & derligne).Value = Ajouter.TextBox3
    'etc...
End With
End Sub

Bonsoir Thrrybo,

Je vous remercie de votre réponse.

De ce fait, cela donnera ce code ci :

Private Sub CommandButton1_Click()
Ws = Mois.Value
derligne = Sheets(Ws).Range("A" & Rows.Count).End(xlUp).Row + 1

With Sheets(Ws)
    .Range("B" & derligne).Value = Ajouter.TextBox1
    .Range("C" & derligne).Value = Ajouter.ListBox1
    .Range("D" & derligne).Value = Ajouter.TextBox2
    .Range("E" & derligne).Value = Ajouter.TextBox3
    .Range("F" & derligne).Value = Ajouter.ListBox2
    .Range("G" & derligne).Value = Ajouter.TextBox5
    .Range("H" & derligne).Value = Ajouter.TextBox4
    .If Ajouter.OptionButton1.Value=True = Range("J" & derligne).Value = Ajouter.Optionbutton1.caption
    .If Ajouter.OptionButton2.Value=True = Range("J" & derligne).Value = Ajouter.Optionbutton2.caption 

End With

Ajouter.TextBox1=""
Ajouter.ListBox1=""
Ajouter.TextBox2=""
Ajouter.TextBox3=""
Ajouter.ListBox2=""
Ajouter.TextBox5=""
Ajouter.TextBox4=""
Ajouter.Optionbutton1.value= false.
Ajouter.Optionbutton2.value= false.
End Sub

Du coup, c'est bien comme ça ou il y a une erreur?

Merci de votre retour,

Praveena

Une petite modification et ça devrait fonctionner. Et j'ai plutôt mis de fermer/rouvrir le formulaire pour vider toutes les données. Pensez à changer le nom du userform si ce n'est pas UserForm1,

Private Sub CommandButton1_Click()
Ws = Mois.Value
derligne = Sheets(Ws).Range("A" & Rows.Count).End(xlUp).Row + 1

With Sheets(Ws)
    .Range("B" & derligne).Value = Ajouter.TextBox1
    .Range("C" & derligne).Value = Ajouter.ListBox1
    .Range("D" & derligne).Value = Ajouter.TextBox2
    .Range("E" & derligne).Value = Ajouter.TextBox3
    .Range("F" & derligne).Value = Ajouter.ListBox2
    .Range("G" & derligne).Value = Ajouter.TextBox5
    .Range("H" & derligne).Value = Ajouter.TextBox4
    If Ajouter.Optionbutton1.Value = True Then
    .Range("J" & derligne).Value = Ajouter.Optionbutton1.Caption
    ElseIf Ajouter.OptionButton2.Value = True Then
    Range("J" & derligne).Value = Ajouter.OptionButton2.Caption
    End If
End With

Unload Me
UserForm1.Show  'Nom du UserForm
End Sub

D'accord,

j'ai modifié le code et j'ai essayé mais il me met ce message d'erreur:

2021 12 30 3

qui est présent sur la ligne de derligne :

image

Du coup je me demande si c'est parce que le tableau où les valeurs seront stockés ne commence pas à la première ligne?

Merci de votre réponse

Cordialement

Praveena

Pourriez-vous partager le fichier ?

Oui, voici le fichier :

Votre tableau commençait en colonne B, ce que je ne savais pas, et il y avait une erreur dans le nom du mois de Janvier qu'il ne retrouvait pas.

De mon côté ça fonctionne maintenant,

D'accord merci beaucoup pour la solution!

Cordialement

Praveena

Rechercher des sujets similaires à "userform remplissage differents feuilles"