Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1040to1044
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

Einegefügte Tabellenblätter automatisch verschiebe

Einegefügte Tabellenblätter automatisch verschiebe
Don
Dank der lieben und kompetenten Hilfe aus diesem Forum heraus, bin ich schon ein ganzes
Stück weitergekommen.
Jetzt will ich die neu eingefügten Tabellenblätter automatisch ans Ende der Tabellenblätter schieben.
Hierzu habe ich auch schon ein Makro aufgezeichnet und wollte es an das bereits erstellte Makro
anhängen. Aber das Makro zeichnet auch die Namen der jeweiligen Tabellenblätter mit auf.
Somit würde es bei den nächsten Tabellenblättern nicht mehr gehen.
Nochmals kurz eine Info zu den Tabellenblättern:
Die Arbeitsmappe hat ein Tabellenblatt für Montag und für Dienstag - Freitag (wegen unterschiedlicher
bedingter Formatierung).
Per Makro lege ich jeweils Tabellenblätter für eine neue Woche an.
Die Register sind so beschriftet Mo 12.01.2009 Di 13.01.2009 usw.
Somit fällt auch die alphabetische Sortierung der Tabellenblätter aus.
Die Tabellenblätter 1 - 4 sollen unverändert an ihrem Platz stehen bleiben.
Ich freue mich auf Eure Unterstützung.
Gruß
Don

31
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Einegefügte Tabellenblätter automatisch verschiebe
Josef
Hallo Don,
erstelle die Bläztter doch gleich am Ende. "After:= Sheets(Sheets.Count)"
Gruß Sepp

AW: Einegefügte Tabellenblätter automatisch verschiebe
michael
Hi Don
Versuch mal....
aber NICHT gleich am Original !!

Sub TabellenNamenVergeben()
Dim anzahl As Integer
Dim i As Integer
anzahl = Val(InputBox("Anzahl Tabellenblätter: ", , 1))
If anzahl = 0 Then Exit Sub
For i = 1 To anzahl
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = InputBox("Name neues Blatt:", , "Tabelle" &  _
Worksheets.Count)
Next
End Sub


Lieben Gruß
der kleine michael

Anzeige
AW: Einegefügte Tabellenblätter automatisch verschiebe
Don
Hallo Sepp,
gehe mal davon aus, dass ich die Zeile ins Makro einpflegen muss. Leider funktioniert es nicht.
"Syntaxfehler".
Hallo Miachael,
tolles Makro, aber meine Register sind schon asutomatisch beschriftet.
Ich freue mich über weitere Vorschläge.
Don
AW: Einegefügte Tabellenblätter automatisch verschiebe
robert
hi,
..gehe mal davon aus, dass ich die Zeile ins Makro einpflegen muss. Leider funktioniert es nicht.
ich denke diese zeile musst du einfügen
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
gruß
robert
AW: Einegefügte Tabellenblätter automatisch verschiebe
Don
Hi Robert,
Danke, das klappt . . . leider nur für eine Woche und hat den unerfreulichen Nebeneffekt, dass 5 weitere
Tabellenblätter mitangelegt werden.
Lege ich eine neue Woche an, wird diese wieder vor die erstangelegte Woche gestellt.
Anzeige
AW: Einegefügte Tabellenblätter automatisch verschiebe
Tino
Hallo,
wie wäre es hiermit?
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_NewSheet(ByVal Sh As Object) 
 Sh.Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) 
End Sub 
 
 


Gruß Tino

Anzeige
AW: Einegefügte Tabellenblätter automatisch verschiebe
Don
Hi Tino,
ähem, ich habe den Code in die zu kopierenden Tabellenblätter kopiert und
dann das Makro zweimal laufen lassen. Leider ist alles unverändert.
Die aktuellere Woche wird vor der älteren Woche eingefügt.
AW: Einegefügte Tabellenblätter automatisch verschiebe
Tino
Hallo,
steht doch groß dabei.
kommt als Code in DieseArbeitsmappe
Gruß Tino
AW: Einegefügte Tabellenblätter automatisch verschiebe
robert
hi,
dann wäre dein code interessant, wie du ein blatt einfügst
gruß
robert
AW: Einegefügte Tabellenblätter automatisch verschiebe
Don
Code wie gewünscht:

Sub Woche()
' Woche Makro
' Tastenkombination: Strg+w
Sheets("Leerformular Di - Fr").Select
Sheets("Leerformular Di - Fr").Copy After:=Sheets(33)
Range("B1:N1").Select
ActiveCell.FormulaR1C1 = "=Date!R[4]C[-1]"
Sheets("Leerformular Di - Fr (2)").Select
ActiveWorkbook.Sheets("Leerformular Di - Fr (2)").Tab.ColorIndex = 6
Sheets("Leerformular Di - Fr (2)").Select
Sheets("Leerformular Di - Fr (2)").Name = "Fr 00.01.2009"
Range("B1:N1").Select
ActiveSheet.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")
Sheets("Leerformular Di - Fr").Select
Sheets("Leerformular Di - Fr").Copy After:=Sheets(33)
Range("B1:N1").Select
ActiveCell.FormulaR1C1 = "=Date!R[3]C[-1]"
Sheets("Leerformular Di - Fr (2)").Select
ActiveWorkbook.Sheets("Leerformular Di - Fr (2)").Tab.ColorIndex = 36
Sheets("Leerformular Di - Fr (2)").Select
Sheets("Leerformular Di - Fr (2)").Name = "Do 00.01.2009"
Range("B1:N1").Select
ActiveSheet.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")
Sheets("Leerformular Di - Fr").Select
Sheets("Leerformular Di - Fr").Copy After:=Sheets(33)
Range("B1:N1").Select
ActiveCell.FormulaR1C1 = "=Date!R[2]C[-1]"
Sheets("Leerformular Di - Fr (2)").Select
ActiveWorkbook.Sheets("Leerformular Di - Fr (2)").Tab.ColorIndex = 50
Sheets("Leerformular Di - Fr (2)").Select
Sheets("Leerformular Di - Fr (2)").Name = "Mi 00.01.2009"
Range("B1:N1").Select
ActiveSheet.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")
Sheets("Leerformular Di - Fr").Select
Sheets("Leerformular Di - Fr").Copy After:=Sheets(33)
Range("B1:N1").Select
ActiveCell.FormulaR1C1 = "=Date!R[1]C[-1]"
Sheets("Leerformular Di - Fr (2)").Select
ActiveWorkbook.Sheets("Leerformular Di - Fr (2)").Tab.ColorIndex = 43
Sheets("Leerformular Di - Fr (2)").Select
Sheets("Leerformular Di - Fr (2)").Name = "Di 00.01.2009"
Range("B1:N1").Select
ActiveSheet.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")
Sheets("Leerformular Mo").Select
Sheets("Leerformular Mo").Copy After:=Sheets(33)
Range("B1:N1").Select
ActiveCell.FormulaR1C1 = "=Date!RC[-1]"
Sheets("Leerformular Mo (2)").Select
ActiveWorkbook.Sheets("Leerformular Mo (2)").Tab.ColorIndex = 35
Sheets("Leerformular Mo (2)").Select
Sheets("Leerformular Mo (2)").Name = "Mo 00.01.2009"
Range("B1:N1").Select
ActiveSheet.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")
End Sub


Die Arbeitsmappe besteht zunächst aus
Tabellenblatt "Anleitung" für Nutzer
Tabellenblatt "Date" hier wird in Zelle A1 das gewünschte Montagsdatum eingegeben
und die weiteren Daten in Zelle A2 - und A5 automatisch berechnet (A2 = A1 +1 usw.)
Auf dem Tabellenblatt "Date" befindet sich ein Button "neue Woche anlegen", mit dem
der obige Code verknüpt ist.

Anzeige
AW: Einegefügte Tabellenblätter automatisch verschiebe
Tino
Hallo,
dieses Eventmakro (EnableEvents muss True sein),
startet sofort los sobald eine neue Tabelle eingefügt wird, egal ob von Hand oder mit Makro.
Gruß Tino
AW: Einefügte Tabellenblätter automatisch verschiebe
Don
Sorry, verstehe nur Bahnhof.
AW: Einegefügte Tabellenblätter automatisch verschiebe
robert
hi,
probier mal diesen befehl
Sheets("Leerformular Di - Fr").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count) - ermittelt die anzahl der vorhandenen blätter
und fügt das nächste hinten an
gruß
robert
AW: Einegefügte Tabellenblätter automatisch verschiebe
Don
Robert,
in welcher Zeile füge ich diesen Befehl (zusätzlich?) ein?
AW: Einegefügte Tabellenblätter automatisch verschiebe
robert
hi,
statt deinen ,siehe unten,befehlen, nicht zusätzlich
Sheets("Leerformular Di - Fr").Copy After.........
gruß
robert
Anzeige
So besser?
Tino
Userbild
AW: So besser?
Don
Tino,
vielen Dank für die sehr hilfreiche Darstellung.
Tut sich leider nix.
kann nicht sein.
Tino
Hallo,
lade mal ein Beispiel hoch.
Gruß Tino
AW: kann nicht sein.@Tino
robert
hi tino,
hast du schon seinen code gesehen?
heute 19:11:47
gruß
robert
AW: kann nicht sein.@Tino
Tino
Hallo,
jetzt ja ;-)
bei Copy gehts nicht :-(
So wird die Tabelle immer ans ende gestellt.
Beispiel aus dem Code:

Sheets("Leerformular Mo").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)


Gruß Tino

Anzeige
AW: kann nicht sein.@Tino
Don
Datei kann ich leider wegen sensibler Daten nicht hochladen.
Habe versucht die Arbeitsmappe entsprechend zu ändern; dann läuft aber das Makro nicht mehr.
Wie muss ich denn mein Makro ergänzen? Mit . . .
Sheets("Leerformular Mo").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
AW: kann nicht sein.@Tino
robert
hi don,
diese teilbefehle in deinem makro müssen raus,
.Copy After:=Sheets(33)
stattdessen musst du diesen befehlsteil einfügen
.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
alles klar ?
gruß
robert
AW: kann nicht sein.@Tino
robert
hi,
nachtrag
diese müssen raus,
Sheets("Leerformular Di - Fr").Copy After:=Sheets(33)
diese müssen rein
Sheets("Leerformular Di - Fr").Copy After:=ThisWorkbook.Sheets(Sheets.Count)
gruß
robert
Anzeige
AW: kann nicht sein.@Tino
Don
Dank eurer tollen Hilfe klappts jetzt, vielen herzlichen Dank.
Gruß
Don
super oT.
Tino
TOLL - 17 mal der gleiche Betreff mit Tippfehlern
WF
.
AW: jomei, wir sind doch keine Deutschlehrer
Daniel
bei "einegefügte Tabellenblätter" zum 15. mal
WF
weiß der neutrale Leser ja sofort, daß dort der prima Lösungsansatz in "einegefügte Tabellenblätter" zum vierten mit dem Verbesserungsvorschlag in "einegefügte Tabellenblätter" zum neunten optimiert wurde.
AW: bei "eingefügte Tabellenblätter"
robert
glücklich ist, wer keine anderen sorgen hat..........
klasse Betreff
WF
.
AW: jomei, wir sind doch keine Deutschlehrer
Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige