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

Tabellenblätter auswählen

Tabellenblätter auswählen
27.01.2005 11:00:24
Martin
In einer Datei möchte ich auf 53 Arbeitsmappen per Makro zugreifen, es soll in jeder Arbeitsmappe das gleiche umgesetzt werden.
Zum Beispiel: Es soll in allen 53 Arbeitsmappen die Spalten 10:29 gruppiert werden, danach soll die Arbeitsmappe mit einem Blattschutz versehen werden.
Ein kleiner Auszug aus dem Makro:
Sheets("KW 53-04").Select ' Mappe wird geöffnet
Rows("10:29").Select ' Spalten werden markiert
Selection.Rows.Group
Selection.EntireRow.Hidden = True ' Spalten werden gruppiert
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect Password:="xxxxxx", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Range("A32").Select
Für eine kurzfristige Hilfe wäre ich sehr dankbar.
Gruß
Martin

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter auswählen
Martin
Hallo Martin,
da geht's ja mit den Begriffen schöön durcheinander. Ich nehme mal an, Du hast in einer Arbeitsmappe (=Exceldatei) 53 Tabellenblätter, für jede KW eines. Wenn keine weiteren Tabellenblätter existieren, mußt Du um Deinen Code nur eine Schleife basteln, in etwa so:
For i = 1 To 53
Worksheets(i).Select ' Mappe wird geöffnet
Rows("10:29").Select ' Spalten werden markiert
Selection.Rows.Group
Selection.EntireRow.Hidden = True ' Spalten werden gruppiert
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect Password:="xxxxxx", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Range("A32").Select
Next i
Gruß
Martin Beck
Anzeige
AW: Tabellenblätter auswählen
27.01.2005 11:24:41
Harald
Hallo Martin,
ohne die Unterschiede in der Benennung der Blätter zu kennen, folgende Schleife
for i = 1 to worksheets.count
sheets(i).Rows("10:29").Select 'etc....
next i
Gruß
Harald
AW: Tabellenblätter auswählen
27.01.2005 14:37:42
Martin
Hallo Harald,
ich scheine noch irgendwo einen Boch zu haben.
Aber bei mir stoopt das Makro in der Zeile: "Sheets(i).Rows("10:29").Select"
Option Explicit

Sub Blattschutz_Woche_setzen()
Application.AskToUpdateLinks = False
Dim i As Integer
Dim MyPath As String
Dim MyWorkbooks As Variant
Dim MyBook As Variant
Dim MyWorkers As Integer
MyPath = "U:\outside\Betriebsstatistik\2005\"
MyWorkbooks = Array("Kopie von Wochenübersicht.xls")
MyBook = MyWorkbooks(MyWorkers)
Workbooks.Open Filename:=MyPath & MyBook
For i = 1 To Worksheets.Count
Sheets(i).Rows("10:29").Select
Selection.Rows.Group
Selection.EntireRow.Hidden = True
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect Password:="xxxxxxxx", DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Range("A32").Select
Next i
Application.AskToUpdateLinks = True
Workbooks(MyBook).Close SaveChanges:=True
End Sub

Ich hoffe das du den Fehler sofort erkennst.
Gruß
Martin
Anzeige
AW: Tabellenblätter auswählen
Martin
Hallo Martin,
Worksheets(i).Activate
Rows("10:29").Select
Gruß
Martin Beck
AW: Tabellenblätter auswählen
27.01.2005 15:50:15
Martin
Hallo Harald,
hast du deine Korrektur getestet oder glaubst du nur das es so funktionieren kann.
Ich habe den Code wie folgt geändert und bekomme immer noch eine Fehlermeldung.
Das Makro bleibt in folgender Zeile stehen, mit einem gelben Pfeil am Zeilenanfang:
"For i = 1 To Worksheets.Count"
Option Explicit

Sub Blattschutz_Woche_setzen()
Application.AskToUpdateLinks = False
Dim i As Integer
Dim MyPath As String
Dim MyWorkbooks As Variant
Dim MyBook As Variant
Dim MyWorkers As Integer
MyPath = "U:\outside\Betriebsstatistik\2005\"
MyWorkbooks = Array("Kopie von Wochenübersicht.xls")
MyBook = MyWorkbooks(MyWorkers)
Workbooks.Open Filename:=MyPath & MyBook
For i = 1 To Worksheets.Count
Worksheets(i).Activate
Rows("10:29").Select
Selection.Rows.Group
Selection.EntireRow.Hidden = True
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect Password:="powepibe", DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Range("A32").Select
Next i
Application.AskToUpdateLinks = True
Workbooks(MyBook).Close SaveChanges:=True
End Sub

Gruß
Martin
Anzeige
AW: Tabellenblätter auswählen
Martin
Hallo Martin,
getestet, aber ohne Deinen Code vorher und nachher. Wie lautet denn die Fehlermeldung?
Gruß
Martin Beck
AW: Tabellenblätter auswählen
28.01.2005 12:38:17
Martin
Hallo Martin,
vielen Dank für deine Mühe.
Das Problem wurde abschließend durch einen Befehl vom Harald behoben.
Bis demnächst
Gruß
Martin
AW: Tabellenblätter auswählen
27.01.2005 16:33:29
Martin
Hallo Haral,
wie ich schon schrieb.
Diese Zeile ist gelb markiert "For i = 1 To Worksheets.Count" und hat vorne am Zeilenanfang einen kleinen gelben Pfeil. Somit steht das Makro und läuft nicht weiter.
Fehlermeldung: Ausführen des Codes wurde unterbrochen
Wenn ich dann mehrfach auf fortfahren klicke endet jedoch das Makro mit dem gewünschtem Ergebnis.
Warum?
Gruß
Martin
Anzeige
AW: Tabellenblätter auswählen
28.01.2005 07:57:54
Harald
Hallo Martin,
die Schleife hab ich vorher getestet (ohne den Rest von deinem Code).
Wie gesagt, ohne die Namen der Sheets zu kennen, kann man nur im Dunkeln stochern.
Und ich vermute Du hast irgendwann mal ein Blatt gelöscht...und das war sheet 1. Daher meckert er, wenn er bei 1 starten soll und keine 1 da ist.
Schau im Editor unter Eigenschaften (Name), ob Tabelle1 existiert.
Ich empfehle nicht!!!!, über die Bennenung der Sheets gehen
worksheets("KW " & i & "-04")
Gibt Probleme bei unterschiedlichen Leerzellen und bei KW 01 bzw KW 1...je nach Schreibart.
Gruß
Harald
Anzeige
AW: Tabellenblätter auswählen
28.01.2005 08:53:53
Martin
Hallo Harald,
leider scheint es wohl doch "the never ending Story" zu sein. Was du mir schreibst verstehe ich leider nicht, da meine VBA Kenntnisse nicht ausreichend sind.
Wie die Arbeitsmappen heissen hatte ich in einer der vorigen Anfragen schon bekannt gegeben führe es aber unten noch einmal auf.
Nun starte ich meinen letzten Versuch mich auszudrücken, sollte das wieder zu flach sein werde ich das Makro einstellen.
Option Explicit

Sub Blattschutz_Woche_setzen()
Application.AskToUpdateLinks = False
Dim i As Integer
Dim MyPath As String
Dim MyWorkbooks As Variant
Dim MyBook As Variant
Dim MyWorkers As Integer
MyPath = "U:\outside\Betriebsstatistik\2005\"
MyWorkbooks = Array("Kopie von Wochenübersicht.xls")
MyBook = MyWorkbooks(MyWorkers)
Workbooks.Open Filename:=MyPath & MyBook
For i = 1 To Worksheets.Count
Worksheets(i).Activate
Rows("10:29").Select
Selection.Rows.Group
Selection.EntireRow.Hidden = True
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect Password:="xxxxxxxx", DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Range("A32").Select
Next i
Application.AskToUpdateLinks = True
Workbooks(MyBook).Close SaveChanges:=True
End Sub

Die Arbeitsmappen heissen: KW 53-04, KW 1, KW 2, .... KW 52.
Gruß
Martin
Anzeige
AW: Tabellenblätter auswählen
28.01.2005 09:36:23
Harald
Moin,
Bange machen gilt nicht ;-))
Also die Blätter haben 2 Namen. Siehe im linken oberen Code Fenster unterhalb "DieseArbeitsmappe"
Jungfräulich sieht das so aus
Tabelle1 (Tabelle1)
etc.
Bei dir stehts dann etwa so Tabelle1(KW 53-04). Falls Du irgendwann mal ein Blatt gelöscht hast, könnte es Tabelle1(irgendwas) gewesen sein und das erste Blatt der Datei wäre dann Tabelle2(irgendwas). Somit findet i = 1 kein Tabellenblatt.
Die Suche per worksheets(i) sucht nach dem was vor der Klammer steht
Die Suche per worksheets("KW " & i & "-04") sucht nach dem Namen in den Klammern.
Mit den bereits genannten Nachteilen (Leerzellen,Schreibart)
Probier auch mal folgendes:
on error resume next
direkt vor die Schleife setzen.
Damit ist mein Pulver dann aber auch verschossen.
Gruß
Harald
Anzeige
AW: Tabellenblätter auswählen
28.01.2005 12:35:51
Martin
Hallo Harald,
vielen Dank für deine Hilfe Ausdauer.
Jetzt hat es geklappt.
Ich habe die Zeile: "on error resume next" eingefügt und das Problem war behoben.
Bis bald
Gruß
MArtin
Freut mich :-) o.T.
28.01.2005 13:35:30
Harald

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige