Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA, "IF" Fehlermeldung

Forumthread: VBA, "IF" Fehlermeldung

VBA, "IF" Fehlermeldung
25.05.2023 15:03:22
Fred


Hallo Excel Profis,
ich habe ein Makro geschrieben, welches mir Daten von Sheet "Hz2" nach Sheet "Depot" kopieren soll,- wenn in Zelle "Cy2" (eine Formel) nicht "#DIV/0!" ausgegeben wird.

Sub nach_Depot()
    If Worksheets("Hz2").Range("CY2").Value > CVErr(xlErrDiv0) Then
       
        Application.ScreenUpdating = False
        ENDE_Depot = Sheets("Depot").Cells(Rows.count, 8).End(xlUp).Row + 1
        Worksheets("Hz2").Range("AI2:DB2").Copy
        Worksheets("Depot").Range("A" & ENDE_Depot).PasteSpecial xlPasteValues
        Worksheets("Depot").Range("A" & ENDE_Depot).PasteSpecial xlFormats
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
        
    End If
End Sub

Wenn der Fehlerwert in "Cy2" vorhanden ist, wird wie gewünscht nicht kopiert.
Steht allerdings kein "Fehlerwert" drin, kommt die Fehlermeldung 13: "Typen unverträglich"
Meine Frage:
Wie ändere ich das Makro entsprechend?

Gruss
Fred

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, "IF" Fehlermeldung
25.05.2023 15:06:33
Pierre
Hallo Fred,

schreib mal unter Sub noch "Dim ENDE_Depot As Long"

Vielleicht reicht das schon.

Gruß Pierre

PS: Variablendeklaration erforderlich anhaken ;-) Bzw. ganz oben Option Explicit.


AW: VBA, "IF" Fehlermeldung
25.05.2023 15:23:52
Fred
Hallo Sheldon und Pierre,
dies kopiert ohne Fehlermeldung, wenn kein Fehlerwert in CY2:
If Worksheets("Hz2").Range("CY2").Value > "#DIV/0!" Then
wenn aber in CY2 ein Fehlerwert, dann Fehlermeldung.

Gruss
Fred


Anzeige
AW: VBA, "IF" Fehlermeldung
25.05.2023 15:15:00
Sheldon
Hallo Fred,

du solltest zunächst prüfen, ob überhaupt ein Fehler in der Zelle ist. Bspw. so:


Sub nach_Depot()
    If IsError(Worksheets("Hz2").Range("CY2").Value) then
            If Worksheets("Hz2").Range("CY2").Value > CVErr(xlErrDiv0) Then
       
                Application.ScreenUpdating = False
                ENDE_Depot = Sheets("Depot").Cells(Rows.count, 8).End(xlUp).Row + 1
                Worksheets("Hz2").Range("AI2:DB2").Copy
                Worksheets("Depot").Range("A" & ENDE_Depot).PasteSpecial xlPasteValues
                Worksheets("Depot").Range("A" & ENDE_Depot).PasteSpecial xlFormats
                Application.CutCopyMode = False
                Application.ScreenUpdating = True
        
            End If
        End If
End Sub
Gruß
Sheldon


Anzeige
AW: VBA, "IF" Fehlermeldung
25.05.2023 15:19:20
Daniel
Hi
Fehlerwerte sind in VBA etwas komisch.
du kannst zwar zwei Fehlerwerte miteinander vergleichen, aber nicht einen Fehlerwert mit einem normalen Wert.

probiers mal so:

If CStr(Worksheets("Hz2").Range("CY2").Value) > CStr(CVErr(xlErrDiv0)) Then

Gruß Daniel


Anzeige
Daniel: Klasse!
25.05.2023 15:28:06
Fred
Hallo Daniel,
If CStr(Worksheets("Hz2").Range("CY2").Value) > CStr(CVErr(xlErrDiv0)) Then
ist in dem Fall die richtige Lösung.
Vielen Dank für deine Unterstützung und bereitgestellte Kompetenz!

Gruss
Fred

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige