Ok. Dans la sub initialize de mon post précédent, vous pouvez supprimer Dim cel as range. Cela ne sert pas. J'ai corrigé dans mon post précédent
A. Code enregistrement
1. Vous devez définir tous les noms "histo_mois" (les mois doivent être nommés comme dans le code ci-dessous)
2. remplacez le code Enregistrer de l'USF par celui ci-dessous
Private Sub CmdEnregistrer_Click()
Dim mois As Byte
Dim lig As Integer
Dim sh As String
If Me.TextDate.Value = "" Then MsgBox "Aucune date saisie", vbCritical, "Saisie date": Exit Sub
On Error Resume Next
mois = Month(CDate(Me.TextDate.Value))
Select Case mois
Case 1: sh = "JANVIER"
Case 2: sh = "FEVRIER"
Case 3: sh = "MARS"
Case 4: sh = "AVRIL"
Case 5: sh = "MAI"
Case 6: sh = "JUIN"
Case 7: sh = "JUILLET"
Case 8: sh = "AOUT"
Case 9: sh = "SEPTEMBRE"
Case 10: sh = "OCTOBRE"
Case 11: sh = "NOVEMBRE"
Case 12: sh = "DECEMBRE"
Case Else
MsgBox "Mois non Valide", vbCritical, "Erreur mois"
Exit Sub
End Select
On Error GoTo 0
'Enregistrer les donnees sur la feuille
With Range("histo_" & sh).ListObject
If .ListRows.Count = 0 Then 'trouver si ligne dans tableau structuré
.ListRows.Add: lig = 1 'si pas de ligne
Else: .ListRows.Add: lig = .ListRows.Count 'si lignes trouvees
End If
With .DataBodyRange
.Item(lig, 1) = CDate(Me.TextDate.Value) 'DATE
.Item(lig, 2) = Me.ComboCode.Value 'CODE
'.item(lig,3) = 'EQUIPEMENT
.Item(lig, 4) = Me.ComboSection.Value 'SECTION
.Item(lig, 5) = Me.CombotypeIntervention.Value 'TYPE INTERVENTION
.Item(lig, 6) = Me.TextDI.Value 'N0° BON INTERVENTION
.Item(lig, 7) = Me.TextAnomalie.Value 'ANOMALIE CONSTATEE
.Item(lig, 8) = Me.TextRapport.Value 'RAPPORT D'INTERVENTION
.Item(lig, 9) = Me.TextPiecesderechange.Value 'PIECES DE RECHANGE UTILISEES
.Item(lig, 10) = CDate(Me.TextDebutIntervention.Value) 'DATE & HEURE DEBUT INTERVENTION
.Item(lig, 11) = CDate(Me.TextFinIntervention.Value) 'DATE & HEURE FIN INTERVENTION
.Item(lig, 15) = Me.TextNomsExecutants.Value 'EXECUTANTS
.Item(lig, 16) = Me.TextObsevation.Value 'Observation
End With
MsgBox "Données enregistrées avec succès", vbInformation, "Enregistrement"
End With
End Sub
B. Code Effacer --> Le code Private Sub CmdEffacer_Click() est identique à celui de l'USF Livraison. Il vous suffit de faire un copier-coller dans cette USF
NB : on aurait pu aussi faire un seul code pour définir la variable sh pour l'enregistrement dans les deux USF. Mais bon cela fonctionne aussi comme cela. C'est juste que quelques fois, éviter les redondances est intéressant.
rem : il restera à
- savoir si vous voulez vous garder la fermeture des USF via la croix en plus du code lié au bouton FERMER. Cela ne gêne pas d'avoir les deux évidemment
- voir si les codes dans les module 1 à 3 servent ou pas