Ich habe eine Exceltabelle mit Daten unserer Verkaufsabteilung.
Die Daten sind im Blatt "Sales" tabellarisch eingepflegt.
Diese Tabelle soll durch eine aktuellere Tabelle ersetzt werden (Die Datei kann man selbst auswählen - Sie wird dann richtig formatiert und ersetzt dann die Daten).
Das klappt bisher auch super und die Tabelle wird 1 zu 1 übernommen.
Nun kommt aber das Problem: In einem seperatem Blatt habe ich eine Pivottabelle (Blattname: SalesPT)
Immer wenn ich das Update durchführe zeigt mir die Pivottabelle plötzlich keine Daten mehr an, obwohl diese definitiv in der Tabelle auf Blatt "Sales" vorhanden sind.
Der Code sieht wiefolgt aus:
Sub Update()
'------------ DIESE MAPPE -------------
'Set Variable this worksheet
Dim ws As Worksheet
'Set Variable Update Worksheets
'Define variables
Dim currentWB As Workbook
Set currentWB = ThisWorkbook
Dim i As Long
'------------ SALES -------------
Dim SalesDashboardSheet As Worksheet
Dim SalesDashboardLastrow As Long
Dim SalesDashboardWBPath As String
'Get the path of the workbook
SalesDashboardWBPath = Application.GetOpenFilename("Excel Files (.xlsx),.xlsx", , "Wählen Siedie Liste für den Bereich - Sales - aus")
If SalesDashboardWBPath = "Falsch" Then
MsgBox ("Eine oder mehrere Dateien wurden nicht ausgewählt. Der Vorgang wird abgebrochen.")
Exit Sub
Else
End If
'Open the workbook
Set SalesDashboardWB = Workbooks.Open(SalesDashboardWBPath)
Application.DisplayAlerts = False
SalesDashboardWB.Activate
'Data Transform
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1), _
Array(53, 1), Array(54, 1), Array(55, 1), Array(56, 1), Array(57, 1), Array(58, 1), Array( _
59, 1), Array(60, 1), Array(61, 1), Array(62, 1), Array(63, 1), Array(64, 1), Array(65, 1)) _
, TrailingMinusNumbers:=True
Selection.End(xlUp).Select
Range("A1").Select
'Data Select
Range("A1").Select
Dim xColIndex As Integer
Dim xRowIndex As Integer
xColIndex = Application.ActiveCell.Column
xRowIndex = Application.ActiveSheet.Cells(Rows.Count, xColIndex).End(xlUp).Row
Range(Cells(2, xColIndex), Cells(xRowIndex, "BM")).Select
Selection.Copy
Application.Wait (Now + TimeValue("00:00:01"))
Selection.Copy
currentWB.Activate
Range("A1").Select
Worksheets("Sales").Activate
On Error Resume Next
ActiveSheet.Cells.Select
ActiveSheet.ShowAllData
On Error GoTo 0
Worksheets("Sales").Activate
Range("A2").Select
If Application.CutCopyMode = False Then
MsgBox "Das Clipboard ist leer. Bitte kopieren Sie zuerst die Daten. (Sales)"
Exit Sub
End If
ActiveSheet.Paste
Range("A1").Select
SalesDashboardWB.Close Savechanges:=False
end sub
|