Formulaire d'ajout de données

Fermé
Fidel - Modifié le 15 déc. 2020 à 11:12
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 15 déc. 2020 à 11:58
Bonjour,
j'ai le meme problème! je veux créer un formulaire d'ajout de données comportant des combobox, il s'execute correctement mai lorsque je fini d'inserer les données dans le formulaire, je vois le message suivant qui s'affiche "l'indice n'appartient pas à la selection" voici le code
Private Sub CommandButton1_Click()
If cbx_sexe.Value = "" And Cbx_type.Value = "" And cbx_classe.Value = "" Then
MsgBox "veuillez renseigner les  champs 'Sexe/Type/Classe' "
Else
Dim ligne As Integer
If MsgBox("confirmez-vous l'ajout des donn?es?", vbYesNo) = vbYes Then
Worksheets("Mensualite").Select
DL = Sheets("Mensualite").Range("A30000").End(xlUp).Row
 Sheets("Mensualite").ListObjects(1).ListRows.Add
 Sheets("Mensualite").Range("A" & DL) = Me.Enregistrement.Caption
 Sheets("Mensualite").Range("B" & DL) = Me.Txt_prenom
 Sheets("Mensualite").Range("C" & DL) = Me.Txt_nom
 Sheets("Mensualite").Range("D" & DL) = Me.cbx_sexe
 Sheets("Mensualite").Range("F" & DL) = Me.Cbx_type
 Sheets("Mensualite").Range("G" & DL) = Me.cbx_classe
 Sheets("Mensualite").Range("H" & DL) = Me.Txt_versementir
 Sheets("Mensualite").Range("I" & DL) = Me.Txt_versementM
 Sheets("Mensualite").Range("J" & DL) = Me.Txt_dateir
 Sheets("Mensualite").Range("K" & DL) = Me.Txt_dateVM
 Sheets("Mensualite").Range("L" & DL) = Me.Txt_contact
 Sheets("Mensualite").Range("O" & DL) = Me.Txt_baremM
 Sheets("Mensualite").Range("P" & DL) = Me.Txtbaremir
 
 Sheets("Config").Range("C5") = Sheets("Config").Range("C5") + 1
 
 ThisWorkbook.Save
 
 End If
 End If
End Sub

Private Sub CommandButton2_Click()
Unload Inscription_des_?l?ves
End Sub


Private Sub Txt_baremIR_Change()
If Not IsNumeric(Txt_baremIR) And Txt_baremIR <> "" Then
MsgBox "desoler, ce champ requiert uniquement que des chiffres!"
Txt_baremIR = ""
End If
End Sub

Private Sub Txt_baremM_Change()
If Not IsNumeric(Txt_baremM) And Txt_baremM <> "" Then
MsgBox "desoler, ce champ requiert uniquement que des chiffres!"
Txt_versementir = ""
End If
End Sub

Private Sub Txt_contact_Change()
If Not IsNumeric(Txt_contact) And Txt_contact <> "" Then
MsgBox "desoler, ce champ requiert uniquement que des chiffres!"
Txt_versementir = ""
End If
End Sub

Private Sub Txt_versementir_Change()

'uniquement des chiffres

If Not IsNumeric(Txt_versementir) And Txt_versementir <> "" Then
MsgBox "desoler, ce champ requiert uniquement que des chiffres!"
Txt_versementir = ""

End If

End Sub

Private Sub Txt_versementM_Change()

'uniquement des chiffres

If Not IsNumeric(Txt_versementM) And Txt_versementM <> "" Then
MsgBox "desoler, ce champ requiert uniquement que des chiffres!"
Txt_versementM = ""

End If

End Sub

Private Sub Txtbaremir_Change()
If Not IsNumeric(Txtbaremir) And Txtbaremir <> "" Then
MsgBox "desoler, ce champ requiert uniquement que des chiffres!"
Txt_versementM = ""
End If
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Me.Enregistrement.Caption = Sheets("Config").Range("D5").Value
End Sub




quelqu'un pourait m'aider s'il vous plait?

EDIT : Ajout des balises de code

Configuration: Windows / Edge 18.18362

2 réponses

yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
15 déc. 2020 à 11:17
bonjour,
à quelle ligne se produit l'erreur?
la ligne 7 me semble inutile.
as-tu bien une ligne
option explicit
en début de module?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
15 déc. 2020 à 11:58
Bonjour,

cette ligne de code signifie que tu utilises un tableau

Sheets("Mensualite").ListObjects(1).ListRows.Add


Voir cette FAQ pour la création d'un tableau et l'ajout de données dans ce même tableau

https://excel.developpez.com/faq/?page=Tableau


tu peux simplifier ton code comme ceci:

With Worksheets("Mensualite")
DL = .Range("A30000").End(xlUp).Row
.ListObjects(1).ListRows.Add
.Range("A" & DL) = Me.Enregistrement.Caption
'etc...
End With


Voilà quelques idées!
0