Formelfehler in vba erkennen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Formelfehler in vba erkennen
von: Christian
Geschrieben am: 22.06.2015 15:21:08

Hallo zusammen,
ich bin neu hier, aber eine Suche hat mich leider auch nicht weiter gebracht. Ich verändere über vba eine Tabelle und füge eine Formel ein. Bei einem Fehler soll mir eine Msgbox einen "Fehlertext" zurückgeben. Bis zur zum FillDown funktioniert das auch alles soweit. Bloß meine Fehlerabfrage tut nicht.
Ich hatte die Abfrage auf ein Feld bezogen auch schon richtig (kann ich aber nicht mehr rekonstruieren :-( ), aber dann scheiterte es an meiner Schleife. Es reicht mir einmal eine Messagebox (eventuell mit Feld, in dem der Fehler aufgetreten ist) und nicht für jeden Fehler eine Messagebox.
Könnte mir bitte jemand helfen?
Viele Grüße,
Christian


Sub BearbeitungSubaru()
Dim quellBlatt As Worksheet
Dim zielBlatt As Worksheet
Dim sverweise As Worksheet
Dim letzteZeile As Long
Dim ltzSverSubZul As Long
Dim formel As String
Dim formelbereich As Range
Dim fehler As Boolean
    
    Set quellBlatt = Worksheets("Subaru Import")
    Set zielBlatt = Worksheets("Subaru Export")
    Set sverweise = Worksheets("Sverweis-Tabellen")
    
    letzteZeile = quellBlatt.Range("A100000").End(xlUp).Row
    ltzSverSubZul = sverweise.Range("A100000").End(xlUp).Row
    
    'Kopie der relevanten Spalten
    quellBlatt.Range("C1:D" & letzteZeile).Copy
    zielBlatt.Cells(1, 1).PasteSpecial xlPasteValues
    
    quellBlatt.Range("F1:F" & letzteZeile).Copy
    zielBlatt.Cells(1, 3).PasteSpecial xlPasteValues
    
    quellBlatt.Range("G1:G" & letzteZeile).Copy
    zielBlatt.Cells(1, 5).PasteSpecial xlPasteValues
    
    'Überschrift einfügen
    zielBlatt.Range("D1").Value = "Händler"
    
    'Sverweis einfügen und kopieren
    Set formelbereich = zielBlatt.Range("D2:D" & letzteZeile)
    formel = "=VLOOKUP(RC[-3],'Sverweis-Tabellen'!R4C1:R" & ltzSverSubZul & "C2,2,FALSE)"
    formelbereich.Cells(1, 1).FormulaR1C1 = formel
    formelbereich.Columns(1).FillDown
    
    'auf Fehler prüfen
    If Application.WorksheetFunction.IsError(zielbereich.Range("D2").Value) = False Then
        MsgBox "Kein Fehler gefunden"
    Else
        MsgBox "Fehlertext"
    End If
  
End Sub

Bild

Betrifft: AW: zielbereich ist nicht definiert
von: JoWE
Geschrieben am: 22.06.2015 15:46:35
Hallo Christian,
in der folgenden Zeile findet sich der Bereich "zielbereich":
If Application.WorksheetFunction.IsError(zielbereich.Range("D2").Value) = False Then
der ist aber nirgendwo definiert.
Gruß
Jochen

Bild

Betrifft: AW: Formelfehler in vba erkennen
von: Senna
Geschrieben am: 22.06.2015 15:47:49
Hallo Christian,
mach es mit einer Schleife:
(Code ersetzen ab "'auf Fehler prüfen")


'auf Fehler prüfen
for i = 2 to letzteZeile
   if Application.WorksheetFunction.IsError(cells(i,4).Value) = True Then
     MsgBox "Fehler in Reihe " & i & " gefunden."
     goto Beenden
   end if
next i
MsgBox "Kein Fehler gefunden."
Beenden:
end sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formelfehler in vba erkennen"