Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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

Anzahl Tabellenblätter?

Anzahl Tabellenblätter?
Bernd
Hallo Excelgemeinde,
ich habe mal eine Frage. Aus dem Archiv (siehe https://www.herber.de/forum/archiv/816to820/t818511.htm) habe ich das Makro von Erich G. Das Makro legt für jeden Eintrag in einem definierten Bereich eines separaten Tabellenblattes (bei mir heißt es NAVIGATION) ein Tabellenblatt an. Für das anlegen der einzelnen Tabellenblätter dient ein bereits vorhandenes Tabellenblatt (bei mir heißt es THERAPIEKALENDER). Zusätzlich werden die Tabellenblätter entsprechend umbenannt (bei mir ist das immer ein Datum). Das nur zum Verständnis, denn im Prinzip funktioniert das. Jetzt habe ich nur ein Problem:
Wenn ich das Makro über ein CommandButton anstoße, dann sieht es am Anfang sehr gut aus und dann kommt auf einmal folgende Fehlermeldung: Laufzeitfehler '1004': Die Copy-Methode des Worksheet-Objekts konnte nicht ausgeführt werden.
Hat das was mit der Anzahl der Tabellenblätter zu tun? In meinem Beispiel sollte das Makro 261 x die Vorlage duplizieren und entsprechend umbennen (01.01.2012 bis 31.12.2012 ohne Samstage und ohne Sonntage). Manchmal kommt der Fehler beim 28.08.2012, manchmal beim 06.09.2012 oder 07.09.2012.
Ich bin ratlos! Wer hat hierzu eine Information für mich?
Hier noch der Code (abgeleitet vom geposteten Code von Erich G.):
Private Sub CommandButton1_Click() Dim lngZ As Long, intB As Integer With Worksheets("Navigation") For lngZ = 6 To 135 If Not IsEmpty(.Cells(lngZ, 1)) Then For intB = 1 To Worksheets.Count If Worksheets(intB).Name = .Cells(lngZ, 1) & "" Then MsgBox "Blatt '" & .Cells(lngZ, 1) & "' existiert schon.", vbInformation Exit For End If Next intB If intB > Worksheets.Count Then Worksheets("Therapiekalender").Copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = .Cells(lngZ, 1) End If End If Next lngZ End With End Sub Vielen Dank im Voraus an alle, die etwas darüber wissen oder eine Vermutung haben.
Gruß Bernd
AW: xlam.ch
30.03.2011 19:46:55
Bernd
Hallo Matthias,
vielen Dank für die Rückmeldung. Den Link hatte ich mir auch schon angeschaut und es mal über einen unserer Terminalserver probiert, leider mit dem selben Ergebnis. Jetzt habe ich es über einen weiteren Terminalserver, auf dem schon Excel 2010 installiert ist, probiert und da funktioniert es einwandfrei.
Lass die Frage mal offen, weil die Datei von einem anderen Haus genutzt werden soll und die haben meines Wissens noch kein Excel 2010.
Nochmals vielen Dank für den Hinweis.
Gruß Bernd
Anzeige
das läuft auch mit XL2000
30.03.2011 19:54:44
Matthias
Hallo Bernd
Ich habe das mit XL2000 erstellt und getestet.
Ohne Probleme wurde ein komplettes Jahr erstellt
Wie gewünscht lass ich "offen"
Gruß Matthias
AW: das läuft auch mit XL2000
30.03.2011 20:01:17
Bernd
Hallo Matthias,
dann verstehe ich meine Kiste hier nicht:
Speicherkapazität (Freier Speicher): 94 GB, Pentium(R) Dual-Core CPU E 5200, 2,49 GHz, 3,48 GB RAM
Ist jetzt keine Rakete, aber sollte doch ausreichen, oder? Also, die Datei hat eine Größe von 3.190 KB wenn alle Register angelegt sind.
Gruß Bernd
mein Nachbau ist da sicher schlanker ...
30.03.2011 20:27:19
Matthias
Hallo Bernd
41 kb als jungfräuliche Datei.
1,2 MB wenn alle Tagesblätter eines Jahres angelegt sind.
... hab ja aber auch keine anderen Objekte drin.
Evtl. könnte man ja Calculate während des Kopierprozesses auf xlmanuell stellen
und am Ende wiede auf xlautomatic.
Übrigens, Dein Speicher ist wesentlich besser bestückt als in meiner alten Kiste :o)
Du kannst ja eine Kopie mit den 2 relevanten Startblättern mal hochladen
Ich würde es dann mal checken wann Excel bei mir aussteigt
Sensible Daten aber bitte vorher entfernen.
Viel mehr kann ich nicht tun für Dich
Gruß Matthias
Anzeige
In XL2000 laufen auch bspw 11MB große...
30.03.2011 23:04:50
Luc:-?
…Dateien mit UFs u.jeder Menge Shapes u.Formatierungen, Leute!
Gruß Luc :-?
AW: Anzahl Tabellenblätter?
31.03.2011 08:38:22
Bernd
Hallo Matthias, hallo Luc,
habe es damit versucht die automatische Berechnung vorher zu deaktivieren und nach dem Anlagen der Tabellenblätter wieder zu aktivieren, aber am 07.09.2012 war wieder Schluss.
Habe Euch mal die Datei hochgeladen:
https://www.herber.de/bbs/user/74223.xls
Bei meinen Tests hatte ich die Formeln im Register NAVIGATION für die Erstellung der Hyperlinks noch nicht erstellt.
Vielleicht hat ja noch jemand eine Idee.
Vielen Dank für Eure bisherigen und zukünftigen Bemühungen.
Gruß Bernd
Anzeige
AW: Anzahl Tabellenblätter?
31.03.2011 10:28:54
Bernd
Hallo Matthias, hallo Luc, hallo alle anderen hier im Forum,
noch eine Zusatzinfo:
Tests auf dem Rechner des EDV-Admin führte zur selben Fehlermeldung.
Habe unter Office XP Excel 2003 SP 3. Vielleicht liegt es ja am Servicepack 3?
Gruß Bernd
bin auch schon am Testen ...
31.03.2011 10:58:13
Matthias
Hallo
Bisher gleiches Resultat.
Hab das jetzt zu Testzwecken als "abgespeckte Version "mal so geschrieben:
Option Explicit
Sub Bernd()
On Error Resume Next
Dim lngZ As Long, intB As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Worksheets("Navigation")
For lngZ = 6 To 266
Sheets("Therapiekalender").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = .Cells(lngZ, 1).Value
Next
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Bis 06.12.2012 wird korrekt bearbeitet
aber ab 07.12.2012 wird dann
durch den Zusatz: On Error Resume Next
der Fehler übergangen und weiter abgearbeitet.
beim 31.12.2012 klappts wieder.
Hier mal das Bsp:
https://www.herber.de/bbs/user/74225.xls
On Error Resume Next habe ich nur drin
damit es durchläuft und um zu sehen welche Blätter am Schluß fehlen!
Ich habe allerdings den Auslöser nocht nicht entdecken können.
Ich lasse deshalb auch den Beitrag "offen".
Gruß Matthias
Anzeige
AW: bin auch schon am Testen ...
31.03.2011 11:33:42
Bernd
Hallo Matthias,
bei mir auf meinem Rechner mit Deiner Beispieldatei geht es nur bis zum 06.09.2012 plus Tabellenblatt für den 31.12.2012. Warum bei mir nun der Zeitraum 07.09.2012 bis 06.12.2012, nicht so wie bei Dir klappt, weiß ich auch nicht.
Ist schon ein komisches Problem. Zu viele Hyperlinks? Wären in der kompletten Datei 2 x 261 Stück, also 522 insgesamt.
Gruß Bernd
das klappt bei mir auch nicht !
31.03.2011 12:19:18
Matthias
Hallo Bernd
Da hast Du es falsch verstanden.
Ich hatte doch geschrieben: Bis 06.12.2012 wird korrekt bearbeitet
Der Rest klappt auch bei mir nicht. Ich habe aber auch noch keine Lösung gefunden.
Gruß Matthias
Anzeige
AW: das klappt bei mir auch nicht !
31.03.2011 13:23:02
Bernd
Hallo Matthias,
ja, dann habe ich es doch richtig verstanden. Bei Dir legt er die Tabellenblätter bis einschließlich 06.12.2012 an plus das Tabellenblatt für den 31.12.2012. Bei mir auf dem Rechner mit Deiner Beispieldatei aber nur bis einschließlich 06.09.2012 plus das Tabellenblatt für den 31.12.2012.
Oder habe ich doch irgendwo was überlesehn oder falsch verstanden?
Gruß Bernd
sorry bis 06.09 ! auch bei mir ! kwT
31.03.2011 13:33:58
Matthias
bei mir auch
31.03.2011 13:48:19
Rudi
Hallo,
und der 31.12. ist in Wahrheit der 7.9. Es wird nur ActiveSheet bis zum Ende der Schleife immer wieder umbenannt.
Gruß
Rudi
AW: bei mir auch
31.03.2011 14:05:15
Bernd
Hallo Rudi,
... schade, aber trotzdem Danke!
Frage (leider) noch offen.
Gruß Bernd
Anzeige
neuer Test
31.03.2011 14:32:05
Matthias
Hallo Bernd
Hab jetzt mal ohne die ganzen If-Then-Abfragen im Code die Schleife so laufen lassen
Sub MyNewMacro()
Dim x As Long
For x = 6 To 266
Sheets("Therapiekalender").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Datum_" & Tabelle2.Cells(x, 1)
Next
End Sub
in XL2007
Da werden alle Blätter angelegt, ohne Fehler.
in XL2000
Fehler (bei x=50 und Sheets.count=47) das wäre der 01.03 (bei 2012)
Im Übrigen kommt auch von da der Unterschied, das es mal mehr mal weniger Blätter sind
Je nachdem an welchem Wochentag Deine Schleife gerade beginnt. Also vom Jahr abhängig
Gruß Matthias
Anzeige
Deine MatrixFormel verursacht das ...
31.03.2011 15:28:34
Matthias
Hallo Bernd
Entfernst Du die Formel in G2 ...
{=WENN(ISTFEHLER(INDEX(Parameter!$B$6:$B$25;VERGLEICH(Therapiekalender!$G$4;Parameter!$D$6:$D$25;0)));"";INDEX(Parameter!$B$6:$B$25;VERGLEICH(Therapiekalender!$G$4;Parameter!$D$6:$D$25;0)))}
... dann läuft der Code auch durch bis zum 31.12
Gruß Matthias
AW: Deine MatrixFormel verursacht das ...
31.03.2011 15:52:45
Bernd
Hallo Matthias,
Du hast recht!!! Aber warum hast Du recht? Komisch ist das schon, aber trotzdem DANKE!
Habe die INDEX-Funktion nun durch eine SVERWEIS-Funktion abgelöst. Läuft noch ... ist beim 01.11.2012 ... läuft immer noch ... ist beim 12.12.2012 ... und ... schade ... 19.12.2012 noch erfolgreich angelegt und wieder die Fehlermeldung ... aber schon besser als vorher.
Werde jetzt noch einen letzten Versuch starten (weiß aber noch nicht was) und dann werde ich es wohl so hinnehmen müssen :-(
Gruß Bernd
Anzeige
ich hab ne Ausweichvariante gebastelt ...
31.03.2011 16:47:03
Matthias
Hallo Bernd
... und das Beste: die läuft komplett durch.
Wenn Du willst lad ich sie hoch. Es kann ja sein, Du willst selbst weitertüffteln.
Deshalb frage ich.
Gruß Matthias
AW: ich hab ne Ausweichvariante gebastelt ...
31.03.2011 17:00:10
Bernd
Hallo Matthias,
nein, nein ... immer her damit. Mit meinen verschiedenen Varianten andere Formeln für die INDEX-Funktion einzusetzen, bin ich bislang über den 20.12.2012 nicht hinaus gekommen.
BITTE hochladen!
Tausend Dank für Deinen unermüdlichen Einsatz. Ich vermute mal, Du hast ein komplett neues Makro geschrieben, oder?
Gruß Bernd
hier die Ausweichvariante
31.03.2011 17:25:35
Matthias
Hallo Bernd
Nur als Ausweichmöglichkeit gedacht !
https://www.herber.de/bbs/user/74235.xls
Gruß Matthias
Anzeige
Du musst Parameter!A1 neu verlinken !
31.03.2011 18:03:01
Matthias
Hallo Bernd
Habe gerade bemerkt, das ich zum Testen die Jahreszahl noch direkt drin hatte.
Hatte ein wenig probiert um die Feiertag in(Navigation) farbig hervorzuheben
und habe vergessen es zurückzustellen, sorry!
Bitte wieder verlinken: =Navigation!B1, sonst klappt die Umstellung nicht mehr.
Gruß Matthias
AW: Du musst Parameter!A1 neu verlinken !
01.04.2011 08:38:13
Bernd
Hallo Matthias,
erstmal vielen Dank! Habe es zwar noch nicht getestet, werde es aber gleich tun. Ich habe noch eine Frage zur der Formel im Tabellenblatt NAVIGATION in Spalte B. Ist diese für irgendetwas relevant? Die funktioniert so nicht, weil die Bedingung fehlt [Wenn(Zählenwenn( ... ) = 1; ... ; ...)].
Gruß Bernd
P. S. Wie kann man eigentlich einzelne Textstellen in Fettdruck darstellen. Hab es mit am Anfang und am Ende der Textstelle versucht aber ohne Erfolg. Wird immer ab dem ersten alles in Fettdruck dargestellt.
AW: Du musst Parameter!A1 neu verlinken !
01.04.2011 08:52:10
Bernd
Hallo Matthias,
meinen letzten Beitrag bitte vergessen. Formel in Spalte B, Tabellenblatt NAVIGATION funktioniert natürlich doch. Bin sehr zufrieden mit Deiner Variante und bedanke mich nochmals dafür. Jetzt bleiben nur noch zwei Fragen:
1. Darstellung einzelner Textstellen in einem Beitrag in Fettdruck und
2. Die Formel in Spalte B, Tab. NAVIGATION hat doch nur etwas mit dem hervorheben der Feieratge zu tun, oder?
Vielen Dank nochmal! (ich kann es gar nicht oft genug erwähnen)
Gruß Bernd
Ja, das hat mit den Feiertagen zu tun ...
01.04.2011 10:41:57
Matthias
Hallo Bernd
1. Darstellung Fett
also Text markieren und dann auf den Button drücken.
Der steht unter dem Textfeld "Betreff" - rechts daneben ist kursiv dann Liste dann Zitat und Vorschau
2.
Das hat tatsächlich was mit den Feiertagen zu tun. In der bedingten Formatierung in SpalteA beziehe ich mich auf diese Spalte.
Man sieht nur das "x" nicht, da die Zellen benutzerdef. mit: ;;; formatiert sind.
Das geht natürlich auch anders, aber für mich war das im Moment der bequemste Weg ;o)
Navigation

 AB
71Donnerstag, 02. April 2015 
72Freitag, 03. April 2015x
73Montag, 06. April 2015x
74Dienstag, 07. April 2015 

Formeln der Tabelle
ZelleFormel
A71=WENN(Parameter!$L71="";"";Parameter!$L71)
B71=WENN(ZÄHLENWENN(Parameter!$D$6:$D$25;A71);"x";"")
A72=WENN(Parameter!$L72="";"";Parameter!$L72)
B72=WENN(ZÄHLENWENN(Parameter!$D$6:$D$25;A72);"x";"")
A73=WENN(Parameter!$L73="";"";Parameter!$L73)
B73=WENN(ZÄHLENWENN(Parameter!$D$6:$D$25;A73);"x";"")
A74=WENN(Parameter!$L74="";"";Parameter!$L74)
B74=WENN(ZÄHLENWENN(Parameter!$D$6:$D$25;A74);"x";"")

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A711. / Formel ist =$B71="x"Abc
A721. / Formel ist =$B72="x"Abc
A731. / Formel ist =$B73="x"Abc
A741. / Formel ist =$B74="x"Abc


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Das kannst Du ja aber auch wieder rausnehmen.
Ich dacht nur es ist schneller ersichtlich, wenn vor der Blattverlinkung erkennbar ist ob der Tag ein
Feiertag ist.
Natürlich musst Du nun noch Deine Fehlerroutinen wieder mit einpflegen.
Anmerkung [ die sei noch erlaubt ;o) ]
Wenn ein Blatt bereits vorhanden ist, jedesmal eine MsgBox(wie in Deiner OrginalDatei) zu zeigen,
finde ich persönlich zu nervig.
Ich würde es dann übergehen und mit der nächsten einfach weitermachen
Evtl irgenwo zwischespeichern und am Ende als eine einzige Meldung rausgeben.
Denn wenn man z.B bereits z.B 150 Blätter drin hat müsstest Du 150 x auf "ok" klicken.
Fazit:
Der Aufbau Deines Programms hat mir sehr gut gefallen, das hat mich auch animiert
hier besonders tätiig zu sein.
Ich hoffe ich darf diese Version auch für meine eigenen Belange benutzen ?
Über eine Zustimmung würde ich mich freuen.
Gruß Matthias
AW: Ja, das hat mit den Feiertagen zu tun ...
01.04.2011 10:55:09
Bernd
Hallo Matthias,
selbstverständlich kannst Du die Datei nutzen. Letztendlich hast Du ja auch die wesentliche Arbeit gemacht. Eigentlich müsste ich jetzt fragen, ob ich die Datei so verwenden darf, da ich ja Dein geistiges Eigentum verwenden möchte.
Wie meinem Level zu entnehmen habe ich von VBA nicht die geringste Ahnung. Ich bin zwar in der Lage Codeschnipsel zusammen zu basteln und an meine Bedürfnisse anzupassen, aber das war's dann aber auch schon :-)
Also, wenn Du nichts dagegen hast, würde ich Deine VBA-Programmierung so übernehmen. Habe nur einen Schönheitsfehler korrigiert: Letzte Meldung anstatt "Formlen" habe ich "Formeln" eingesetzt. Den SVERWEIS-Bereich habe ich in die Spalte E geschoben und die Matrix sowie den Spaltenparameter in der Formel (VBA) entsprechend angepasst.
Jetzt füge ich noch das Firmenlogo in die Vorlage ein und dann bin ich fertig.
Vielen Dank und ein schönes Wochenende (hast Du Dir auch redlich verdient)
Gruß Bernd
Danke für die netten Worte :o) kwT
01.04.2011 11:19:50
Matthias
AW: Viele Kopien eines Blatts - Fehler
04.04.2011 08:07:02
Bernd
Hallo Erich,
vielen Dank für Deine Hinweise, aber Matthias hat mir - ausgehend von Deinem Code und meinen bescheidenen Änderungen - eine gute Lösung für Excel 2003 gebastelt. Unter Office 2010 läuft meine Ursprungsdatei ohne Probleme und sehr schnell durch.
Nochmals vielen Dank.
Gruß
Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige