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

Forumthread: VBA, "IF" Fehlermeldung

VBA, "IF" Fehlermeldung
25.05.2023 13: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 13: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 13: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 13: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 13: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 13: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
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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