beim Öffnen einer Excel-Datei 'A' sollen Zellen aus einer Excel-Datei 'AbsenderDaten.xls' nach 'A' kopiert werden.
Verzeichnis (LABS) und Dateiname (AbsenderDaten.xls) sind festgelegt.
Falls das Verzeichnis in dem sich 'AbsenderDaten.xls' befinden soll nicht vorhanden ist, soll eine Fehlermeldung kommen. Ist das Verzeichnis da, aber die Datei 'AbsenderDaten.xls' nicht, soll ebenfalls eine Fehlermeldung kommen.
sind Verzeichnis und Datei vorhanden, bekommt der Anwender vom Kopiervorgang nichts mit.
Mit der folgenden Sub klappt das soweit:
Private Sub Workbook_Open()
'* Die Absenderdaten werden in LABS kopiert *
Call AbsenderDatenKopieren
End Sub
Sub AbsenderDatenKopieren()
Dim verzeichnis As Variant
Dim absenderDatei As Variant
Dim labsDatei As Variant
Dim vorhanden As Boolean
Dim strAdr As Variant
strAdr = "D:\LABS\AbsenderDaten.xls"
verzeichnis = "D:\LABS\"
absenderDatei = "AbsenderDaten.xls"
If Dir(verzeichnis) = "" Then
MsgBox "Das Verzeichnis " & verzeichnis & "existiert nicht." _
& Chr(10) & _
"Es werden keine Absenderdaten in LABS übernommen.", vbExclamation
Else
If Dir(strAdr) "" Then
Application.ScreenUpdating = False
labsDatei = ThisWorkbook.Name
Application.EnableEvents = False
Workbooks.Open (verzeichnis & absenderDatei)
Application.EnableEvents = True
With Workbooks(absenderDatei)
Workbooks(labsDatei).Sheets("Tabelle1").Range("A1").Value = _
.Sheets("Tabelle1").Range("B3").Value
Workbooks(labsDatei).Sheets("Tabelle1").Range("A2").Value = _
.Sheets("Tabelle1").Range("B5").Value
Workbooks(labsDatei).Sheets("Tabelle1").Range("A3").Value = _
.Sheets("Tabelle1").Range("B7").Value
Workbooks(labsDatei).Sheets("Tabelle1").Range("A4").Value = _
.Sheets("Tabelle1").Range("B9").Value
Workbooks(labsDatei).Sheets("Tabelle1").Range("A5").Value = _
.Sheets("Tabelle1").Range("B11").Value
Workbooks(labsDatei).Sheets("Tabelle1").Range("A6").Value = _
.Sheets("Tabelle1").Range("B13").Value
.Close savechanges:=False
Application.ScreenUpdating = True
End With
Else
MsgBox "Die Datei " & absenderDatei _
& Chr(10) & _
"im Verzeichnis " & verzeichnis & " existiert nicht. " _
& Chr(10) & _
"Es werden keine Absenderdaten in LABS übernommen.", vbExclamation
End If
End If
End Sub
Nun zum eigentlichen Problem:
Das Verzeichnis 'LABS' kann sich auf verschiedenen Laufwerken befinden, da es sich um unterschiedliche Rechner handelt.
Zur Prüfung, ob sich das Verzeichnis 'LABS' auf einem der Laufwerke befindet, habe ich meinen Code folgendermaßen umgestellt:
verzeichnisY = "Y:\LABS\"
verzeichnisE = "E:\LABS\"
verzeichnisD = "D:\LABS\"
verzeichnisC = "C:\LABS\"
....
If Dir(verzeichnisY) = "" AND _
Dir(verzeichnisE) = "" AND _
Dir(verzeichnisD) = "" AND _
Dir(verzeichnisC) = "" Then
MsgBox "Es existiert keines der erforderlichen Verzeichnisse. " _
Jetzt bekomme ich Laufzeitfehler 52 "Dateiname oder -Nummer falsch".
E:/ ist in diesem Fall mein CD-Laufwerk. Hier wird gemeckert.
Kann mir vielleicht jemand weiterhelfen?
Eine Lösung mit API kommt wohl nicht in Frage, da dieses Programm auch auf Linux-Rechnern laufen muss (die urspüngliche Version läuft dort schon prima).
Ciao
Toni