Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
Anzeige
Archiv - Navigation
1932to1936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

"Ein Modul hat einen ungültigen Typ"

"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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Ein Modul hat einen ungültigen Typ"
29.05.2023 23:16:53
Ulf
Hallo Erika,
Schuß ins Blaue: Du hast das Modul, welches den Code enthält PivotTable genannt ?
Unabhängig davon
Versuch ein neues Modul anzulegen, den Text Copy/Paste, das vorhandene löschen, Datei speichern und Debugger testen.
Ergebnis?

Gruß Ulf


AW: "Ein Modul hat einen ungültigen Typ"
30.05.2023 01:11:29
Erika
Hallo Ulf,
vielen, vielen Dank, der Schuß ins Blaue war ein Treffer: das Modul hieß PivotTable. Nachdem ich es umgenannt habe, funktioniert es wieder. Wohl ein klassischer Anfänger-Fehler, oder? :-D
Gruß, Erika


AW: "Ein Modul hat einen ungültigen Typ"
30.05.2023 05:50:29
Ulf
Moinsen Erika,
Die Erfahrung macht man sofern nicht bekannt:
Nenne eine Variable,Module,Typen usw NIE wie ein Syntax-Schlüssewort. Verboten also Workboook, Sheet, Cell & Co.
Ansonsten biba
Ulf


Anzeige
AW: "Ein Modul hat einen ungültigen Typ"
29.05.2023 23:20:09
Pappawinni
Ich hab ja keine Ahnung von dem Pivot-Zeug, da aber hier
Set myPivotTable = ThisWorkbook.PivotCaches.
nix von Table steht, denk ich. dass der Type von myPivotTable PivotCache sein könnte.
Aber lass doch einfach mal die Typdeklatation weg...
Also nur
Dim myPivotTable
nicht AS irgendwas...

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige