Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler Abfangen

Fehler Abfangen
20.04.2007 16:43:09
Heinz
Hallo Leute
Habe unteres Markro, das mir Werte aus einen anderen Sheet einlest.
Funkt.auch,Nur bei "strBla = strErgebnis ' Blattname muss identisch sein mit Eingabe"
Aber wenn der Blattname nicht identisch ist wird "Wert" eingetragen.
Könnte man hier nicht den Fehler durch eine Msg Box abfangen?
Z.B. "Blattname ist nicht gleich Eingabe" oder so ähnlich.
Also das "Wert" nicht eingetragen wird.
Könnte mir Bitte dabei jemand weiterhelfen.
Danke & Gruß Heinz
End If
strWW = "'"
strPfd = strPfad
strXX = "["
strDat = strDatei
strYY = "]"
strBla = strErgebnis ' Blattname muss identisch sein mit Eingabe
strZZ = "'!"
' für Zelle D8: D8 = R8C4 nach Spalte A"
strZe = "R8C4"
LetzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
strSource = strWW & strPfd & strXX & strDat & strYY & strBla & strZZ & strZe
Range("A" & LetzteZeile).Value = xl4Value(strSource) 'zurückschreiben
' für Zelle D11: ' D11 = R11C4 nach Spalte B"
strZe = "R11C4"
LetzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
strSource = strWW & strPfd & strXX & strDat & strYY & strBla & strZZ & strZe
Range("B" & LetzteZeile).Value = xl4Value(strSource) 'zurückschreiben
' für Zelle L8 D6 = R8C12 nach Spalte C"
strZe = "R6C4"
LetzteZeile = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row + 1
strSource = strWW & strPfd & strXX & strDat & strYY & strBla & strZZ & strZe
Range("C" & LetzteZeile).Value = xl4Value(strSource) 'zurückschreiben
'für Zelle L6 L6 = R6C12 nach Spalte E"
strZe = "R6C12"
LetzteZeile = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row + 1
strSource = strWW & strPfd & strXX & strDat & strYY & strBla & strZZ & strZe
Range("E" & LetzteZeile).Value = xl4Value(strSource) 'zurückschreiben
' für Zelle L8 L8 = R8C12 nach Spalte F"
strZe = "R8C12"
LetzteZeile = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row + 1
strSource = strWW & strPfd & strXX & strDat & strYY & strBla & strZZ & strZe
Range("F" & LetzteZeile).Value = xl4Value(strSource) 'zurückschreiben
'Doppelte Datensätze Löschen
Dim I As Integer, iRows As Integer
iRows = Cells(Cells.Rows.Count, 1).End(xlUp).Row
For I = iRows To 1 Step -1
If WorksheetFunction.CountIf(Columns(1), Cells(I, 1)) > 1 Then
MsgBox " Diese SAP Nummer ist bereits vorhanden!"
Rows(I).Delete
Exit Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
On Error Resume Next
20.04.2007 23:43:47
H.
On Error Resume Next

AW: On Error Resume Next
21.04.2007 13:05:43
Heinz
Hallo Namensvetter
Könnte man nicht eine MsgBox einbauen mit "bla bla bla" ?
Gruß Heinz H.

AW: Fehler Abfangen
22.04.2007 18:58:00
fcs
Hallo Heinz,
leider kann man nur bei geöffneten Dateien direkt prüfen ob ein Tabellenblatt mit einem bestimmten Namen enthalten ist.
Das Öffnen der Datei, in der die einzuleseneden Daten enthalten sind willst du aber durch deine Konstruktion mit der Xl4Value-Funktion scheinbar vermeiden.
So kann man erst nach dem einlesen des 1. Wertes prüfen, ob ein Fehlerwert eingetragen wurde. Diesen Wert kann man dann wieder löschen und die Prozedur beenden oder an anderer geeigneter Stelle fortsetzen. Schaut dann etwa so aus:

' für Zelle D8: D8 = R8C4 nach Spalte A"
strZe = "R8C4"
LetzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
strSource = strWW & strPfd & strXX & strDat & strYY & strBla & strZZ & strZe
Range("A" & LetzteZeile).Value = xl4Value(strSource) 'zurückschreiben
'Prüfen, ob Fehlerwert eingetragen wurde
If WorksheetFunction.IsError(Range("A" & LetzteZeile)) = True Then
MsgBox ("Blatt " & strBla & " existiert in Datei " & strDat & "nicht! Was Nun?")
Range("A" & LetzteZeile).ClearContents 'eingetragenes #Wert! wieder löschen
GoTo Fehler   'an geeignete Stelle der Prozedur verzweigen oder mit
'   Exit Sub 'Prozedur abbrechen
End If
' für Zelle D11: ' D11 = R11C4 nach Spalte B"
strZe = "R11C4"
' usw. hier dein bisheriger Code
Fehler: 'Fortsetzung hier wenn Blatt nicht vorhanden


Gruß
Franz

Anzeige
AW: Fehler Abfangen
23.04.2007 06:33:07
Heinz
Hallo Franz
Danke für Deine GROßE Hilfe.
Genau so mach ich es.
Danke & Gruß
Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige