"Ein Modul hat einen ungültigen Typ"
29.05.2023 22:08:23
Erika
Hallo liebe VBA-Community,
ich bin neu einsteigende VBA-Dilettantin ;-)
Seit heute tritt in meinem Projekt immer wieder die Fehlermeldung auf, wenn ich versuch eine Variable für eine Pivot-Tabelle zu definieren. Code-Beispiel wäre zum Beispiel:
Sub createPTableDRange()
'Source: https://powerspreadsheets.com/
'For further information: https://powerspreadsheets.com/vba-create-pivot-table/
'declare variables to hold row and column numbers that define source data cell range
Dim myFirstRow As Long
Dim myLastRow As Long
Dim myFirstColumn As Long
Dim myLastColumn As Long
'declare variables to hold source and destination cell range address
Dim mySourceData As String
Dim myDestinationRange As String
'declare object variables to hold references to source and destination worksheets, and new Pivot Table
Dim mySourceWorksheet As Worksheet
Dim myDestinationWorksheet As Worksheet
Dim myPivotTable As PivotTable
'identify source and destination worksheets
With ThisWorkbook
Set mySourceWorksheet = .Worksheets("Data")
Set myDestinationWorksheet = .Worksheets("DynamicRange")
End With
'obtain address of destination cell range
myDestinationRange = myDestinationWorksheet.Range("A5").Address(ReferenceStyle:=xlR1C1)
'identify first row and first column of source data cell range
myFirstRow = 5
myFirstColumn = 1
With mySourceWorksheet.Cells
'find last row and last column of source data cell range
myLastRow = .Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
myLastColumn = .Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'obtain address of source data cell range
mySourceData = .Range(.Cells(myFirstRow, myFirstColumn), .Cells(myLastRow, myLastColumn)).Address(ReferenceStyle:=xlR1C1)
End With
'create Pivot Table cache and create Pivot Table report based on that cache
Set myPivotTable = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=mySourceWorksheet.Name & "!" & mySourceData).CreatePivotTable(TableDestination:=myDestinationWorksheet.Name & "!" & myDestinationRange, TableName:="PivotTableExistingSheet")
'add, organize and format Pivot Table fields
With myPivotTable
.PivotFields("Item").Orientation = xlRowField
With .PivotFields("Units Sold")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0.00"
End With
With .PivotFields("Sales Amount")
.Orientation = xlDataField
.Position = 2
.Function = xlSum
.NumberFormat = "#,##0.00"
End With
End With
End Sub
Der Debug weist auf die Zeile:
Dim myPivotTable As PivotTable
hin - wenn ich die Zeile auskommentiere läuft der Code durch bis er sich natürlich später über die fehlende Variable beschwert. Wie man erkennen kann, ist der oben genannte Code auch nicht von mir, sondern von einer Webseite kopiert, da ich das Internet abgesucht habe, um den Fehler in meinem Code zu finden - aber alle anderen Code Beispiele zeigen mir den gleichen Fehler an - auch wenn ich sie in eine neue, leere Datei packe.... Auch in meinem eigentlichen Projekt tritt dieser Fehler in Teilen des Codes auf, die bisher prima funktioniert haben - und immer bei der Definition der Variablen für PivotTable.Ich wäre extrem dankbar, wenn irgendjemand eine Idee hat, woran es lieben könnte. (Ich arbeite übrigens auf einem Mac - falls das an dieser Stelle einen Unterschied macht...)
Vielen Dank im Voraus,
Erika