Anzeige
Archiv - Navigation
1452to1456
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
Inhaltsverzeichnis

Eventualitäten berücksichtigen

Eventualitäten berücksichtigen
28.10.2015 10:43:32
Vilen
Hallo liebe Gemeinde,
mein Ziel ist es, dass beim Öffnen einer Datei, diese aktualisiert wird. Dies soll geschehen, indem eine Quelldatei geöffnet, daraus ein Arbeitsblatt in meine Zieldatei kopiert und wieder geschlossen wird. Zuvor soll aber aus meiner zu aktualisierenden Datei das alte Register entfernt werden. Hier am Beispiel:
Meine Datei, die ich aktualisieren möchte, ist geöffnet. Das Arbeitsblatt "Druckbehälter" wird gelöscht. Eine Quelldatei wird geöffnet, daraus ein Arbeitsblatt mit der Bezeichnung "Druckbehälter" kopiert, und in meine Zieldatei, hinter das Arbeitsblatt "Tabelle1", eingefügt werden, wobei die Quelldatei wieder geschlossen wird.
Sub Aktualisieren()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("Druckbehälter").Delete
Application.DisplayAlerts = True
Dim QWB As Workbook, ZWB As Workbook
Workbooks.Open "C:\...\Quelldatei.xlsm", ReadOnly:=True, Password:="123", WriteResPassword:= _
"123"
Set QWB = Workbooks("Quelldatei.xlsm")
Set ZWB = ThisWorkbook
Set QWS = QWB.Worksheets("Druckbehälter")
Set ZWS = ZWB.Worksheets("Tabelle1")
QWS.Copy after:=ZWS
Workbooks("Druckbehälter.xlsm").Close savechanges:=False
Application.ScreenUpdating = True
End Sub
Jetzt weiß ich aber nicht, was beachtet werden muss, sprich wo Fehler eintreten könnten. Beispielsweise, wenn die Zieldatei am anderen Rechner geöffnet und bearbeitet wird, oder wenn der Server oder WLAN ausfallen sollten und die Quelldatei unter dem angegebenen Pfad nicht gefunden wird.
Hättet ihr für mich paar Tipps?
Vielen Dank!
Vilen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eventualitäten berücksichtigen
28.10.2015 12:22:02
fcs
Hallo Vilen,
mit Prüfungen/Fehlerbehandlung kann es etw wie folgt aussehen.
Einige Prüfunngen könnte man noch in der Reihenfolge ändern und auch bei der Schahtelung der If-Prüfungen sind noch anders schachtelbar. Das hängt dann davon ab, wie du die jeweiligen Ergebnisse weiterverarbeiten möchtest.
Gruß
Franz
Sub Aktualisieren()
Dim QWB As Workbook, ZWB As Workbook
Dim QWS As Worksheet, ZWS As Worksheet
Dim strQuelle As String
On Error GoTo Fehler
Application.ScreenUpdating = False
Set ZWB = ThisWorkbook
strQuelle = "C:\...\Quelldatei.xlsm"
If Dir(strQuelle)  "" Then
Set QWB = Workbooks.Open(strQuelle, ReadOnly:=True, Password:="123", _
WriteResPassword:="123")
If fncCheckSheet("Tabelle1", ZWB) Then
Set ZWS = ZWB.Worksheets("Tabelle1")
Else
Set ZWS = ZWB.Worksheets(1)
End If
If fncCheckSheet("Druckbehälter", QWB) Then
If fncCheckSheet("Druckbehälter", ZWB) Then
Application.DisplayAlerts = False
ZWB.Sheets("Druckbehälter").Delete
Application.DisplayAlerts = True
End If
Set QWS = QWB.Worksheets("Druckbehälter")
QWS.Copy after:=ZWS
QWB.Close savechanges:=False
Else
MsgBox "Blatt ""Druckbehälter"" in Datei " & vbLf & _
QWB.FullName & vbLf & _
"nicht gefunden", vbOKOnly, "Fehler - Makro: Aktualisieren"
End If
Else
MsgBox "Datei" & vbLf & strQuelle & vbLf & _
"Nicht gefunden/konnte nicht geöffnet werden", _
vbOKOnly, "Fehler - Makro: Aktualisieren"
End If
Fehler:
With Err
Select Case .Number
Case 0 'Alles ist ok
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, _
vbInformation + vbOKOnly, "Fehler - Makro: Aktualisieren"
End Select
End With
Application.ScreenUpdating = True
End Sub
Public Function fncCheckSheet(strSheetName As String, Optional wkb As Workbook) As Boolean
'Prüft, on Blatt in Arbeitsmape vorhanden
' True = vorhanden  -  False = nicht vorhanden
Dim objSheet As Object
On Error GoTo Fehler
Set objSheet = wkb.Sheets(strSheetName)
fncCheckSheet = True
Exit Function
Fehler:
End Function

Anzeige
AW: Eventualitäten berücksichtigen
03.11.2015 09:59:28
Vilen
Vielen lieben Dank, Franz!
Enschuldigen Sie bitte solche eine verzögerte Antwort. Das ist sehr viel mehr, als ich mir erhofft hatte! Ich habe damit gerechnet, dass man mir einfach nur Tipps aufschreibt, worauf ich achten sollte, und Sie haben ein fertiges Programm erstellt! Danke für Ihre Mühe!
Liebe Grüße
Vilen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige