Anzeige
Archiv - Navigation
1048to1052
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

Datei öffnen/schließen

Datei öffnen/schließen
09.02.2009 18:21:28
Werner
Hallo zusammen,
zu folgenden Makro hab ich zwei Fragen.
Das Makro ist in einer Datei die sich auf LW "E" befindet, da fuktioniert ja auch der Zugriff. Wenn ich die Datei in einen anderen LW benützen möchte, müßte ich jedesmahl das LW im Makro ändern (bei über 170 Makros etwas umschtändlich). Gibt es da eine Möglichkeit?
Die zweite Frage betrifft den Teil des Makros :
ActiveWorkbook.Save
ActiveWindow.Close
Die Datei wird nicht geschlossen!! Woran könnte das liegen?

Private Sub CommandButton2_Click()
Dim vLinks, ii As Integer, strB As String
Workbooks.Open Filename:= _
"E:\Kalkulation-Kostenrechnung-Römerbad\Mitarbeiterablage.xls"
Windows("KalkulationKostenrechnungRömerbad25_08_2008.xls").Activate
Sheets("Tabelle1").Select
Sheets("Tabelle1").Copy after:=Workbooks("Mitarbeiterablage.xls").Sheets(1)
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
' Blatt umbenennen
strB = ActiveSheet.Cells(2, 2)
If SheetTest(strB) Then
MsgBox "Das kopierte Blatt konnte in " & ActiveWorkbook.Name & _
" nicht umbenannt werden." & vbLf & vbLf & "Blatt '" & strB & _
"' war bereits vorhanden.", vbExclamation, "weise hin..."
Else
ActiveSheet.Name = strB
Workbooks("Mitarbeiterablage.xls").Close True                           ' Mitarbeiterablage  _
_
speichern + schließen
ActiveWorkbook.Save
ActiveWindow.Close
End If
Windows("KalkulationKostenrechnungRömerbad25_08_2008.xls").Activate
Sheets("Tabelle1").Select
Sheets("Tabelle1").Range("B4,E2,E3").ClearContents
End Sub


über eine Lösung würde ich mich sehr freuen :-)
Viele Grüße
Werner

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

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen/schließen
09.02.2009 19:09:34
Ramses
Hallo
"...Wenn ich die Datei in einen anderen LW benützen möchte, ..:"
Das lässt sich wohl nicht verhindern, wenn die Datei die du öffnen willst in diesem Pfad liegt.
"...Das Makro ist in einer Datei die sich auf LW "E" befindet, d.."
Was heisst das ?
Wo ist die Datei gespeichert ? Im gleichen Verzeichnis wie die Datei die du öffnen willst ?
Thisworkbook.Path
würde dann die Lösung bringen
Gruss Rainer
AW: Datei öffnen/schließen
09.02.2009 19:33:00
Werner
Hallo Rainer,
beide Dateien befinden sich im LW "E", d.h. die Datei in der das Makro steht und die Datei die geöffnet werden soll. Wenn ich jetzt die Dateien auf einem anderen LW z.B "D" Speicher kann ich zwar jede Datei normal öffnen indem ich sie anklikke. Das Problem liegt im Makro, d.h. wenn ich jetzt (wo sich die Dateien im LW"D" befinden) das Makro auslöse stimmt ja der Bezug nicht mehr und ich müßte das Makro ändern!!
Hier liegt das Problem!!
Gruß Werner
Anzeige
AW: Datei öffnen/schließen
09.02.2009 19:41:03
Ramses
Hallo
Gib doch im Direktfenster einfach mal
Debug.Print Thisworkbook.Path
Schau dir das mal an, vielleicht klingelt es dann.
Dann gibt es noch die Funktion LEFT(), in der VBA Hilfe ebenfalls hervorragend beschrieben
Gruss Rainer
AW: Datei öffnen/schließen
09.02.2009 20:14:00
Oberschlumpf
Hi Werner
Versuch mal das hier (ungetestet, weil ich kein Netzwerk hab)

Private Sub CommandButton2_Click()
Dim vLinks, ii As Integer, strB As String
Dim lstrFile As String,liLW As Integer
On Error GoTo fehler:
For liLW = 67 to 90
If Dir(Chr(liLW) & ":\Kalkulation-Kostenrechnung-Römerbad\Mitarbeiterablage.xls")  ""  _
Then
lstrFile = Chr(liLW) & ":\Kalkulation-Kostenrechnung-Römerbad\Mitarbeiterablage.xls" _
On Error GoTo 0
Exit For
weiter:
End If
Next
If lstrFile = "" Then
MsgBox "Auf keinem der Laufwerke von C: - Z: existiert eine Datei mit dem Namen '' _
Mitarbeiterablage.xls''" & vbCrLf & "oder das Verzeichnis ''\Kalkulation-Kostenrechnung-Römerbad'' ist nicht vorhanden", vbExclamation, "Hinweis"
Exit Sub
End If
Workbooks.Open Filename:=lstrFile
'und ab hier dein weiterer Code
'die folgenden 4 Zeilen müssen aber weiterhin am Ende des Sub's stehen
Exit Sub
fehler:
Resume weiter
End Sub


Die For/Next-Schleife prüft alle Laufwerke (von C bis Z), ob die Datei im angegebenen Verzeichnis vorhanden ist.
Wenn Datei und/oder Verzeichnis nicht vorhanden, erscheint eine entsprechende Meldung.
Wenn vorhanden, wird die Datei geöffnet, und dein weiterer Code, den du noch hinzufügen musst, wird ausgeführt.
Vergiss nicht:
Die hier angezeigten Zeilenumbrüche sind so im Code nicht gewollt, sondern werden durch die Forumssoftware erzeugt.
Hilfts?
Wenn nicht, helf ich gern weiter (ich versuche es), wenn du uns ne Bsp-Datei zur Verfügung stellst.
Ciao
Thorsten

Anzeige
AW: Datei öffnen/schließen
09.02.2009 20:46:00
Werner
Hallo Thorsten,
das klappt so :-) aber der Bereich am Ende ' Mitarbeiterablage Speichern und Schließen klappt leider immer noch nicht, d.h. die Datei wird nicht geschlossen. Hast Du auch hier eine Lösung?
Gruß Werner
AW: Datei öffnen/schließen
09.02.2009 22:05:00
Werner
Hallo Thorsten,
es gibt noch Wunder, ich bin selbst drauf gekommen, hier das Makro :

Private Sub CommandButton2_Click()
Dim vLinks, ii As Integer, strB As String
Dim lstrFile As String, liLW As Integer
On Error GoTo fehler:
For liLW = 67 To 90
If Dir(Chr(liLW) & ":\Kalkulation-Kostenrechnung-Römerbad\Mitarbeiterablage.xls")  ""  _
_
Then
lstrFile = Chr(liLW) & ":\Kalkulation-Kostenrechnung-Römerbad\Mitarbeiterablage.xls" _
On Error GoTo 0
Exit For
weiter:
End If
Next
If lstrFile = "" Then
MsgBox "Auf keinem der Laufwerke von C: - Z: existiert eine Datei mit dem Namen '' _
Mitarbeiterablage.xls ''" & vbCrLf & "oder das Verzeichnis ''\Kalkulation-Kostenrechnung-Römerbad'' ist nicht vorhanden", vbExclamation, "Hinweis"
Exit Sub
End If
Workbooks.Open Filename:=lstrFile
Windows("KalkulationKostenrechnungRömerbad25_08_2008.xls").Activate
Sheets("Tabelle1").Select
Sheets("Tabelle1").Copy after:=Workbooks("Mitarbeiterablage.xls").Sheets(1)
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
' Blatt umbenennen
strB = ActiveSheet.Cells(2, 2)
If SheetTest(strB) Then
MsgBox "Das kopierte Blatt konnte in " & ActiveWorkbook.Name & _
" nicht umbenannt werden." & vbLf & vbLf & "Blatt '" & strB & _
" war bereits vorhanden.", vbExclamation, "weise hin..."
Workbooks("Mitarbeiterablage.xls").Close True      ' Mitarbeiterablage speichern + schließen
Else
ActiveSheet.Name = strB
Workbooks("Mitarbeiterablage.xls").Close True
End If
Windows("KalkulationKostenrechnungRömerbad25_08_2008.xls").Activate
Sheets("Tabelle1").Select
Sheets("Tabelle1").Range("E2,E3,B3,B4,K9:O47,G10:I10,E15:G18").ClearContents
Exit Sub
fehler:
Resume weiter
End Sub


Nochmals Danke und viele Grüße
Werner

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige