Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
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

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


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


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

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige