En effet.... tentative d'adaptation. Je n'ai pas tout modifié encore dans les noms.Hello
je ne comprend pas du tout ton formulaire.. ca sent la récup pas adaptée.. le nom des controls ne correspond pas au control lui même
ex: le label Somme s'appelle "Code Postal"
les textbox et combobox s'appellent tous "textbox".. bon.. ca .. à la rigueur ok. c'est pour pouvoir boucler sur le nom .. même si un bouclage sur les types de controls aurait sans doute été mieux...
En effet... je me trompe souvent dans la dénomination ListBox et ComboBox
Private Sub btnajouter_Click() ' Procédure permettant d'ajouter une nouvelle dépense
If Me.Ctrl_Date = "" Or Me.Ctrl_Fournisseur = "" Then Exit Sub
With Sheets("depenses").ListObjects("tabsource")
.ListRows.Add
LastLine = .ListRows.Count
On Error Resume Next 'pour ignorer l'erreur sur la colonne "Mode_Paiement"
For k = 1 To .ListColumns.Count
'MsgBox .HeaderRowRange(k).Value
If .HeaderRowRange(k).Value = "FACTURE" Then
.ListColumns(k).DataBodyRange(LastLine) = IIf(Controls("Ctrl_" & .HeaderRowRange(k)), "X", "")
Else
.ListColumns(k).DataBodyRange(LastLine) = Controls("Ctrl_" & .HeaderRowRange(k))
End If
Next k
.ListColumns("Mode_Paiement").DataBodyRange(LastLine) = IIf(Me.Ob_Mandat, "Mandat", "Régie")
End With
End Sub
Super merci.... cependant, je n'ai plus le format monétaire .... dans la colonne 'somme'.... Est-ce lié ?en modifiant le code
VB:Private Sub btnajouter_Click() ' Procédure permettant d'ajouter une nouvelle dépense If Me.Ctrl_Date = "" Or Me.Ctrl_Fournisseur = "" Then Exit Sub With Sheets("depenses").ListObjects("tabsource") .ListRows.Add LastLine = .ListRows.Count On Error Resume Next 'pour ignorer l'erreur sur la colonne "Mode_Paiement" For k = 1 To .ListColumns.Count 'MsgBox .HeaderRowRange(k).Value If .HeaderRowRange(k).Value = "FACTURE" Then .ListColumns(k).DataBodyRange(LastLine) = IIf(Controls("Ctrl_" & .HeaderRowRange(k)), "X", "") Else .ListColumns(k).DataBodyRange(LastLine) = Controls("Ctrl_" & .HeaderRowRange(k)) End If Next k .ListColumns("Mode_Paiement").DataBodyRange(LastLine) = IIf(Me.Ob_Mandat, "Mandat", "Régie") End With End Sub
Private Sub btnajouter_Click() ' Procédure permettant d'ajouter une nouvelle dépense
Dim LstRow As ListRow
If Me.Ctrl_Date = "" Or Me.Ctrl_Fournisseur = "" Then Exit Sub
With Range("tabsource").ListObject
Set LstRow = .ListRows.Add 'On crée une ligne que l'on récupére dans une variable
With LstRow 'Avec cette Ligne
.Range(1) = Me.Ctrl_Date 'On colle la valeur du Control dans la première cellule de cette Ligne
.Range(2) = Me.Ctrl_Fournisseur 'Idem avec le deuxième
.Range(3) = Me.Ctrl_Quoi 'etc
.Range(4) = Me.Ctrl_Qui 'etc
.Range(5) = Me.Ctrl_Compte
.Range(6) = Me.Ctrl_Somme
.Range(7) = IIf(Me.Ob_Mandat, "Mandat", "Régie")
.Range(8) = Me.Ctrl_Facture
.Range(9) = Me.Ctrl_N°_Mandat
.Range(10) = Me.Ctrl_Observation
End With
End With
End Sub