Formulaire d'ajout de données

Fidel -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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