Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sprungmarke im Fehlerfall...

Sprungmarke im Fehlerfall...
01.06.2004 09:22:50
Torstenb
Ich habe das Problem, daß das Makro jedesmal hängen bleibt, wenn die Datei "Täglich.txt" nicht vorhanden ist oder keine Werte enthält.
Da in sich in dieser Datei aber nicht die wichtigsten Informationen befinden kann ich notfalls im oben genannten Fall drauf verzichten. Hauptsache das Makro läuft dann trotzdem weiter.
In einem der beiden Fehlerfälle soll einfach an eine andere Stelle dahinter gesprungen werden.
Hier die entsprechende Stelle aus dem Makro:
'*******************************************************************'
' Importvorgang:
'*******************************************************************'

Application.DisplayAlerts = False

ChDir "X:\"
Workbooks.OpenText Filename:="X:\Täglich.txt", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1))

'******************************************************************'
' Letzten 96 Zeilen markieren
'******************************************************************'
Sheets("Täglich").Activate
Range("A65536").End(xlUp).Select
Range(Selection, _
ActiveCell.Offset(-95, 0)).EntireRow.Select
Selection.Copy
Sheets.Add
Sheets("Tabelle1").Select
Sheets("Tabelle1").Name = "letzter Tag"
Selection.Insert Shift:=xlDown
Range("A1").Select
'******************************************************************'
' Ab hier werden dann nur die benötigten Werte rauskopiert
'******************************************************************'
Danke schon mal im voraus!!!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sprungmarke im Fehlerfall...
sergiesam
Hi,
du könntest einen Fehlerfall schon mal abfangen, wenn du fragst, ob die Datei überhaupt vorhanden ist:
if dir("X:\Täglich.txt")"" then 'Datei vorhanden
...
dein Programm
...
end if
oder du verwendest die Fehlerbehandlung mit Sprungmarke
on error goto Fehlerbehandlung
Workbooks.OpenText Filename:="X:\Täglich.txt", Origin:= ...
...
Dein Programm
...
Wiederaufsetzpunkt:
Dein Programm, wenn die datei nicht vorhanden oder leer ist
...
exit sub
Fehlerbehandlung:
if err.number = xxxx then 'xxxx steht für die Fehlernummer
'Was soll getan werden, wenn dieser bestimmte Fehler auftritt
resume Wiederaufsetzpunkt
else
msgbox err.number & "..." & err.description
end if
Sieh einfach in der Hilfe nach unter "on Error"
sam
Anzeige
AW: Sprungmarke im Fehlerfall...
01.06.2004 10:53:51
Torstenb
Vielen Dank Sam! Geht prima !!!
AW: Sprungmarke im Fehlerfall...
01.06.2004 11:06:15
Torstenb
Wenn die Datei aber existiert, aber keine Daten enthält?
Wie prüfe ich ab, ob überhaupt midestens 96 Zeilen existieren? Wenn nicht, soll ebenfalls genauso der Bereich überspungen werden.
Dateigröße ermitteln
sergiesam
Hallo,
versuch es einfach mal so:
dateigroesse= FileLen("DEINE_DATEI")
Gruss
sam
Danke! Habs jetzt anders gelöst ...
02.06.2004 13:03:13
Torstenb
Vielen Dank noch mal für die Hilfe !!!
Den zweiten Teil hab ich jetzt anders gelöst.
Ich habe einfach ausgenutzt, daß der letzte Wert (0.00 Uhr) ja schon das Datum vom aktuellen ag hat, an dem die Datei weiterverarbeitet wird. Die Datei wird nämlich 0.05 Uhr erstellt und der letzte Eintrag ist genau 0.00 Uhr. Die Weiterverarbeitung erfolgt dann 6.00 Uhr. Ich brauch also nur abfragen, ob mindestens 1 Wert mit dem aktuellen Datum vorhanden ist, sonst wirds übersprungen. Wenn durch einen Fehler mal nur alte Daten drinstehen wird sie also auch ignoriert. (Kam schon vor.)Das hat natürlich auch seine Vorteile!
Hier der dafür verantwortliche Teil (Die "End If`s" dahinter hier mal weggelassen.)
If Dir("X:\Täglich.txt") "" Then
' Weiter nur, wenn Datei vorhanden ist
Sheets("Täglich").Activate
Dim Zelle As Range
Set Zelle = Sheets("Täglich").Columns(12).Find(Date)
If Not Zelle Is Nothing Then
' Weiter nur, wenn das Datum des aktuellen Tages (wäre 0.00 Uhr-Wert) gefunden wurde
Torsten
Anzeige
AW: Sprungmarke im Fehlerfall...
01.06.2004 21:41:10
Björn
Hallo Torsten,
versuch's mal mit
ActiveSheet.Range("A65536").End(xlUp).Row
Diese Formel gibt Dir die Zeile an, in der der letzte Eintrag auf dem aktiven Tabellenblatt in Spalte A vorgenommen wurde. Wenn Du den Wert vor und nach dem Import Deiner Datei vergleichst, kannst Du feststellen, ob 96 Zeilen angefügt wurden.
Gruß
Björn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige