Supportnet / Forum / Tabellenkalkulation
Einstieg erste Arbeitsblatt, noch 2 Fragen
Frage
Hallo zusammen,
leider ist meine Odyssee noch nicht vorbei. Mit Eurer Hilfe habe ich nun folgende Formel erstellt, die jedoch noch nicht ganz ausgereift sind. Vielleicht könnt Ihr mir die fehlenden Bausteine liefern.
Formel 1:
Private Sub Workbook_Open()
Workbooks.Open FileName:="K:\Berichte\GE H\HW\Gesamt HW\HW.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\Gesamt HW-S\HW-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWZ.xls"
Windows("GE H.xls").Activate
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
Kurzbeschreibung:
eine Datei (GE H.xls) wird geöffnet und öffnet automatisch 3 weitere Dateien (s.o.). Bei der ersten Datei wird auf jedem Arbeitsblatt der Curser auf die Zelle D8 gesetzt und das erste Arbeitsblatt primär angezeigt.
Frage1:
Wie muss die Formel aussehen wenn ich die Funktion mit dem Curser auf D8 und Anzeige des ersten Arbeitsblattes ebenfalls bei den 3 weiteren Dateien haben möchte.
Frage 2:
Wie muss die Formel aussehen wenn ich die Funktion mit dem Curser auf D8 jedoch die Anzeige eines anderen Arbeitsblattes bei den 3 weiteren Dateien haben möchte.
Vielen Dank schon mal
Susi
Antwort 1 von Rick
Hallo Suse
Probiers doch mal mit:
Private Sub Workbook_Open()
Workbooks.Open FileName:="K:\Berichte\GE H\HW\Gesamt HW\HW.xls"
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\Gesamt HW-S\HW-S.xls"
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWZ.xls"
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Windows("GE H.xls").Activate
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
sollte klappen, hab's aber selber nicht ausprobiert
cu Rick
Probiers doch mal mit:
Private Sub Workbook_Open()
Workbooks.Open FileName:="K:\Berichte\GE H\HW\Gesamt HW\HW.xls"
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\Gesamt HW-S\HW-S.xls"
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWZ.xls"
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Windows("GE H.xls").Activate
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
sollte klappen, hab's aber selber nicht ausprobiert
cu Rick
Antwort 2 von Guenter
Hallo Rick,
ich denke es sollte so funktionieren.
zu Frage 2: Für d8 sollte dann eine entsprechende Zelle angewählt werden.
Wenn es immer d8 sein soll, kann das Makro auch noch verkürzt werden:
Gruß
Günter
ich denke es sollte so funktionieren.
zu Frage 2: Für d8 sollte dann eine entsprechende Zelle angewählt werden.
Wenn es immer d8 sein soll, kann das Makro auch noch verkürzt werden:
Private Sub Workbook_Open()
Workbooks.Open Filename:="c:\Eigene Dateien\Excel\Mappe2.xls"
Workbooks.Open Filename:="c:\Eigene Dateien\Excel\Mappe3.xls"
Dim n%, m%
For n = Workbooks.Count to 1 Step -1
For m = Worksheets.Count To 1 Step -1
Worksheets(m).Activate
ActiveSheet.Range("D8").Select
Next
Next
End Sub
Gruß
Günter
Antwort 3 von susemaus
Hallo,
Rick in Deiner Formel bleibt das System bei Dim n% stehen. Es hat wahrscheinlich ein Problem damit.
Günthers Formel übersteigt mein Horizont. Wenn ich sie 1:1 übernehme, natürlich mit den richtigen Pfadangaben, dann arbeitet Sie ohne Fehlermeldungen jedoch wird die Curserstellung auf D8 nur in der primären Datei (in dem Fall die GE H.xls)berücksichtigt.
Gruß
Susi
Rick in Deiner Formel bleibt das System bei Dim n% stehen. Es hat wahrscheinlich ein Problem damit.
Günthers Formel übersteigt mein Horizont. Wenn ich sie 1:1 übernehme, natürlich mit den richtigen Pfadangaben, dann arbeitet Sie ohne Fehlermeldungen jedoch wird die Curserstellung auf D8 nur in der primären Datei (in dem Fall die GE H.xls)berücksichtigt.
Gruß
Susi
Antwort 4 von Guenter
Hallo,
ich hatte nicht richtig getestet. Aber jetzt sollte es gehen:
Falls es noch Fehlermeldungen gibt, bitte nochmals melden.
Gruß
Günter
ich hatte nicht richtig getestet. Aber jetzt sollte es gehen:
Private Sub Workbook_Open()
Workbooks.Open Filename:="c:\Eigene Dateien\Excel\Mappe2.xls"
Workbooks.Open Filename:="c:\Eigene Dateien\Excel\Mappe3.xls"
Dim n%, m%
For n = Workbooks.Count To 1 Step -1
Workbooks(n).Activate
For m = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(m).Activate
Range("D8").Select
Next
Next
End Sub
Falls es noch Fehlermeldungen gibt, bitte nochmals melden.
Gruß
Günter
Antwort 5 von Rick
So Suse
bei Günthers Formel musst du natürlich noch den Pfad und den Dateinamen anpassen, dann meine ich geht es bestimmt....
Ich hätte noch eine andere Idee:
1. Bei der ersten Datei, die du öffnest
(ich glaube das ist GE H.xls) lässt du die bestehende Formel drin.
2. Bei den drei anderen Dateien fügst du folgende Formel ein:
Private Sub Workbook_Open()
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Windows("GE H.xls").Activate
End Sub
Natürlich ist Günthers Vorschlag wesentlich eleganter, vorausgesetzt du schaffst es die Formel für deinen Gebrauch anzupassen
Guten Appetit
Rick
bei Günthers Formel musst du natürlich noch den Pfad und den Dateinamen anpassen, dann meine ich geht es bestimmt....
Ich hätte noch eine andere Idee:
1. Bei der ersten Datei, die du öffnest
(ich glaube das ist GE H.xls) lässt du die bestehende Formel drin.
2. Bei den drei anderen Dateien fügst du folgende Formel ein:
Private Sub Workbook_Open()
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
ActiveSheet.Range("d8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Windows("GE H.xls").Activate
End Sub
Natürlich ist Günthers Vorschlag wesentlich eleganter, vorausgesetzt du schaffst es die Formel für deinen Gebrauch anzupassen
Guten Appetit
Rick
Antwort 6 von Rick
Suse
jetzt habe ich grad noch deine ursprüngliche Frage (Punkt 2)gelesen:
Du musst bei jeder Datei die zweitunterste Anweisung anpassen:
ActiveWorkbook.Worksheets(1).Activate
'(1) ersetzen durch z.B. (2)= zweites Blatt von links oder (3) drittes von links etc.
Hoffe ist nicht zu kompliziert
Rick
jetzt habe ich grad noch deine ursprüngliche Frage (Punkt 2)gelesen:
Du musst bei jeder Datei die zweitunterste Anweisung anpassen:
ActiveWorkbook.Worksheets(1).Activate
'(1) ersetzen durch z.B. (2)= zweites Blatt von links oder (3) drittes von links etc.
Hoffe ist nicht zu kompliziert
Rick
Antwort 7 von susemaus
Hallo,
ich habe alles umgesetzt was Ihr mir vorgeschlagen hattet und es funktioniert.
Nur ich wäre nicht die susemaus wenn ich nicht noch Fragen hätte
1.Frage
eine Funktion verstehe ich nicht, obwohl jeder Button (18 und 19) unterschiedliche Berichte aufruft, passiert es, dass wenn der erste Button seine Funktion ausgeübt hat der 2 Button nach Ausübung seiner Fuktion die Funktionen des ersten Buttons wiederholt.
Private Sub CommandButton18_Click()
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWA\HWA.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWF\HWF.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWK-P\HWK-P.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWL\HWL.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWM\HWM.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWP\HWP.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWS\HWS.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HU\HU.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWX\HWX.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWZR\HWZR.xls"
Dim n%, m%
For n = Workbooks.Count To 1 Step -1
Workbooks(n).Activate
For m = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(m).Activate
ActiveSheet.Range("D8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
Private Sub CommandButton19_Click()
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWK-S\HWK-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWM-S\HWM-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWS-S\HWS-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWP-S\HWP-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWZ-S\HWZ-S.xls"
Dim n%, m%
For n = Workbooks.Count To 1 Step -1
Workbooks(n).Activate
For m = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(m).Activate
ActiveSheet.Range("D8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
2. Frage
kann ich die aufgerufenen Berichte über eine ähnliche Fuktion wieder schließen
Danke
Susi
ich habe alles umgesetzt was Ihr mir vorgeschlagen hattet und es funktioniert.
Nur ich wäre nicht die susemaus wenn ich nicht noch Fragen hätte
1.Frage
eine Funktion verstehe ich nicht, obwohl jeder Button (18 und 19) unterschiedliche Berichte aufruft, passiert es, dass wenn der erste Button seine Funktion ausgeübt hat der 2 Button nach Ausübung seiner Fuktion die Funktionen des ersten Buttons wiederholt.
Private Sub CommandButton18_Click()
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWA\HWA.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWF\HWF.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWK-P\HWK-P.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWL\HWL.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWM\HWM.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWP\HWP.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWS\HWS.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HU\HU.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWX\HWX.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW\HWZ\HWZR\HWZR.xls"
Dim n%, m%
For n = Workbooks.Count To 1 Step -1
Workbooks(n).Activate
For m = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(m).Activate
ActiveSheet.Range("D8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
Private Sub CommandButton19_Click()
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWK-S\HWK-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWM-S\HWM-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWS-S\HWS-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWP-S\HWP-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWZ-S\HWZ-S.xls"
Dim n%, m%
For n = Workbooks.Count To 1 Step -1
Workbooks(n).Activate
For m = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(m).Activate
ActiveSheet.Range("D8").Select
Next
ActiveWorkbook.Worksheets(1).Activate
Next
ActiveWorkbook.Worksheets(1).Activate
End Sub
2. Frage
kann ich die aufgerufenen Berichte über eine ähnliche Fuktion wieder schließen
Danke
Susi
Antwort 8 von Guenter
Hi,
wenn alle Arbeitsmappen noch offen sind, wird mit Button 19 alles noch mal gemacht.
Wenn button 19 nur die dort geladenen Mappen bearbeiten soll, müssen die anderen geschlossen werden oder ein Makro ähnlich Rick's Antwort 1 geschrieben werden.
Zum Schließen von Arbeitsmappen:
@Excel Hilfe
Gruß
Günter
wenn alle Arbeitsmappen noch offen sind, wird mit Button 19 alles noch mal gemacht.
Wenn button 19 nur die dort geladenen Mappen bearbeiten soll, müssen die anderen geschlossen werden oder ein Makro ähnlich Rick's Antwort 1 geschrieben werden.
Zum Schließen von Arbeitsmappen:
Zitat:
In diesem Beispiel wird BOOK1.XLS geschlossen. Alle Änderungen werden verworfen.
Workbooks("BOOK1.XLS").Close SaveChanges:=False
In diesem Beispiel werden alle geöffneten Arbeitsmappen geschlossen. Wurden an einer Arbeitsmappe Änderungen vorgenommen, fordert Microsoft Excel den/die Benutzer/in durch Anzeigen der entsprechenden Eingabeaufforderungen und Dialogfelder zum Speichern der Änderungen auf.
Workbooks.Close
In diesem Beispiel wird BOOK1.XLS geschlossen. Alle Änderungen werden verworfen.
Workbooks("BOOK1.XLS").Close SaveChanges:=False
In diesem Beispiel werden alle geöffneten Arbeitsmappen geschlossen. Wurden an einer Arbeitsmappe Änderungen vorgenommen, fordert Microsoft Excel den/die Benutzer/in durch Anzeigen der entsprechenden Eingabeaufforderungen und Dialogfelder zum Speichern der Änderungen auf.
Workbooks.Close
@Excel Hilfe
Gruß
Günter
Antwort 9 von susemaus
Hallo Günter,
kannst Du mir bitte anhand der unten aufgeführten Dateien so ein Makro zeigen, da ich nich immer alle Dateien schließen will sondern nur einige
Private Sub CommandButton19_Click()
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWK-S\HWK-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWM-S\HWM-S.xls"
Windows("HW-S.xls").Activate
End Sub
Gruß
Susi
kannst Du mir bitte anhand der unten aufgeführten Dateien so ein Makro zeigen, da ich nich immer alle Dateien schließen will sondern nur einige
Private Sub CommandButton19_Click()
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWK-S\HWK-S.xls"
Workbooks.Open FileName:="K:\Berichte\GE H\HW-S\HWM-S\HWM-S.xls"
Windows("HW-S.xls").Activate
End Sub
Gruß
Susi
Antwort 10 von Guenter
Hi,
folgendes Makro würde diese zwei Dateien schließen (ohne zu speichern!).
Voraussetzung: die Dateien müssen auf der Festplatte vorhanden sein, also nicht neu:
Falls gespeichert werden soll:
War das so gemeint??
Gruß
Günter
folgendes Makro würde diese zwei Dateien schließen (ohne zu speichern!).
Voraussetzung: die Dateien müssen auf der Festplatte vorhanden sein, also nicht neu:
Private Sub CommandButton19_Click()
Workbooks("HWK-S.xls").Close SaveChanges:=False
Workbooks("HWM-S.xls").Close SaveChanges:=False
Windows("HW-S.xls").Activate
End Sub
Falls gespeichert werden soll:
Workbooks("HWK-S.xls").Close SaveChanges:=True
War das so gemeint??
Gruß
Günter
Antwort 11 von susemaus
perfekt
vielen, vielen Dank an Euch alle
Susi
vielen, vielen Dank an Euch alle
Susi
Antwort 12 von susemaus
hallo, da bin ich doch wieder
leider habe ich etwas wesentliches vergessen. Kann man bei der Funktion
Workbooks("HWK-S.xls").Close SaveChanges:=True
auch eine Abfrage einbauen ob man auch speichern möchte (ja/nein)
Danke
Susi
leider habe ich etwas wesentliches vergessen. Kann man bei der Funktion
Workbooks("HWK-S.xls").Close SaveChanges:=True
auch eine Abfrage einbauen ob man auch speichern möchte (ja/nein)
Danke
Susi

