Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA-Fehler Typen unverträglich

VBA-Fehler Typen unverträglich
07.05.2013 09:43:35
Alexander
Hallo Forum,
ich stehe vor dem Problem, dass ich auf Arbeit einen Report erstellen muss. Dazu werden per Makro Daten von einer Tabelle in eine Tabelle mit mehreren Tabellenblättern gelesen.
Das Makro hat mein Vorgänger erstellt, ich habe versucht es anzupassen, erhalte aber eine Fehlermeldung "Typen unverträglich".
Kann mir jemand helfen? Das Makro an sich ist umfangreicher, ich habe nur den hoffentlich relevanten Teil ausgewählt. Die fehlerhafte Zeile ist fett markiert.
Sub IOU_Rep()
' Makro1 Makro
VCCREP = ActiveWorkbook.Name
vDat = Range("G1").Value
bDat = Range("I1").Value
Searchdat = vDat
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
If VCCREP = NONO Then GoTo Ende
While Searchdat  "Total"
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
Searchname = ActiveCell.Value
Range(JumpADR).Activate
Call SearchMAK
If Sheetname = "WDCS Call Outcomes Res" Then GoTo NoEntry
Windows(NONO).Activate
Sheets(Sheetname).Activate
EOF = False
Call SearchdatNONO
If EOF = True Then GoTo Ende
'Presented
Windows(VCCREP).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.Copy
Windows(NONO).Activate
ActiveCell.Offset(0, 2).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks:=False,  _
Transpose:=False
'Abondon If Searchdat = ActiveCell.Value Then
Exit For
End If
Next i2
If i2 = EOT2 + 1 Then
EOF = True
End If
End Sub
Sub SearchMAK()
Windows("MAKROS.XLSM").Activate
Sheetname = "ERROR"
Sheets("NoNo").Activate
Range("A1").Select
EOTMAKRO = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Range("B1").Activate
For i2 = 1 To EOTMAKRO
If ActiveCell.Value = Searchname Then
ActiveCell.Offset(0, 1).Range("A1").Select
Sheetname = "WDCS Call Outcomes " + ActiveCell.Value
Exit For
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Next i2
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Fehler Typen unverträglich
07.05.2013 09:48:43
Klaus
Hi,
ohne jetzt den Code näher zu anaylsieren tippe ich bei:
erhalte aber eine Fehlermeldung "Typen unverträglich".
darauf, dass in einer Zelle im Arbeitsblatt #NV! oder #DIV/0! oder sonst ein Fehler steht. Excel will auf den Inhalt dieser Zelle zugreifen und kann nicht: Typen unverträglich.
Grüße,
Klaus M.vdT.
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Fehler: Typen unverträglich in Excel beheben


Schritt-für-Schritt-Anleitung

  1. Prüfe den Code: Überprüfe den VBA-Code auf mögliche Fehlerquellen. Oft entsteht der Fehler "Typen unverträglich" durch falsche Zellwerte oder Typen.

  2. Fehlerhafte Zellinhalte identifizieren: Stelle sicher, dass in den Zellen, auf die zugegriffen wird, keine Fehler wie #NV! oder #DIV/0! stehen. Diese führen häufig zu dem Fehler "typen unverträglich vba".

  3. Variablen-Deklaration anpassen: Achte darauf, dass alle Variablen im Code korrekt deklariert sind. Verwende die richtige Typen-Deklaration, z.B. Dim vDat As String.

  4. Debugging aktivieren: Setze Haltepunkte im Code, um zu überprüfen, an welcher Stelle der Fehler auftritt. Nutze F8, um Schritt für Schritt durch den Code zu gehen.

  5. Fehlerhafte Zeile isolieren: Kommentiere den problematischen Teil des Codes aus und teste den Rest des Codes, um sicherzustellen, dass die restlichen Teile funktionieren.


Häufige Fehler und Lösungen

  • Typen unverträglich: Dieser Fehler tritt häufig auf, wenn Excel versucht, einen Wert aus einer Zelle zu einem anderen Datentyp zu konvertieren. Überprüfe die Zelleninhalte und stelle sicher, dass diese den erwarteten Datentypen entsprechen.

  • Zugriff auf leere Zellen: Wenn der Code versucht, eine leere Zelle zu lesen, kann dies ebenfalls zu einem Fehler führen. Stelle sicher, dass die Zellen, auf die zugegriffen wird, Werte enthalten.

  • Falsche Verwendung von Variablen: Wenn eine Variable, die als Integer deklariert ist, mit einem String-Wert belegt wird, kann es zu "typen unverträglich" kommen. Überprüfe die Datentypen der Variablen.


Alternative Methoden

  • Verwendung von Variant: Wenn du dir unsicher bist, welchen Datentyp du benötigst, kannst du die Variable als Variant deklarieren. Dies erlaubt es der Variable, verschiedene Datentypen zu speichern.

  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um den Code fortzusetzen, auch wenn ein Fehler auftritt. Dies kann helfen, das Problem zu umgehen, ist aber nicht immer die beste Lösung.

On Error Resume Next
  • Zellen mit Fehlern filtern: Verwende die Funktion IsError(), um zu prüfen, ob eine Zelle einen Fehler enthält, bevor du darauf zugreifst.
If Not IsError(Cells(i, j).Value) Then
    ' Verarbeitung des Wertes
End If

Praktische Beispiele

Sub BeispielTypenUnvertraeglich()
    Dim wert As Variant
    wert = Cells(1, 1).Value

    If IsError(wert) Then
        MsgBox "Die Zelle enthält einen Fehler"
    Else
        MsgBox "Der Wert ist: " & wert
    End If
End Sub

In diesem Beispiel wird überprüft, ob der Wert in Zelle A1 einen Fehler enthält, bevor er weiterverarbeitet wird. Dies vermeidet die Fehlermeldung "excel typen unverträglich".


Tipps für Profis

  • Verwende die Option Explicit: Füge Option Explicit am Anfang deiner Module hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler durch ungenaue Variablennamen zu vermeiden.

  • Nutze den VBA-Debugger: Der Debugger ist ein mächtiges Werkzeug. Nutze ihn, um herauszufinden, wo der Fehler auftritt und welche Werte verwendet werden.

  • Führe Tests durch: Erstelle Testdaten, um deinen Code zu validieren. Dies hilft, Probleme frühzeitig zu erkennen.


FAQ: Häufige Fragen

1. Was bedeutet "typen unverträglich" in Excel VBA?
Dieser Fehler tritt auf, wenn der Code versucht, einen Wert in einen nicht kompatiblen Datentyp zu konvertieren.

2. Wie kann ich sicherstellen, dass mein VBA-Code keine Fehler wirft?
Überprüfe die Zellinhalte, deklariere Variablen korrekt und nutze Fehlerbehandlung, um Probleme zu identifizieren und zu beheben.

3. Was kann ich tun, wenn ich nicht sicher bin, welchen Datentyp ich verwenden soll?
Verwende den Datentyp Variant, um flexibler mit unterschiedlichen Datentypen umzugehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige