Bonjour,
Une proposition...
Option Explicit
Option Private Module
Public Sub nouveau()
Dim wsNew As Worksheet, wsData As Worksheet, wsPT As Worksheet
Dim lo As ListObject
Dim lRow As Long
Application.ScreenUpdating = False
Set wsNew = Worksheets("Nouveau")
Set wsData = Worksheets("BD")
Set wsPT = Worksheets("consultation")
Set lo = wsData.ListObjects(1)
With wsData
If lo.AutoFilter.FilterMode Then lo.AutoFilter.ShowAllData
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
lo.ListRows.Add (1)
.Cells(2, 1) = lRow
.Cells(2, 2) = wsNew.Cells(5, 3)
.Cells(2, 3) = wsNew.Cells(7, 3)
.Cells(2, 4) = wsNew.Cells(8, 3)
.Cells(2, 5) = wsNew.Cells(10, 3)
End With
wsPT.PivotTables(1).RefreshTable
Set wsNew = Nothing: Set wsData = Nothing: Set wsPT = Nothing
Set lo = Nothing
End Sub
Public Sub suprimer_la_derniere_ecrture()
Dim wsNew As Worksheet, wsData As Worksheet, wsPT As Worksheet
Dim lo As ListObject
Application.ScreenUpdating = False
Set wsNew = Worksheets("Nouveau")
Set wsData = Worksheets("BD")
Set wsPT = Worksheets("consultation")
Set lo = wsData.ListObjects(1)
Select Case MsgBox("Voulez-vous effacer La dernière écriture?", vbYesNo, "Confirmation de suppression")
Case Is = vbNo
Exit Sub
Case Else
With wsData
If lo.AutoFilter.FilterMode Then lo.AutoFilter.ShowAllData
.ListObjects(1).ListRows(1).Delete
End With
wsNew.Range("C5,C7:C8,C10").ClearContents
wsPT.PivotTables(1).RefreshTable
End Select
Set wsNew = Nothing: Set wsData = Nothing: Set wsPT = Nothing
End Sub