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 :
Sinon le fichier sera construit de tel façon :
1 feuille excel = 1 mois construit de cette façon:
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
Pourriez-vous partager 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,