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

Tabellenblätter Namen

Tabellenblätter Namen
13.01.2015 12:20:41
walter
Hey Experten,
ich suche eine Möglichkeit die vorhandenen
Tabellenblätter-Namen nach Jahr zu verändern.
Ausgehend von der Tabelle aktuell Jan 15 bis Dez 15 die
vorhanden sind.
Monat also 3 Stellig,Leerzeichen und Jahr 2 Stellig.
Es sollte vielleicht eine ImportBox aufgehen und dann das
Jahr, nach Wunsch eingesetzt werden.
Also z.B 2016, dann sollte Jan 16 als erster Tabellenblatt-Name
erscheinen.
Des Weiteren müßte in jedes Tabellenblatt in Zelle E4 ebenfalls
das Jahr eingesetzt werden.
P.S.
Ich habe allerdings alle Tabellenblätter mit "ww" geschützt.
Würde mich freuen wenn ich Unterstützung bekommen würde.
gruß
walter

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter Namen
13.01.2015 12:59:53
Ralf
Hallo Walter,
der folgende Code fügt dir wie gewünscht, die Blätter ein.
Was du mit den vorhandenen (geschützten?) Blättern machen möchtest, habe ich nicht verstanden.
Ralf

Option Explicit
Sub ZwölfBlätterEinfügen()
Dim Jahr, Monat
On Error Resume Next
Jahr = InputBox("Jahr eingeben:", "Jahr", Year(Date))
If Not IsNumeric(Jahr) Then Exit Sub
For Monat = 1 To 12
ActiveWorkbook.Worksheets.Add(before:=Sheets(Monat)).Name _
= Format(DateSerial(Jahr, Monat, 1), "MMM YY")
ActiveSheet.Cells(4, 5) = Jahr
Next
End Sub

Werden erstellt aber kann man...
13.01.2015 13:21:29
walter
Hallo Ralf,
neue Tabellenblätter werden erstellt, das ist soweit i.o..
Kann man die vorhandenen Tabellenblätter umbenennen ?
Die Blätter sind ja da: Jan 15 ...Dez 15 und hier nur das Jahr
ändern ?
Die "alten" bzw. vorhandenen Monatsblätter sind geschützt, mit "ww".
Deswegen meinte ich man kann diese überschreiben und dafür muß ja den
Schutz entfernen.
mfg
walter W

Anzeige
AW: Werden erstellt aber kann man...
13.01.2015 13:42:58
Ralf
Hallo Walter,
bei dem Code _muss_ sichergestellt sein, dass es wirklich die ersten 12 Blätter sind, die der Reihe nach umbenannt werden. Sonst hast du evtl. Probleme.
Option Explicit
Sub ZwölfBlätterEinfügen()
Dim Jahr, Monat
Const passwd As String = "ww"
On Error Resume Next
Jahr = InputBox("Jahr eingeben:", "Jahr", Year(Date))
If Not IsNumeric(Jahr) Then Exit Sub
For Monat = 1 To 12
With ActiveWorkbook.Worksheets(Monat)
.Unprotect passwd
.Name = Format(DateSerial(Jahr, Monat, 1), "MMM YY")
.Cells(4, 5) = Jahr
.Protect passwd
End With
Next
End Sub

Anzeige
Soweit ja aber...
13.01.2015 14:00:47
walter
Hallo Ralf,
das Makro läuft SUPER.
Ich hatte das 1. Blatt selektiert das ist der Monat Jan 15,
diese Tabelle wurde nicht geändert allerdings in E4 2016
geändert.
Also nur der Blattname nicht.
mfg
walter w

AW: Soweit ja aber...
13.01.2015 14:11:46
Ralf
Hallo Walter,
bei mir funzt das.
Füge bitte nach der Zeile
If Not IsNumeric(Jahr) Then Exit Sub
noch den Code hinzu, womit die Fehlermeldungen wieder angezeigt werden.
On Error GoTo 0
Err.Clear
Du kannst den Code im Code-Fenster mit F8 einzeln abarbeiten und so eine Fehlersuche machen.
Ralf

DANKE -)
13.01.2015 15:10:37
walter
Hallo Ralf,
herzlichen Dank.
Keine Änderung aber ich hab im
Private Sub Worksheet_Change(ByVal Target As Range)
dies stehen:
ActiveSheet.Name = Format(ActiveSheet.Range("P2"), "mmm yy")
muss mal sehen wie ich dies hinbekomme.
Ich habe das Worksheet_Change vorübergehend ausgeklammert, keine Änderung.
Mal sehen...
gruß
walter w

Anzeige
Mal zur Info, vielleicht weiß jemand was...
13.01.2015 15:22:50
walter
Hallo Ralf,
habe mal dies mit F8 durchgeführt, keine Reaktion.
Private Sub Worksheet_Activate()
Application.EnableEvents = True
ActiveSheet.Name = Format(ActiveSheet.Range("P2"), "mmm YY")
End Sub
In P2 steht: 01 16 und in der Tabelle bleibt Jan 15,
warum auch immer.
gruß
walter w

Bitte dringend Makro läuft aber...
13.01.2015 17:16:54
walter
Hallo Ralf,
dein Makro funktioniert einwandfrei !
Wie kann ich dies in deinem Makro einbinden ?
.Range("T7").Select
ActiveSheet.FreezePanes = True
.Columns("S:S").Select
.ColumnWidth = 200
werden übrings alle jetzt richtig umgeändert, habe meine Zeile:
Private Sub Worksheet_Change(ByVal Target As Range)
' ActiveSheet.Name = Format(ActiveSheet.Range("P2"), "mmm yy")
rausgenommen.
mfg
walter w

Anzeige
AW: Bitte dringend Makro läuft aber...
14.01.2015 09:32:38
Ralf
Hallo Walter,
was möchtest du erreichen?
Möchtest du auf jedem umbenannten Blatt "Fenster fixieren" an der Zelle T7 ausführen?
Wenn ein Punkt "." vor einer Anweisung steht, gibt es ein "With ..." dazu. Das brauche ich auch, um zu wissen, womit was gemacht wird.
Beispiel:
Wenn man nicht jedes mal activeworkbook.activesheet schreiben will, klammert man einen Codebereich mit With ein.
With activeworkbook.activesheet
.range(.cells(1,1), .cells(2,2)).backcolor = vbred
.cells(1,2) = 2
End With
Ralf

Guten Morgen, danke das Du..
14.01.2015 09:55:05
walter
Guten Morgen Ralf,
ich möchte gern, dass jede Tabelle wieder Fixiert wird und
die Spalte S 200 breit wird.
Habe gerade festgestellt, das die Fixierung vorhanden ist aber die Spaltenbreite
von S nicht vorhanden ist.
So hatte ich es in meinem Makro für das Schützen der
Tabelle drin stehen.
Range("T7").Select
ActiveWindow.FreezePanes = True
Columns("S:S").Select
Selection.ColumnWidth = 200
mfg
walter w

Anzeige
Spaltenbreite klappt schon
14.01.2015 10:09:40
walter
Hallo Ralf,
habe in deinem Makro dies eingesetzt und die Spaltenbreite ist
überall drin !
For Monat = 1 To 12
With ActiveWorkbook.Worksheets(Monat)
.Unprotect passwd
.Name = Format(DateSerial(Jahr, Monat, 1), "MMM YY")
.Cells(4, 5) = Jahr
.Columns("S:S").ColumnWidth = 200
'' .Cells(7, 20) = .FreezePanes = True
' .FreezePanes = True
.Protect passwd
End With
Next
jetzt möchte nur noch Wissen wie es mit der Fixierung läuft.
gruß
walter ww

Fixierung: mit Select
14.01.2015 10:30:17
Klaus
Hallo Walter und Ralf,
es wird immer gesagt, in VBA kann zu 99% auf select verzichtet werden. "Fenster fixieren" gehört zu dem 1%-Rest, dazu benötigt es ein select.
Es gibt auch einen aufwendigen Umweg, um ein Fenster ohne select zu verzichten - der ist aber imho eher Praxisfremd.
Grüße,
Klaus M.vdT.

Anzeige
AW: Fixierung: mit Select
14.01.2015 10:51:19
Ralf
Hallo Klaus,
ja, ich weiß, danke.
Ich habe gerade deinen Beitrag von 2006 gelesen, wo du das gleiche gefragt hattest.
Hallo Walter,
wie Klaus bereits schrieb, kommst du um das selektieren des Blattes nicht herum.
Füge folgenden Code ein:
Application.Screenupdating = True 'abschalten des bildschirmflimmern
For Monat = 1 To 12
With ActiveWorkbook.Worksheets(Monat)
.select
.Unprotect passwd
.Name = Format(DateSerial(Jahr, Monat, 1), "MMM YY")
.Cells(4, 5) = Jahr
.Columns("S:S").ColumnWidth = 200
.Cells(7, 20).select
if activewindow.FreezePanes = true 'falls fixierung an einer anderen stelle aktiv ist
then activewindow.freezepanes=false
end if
activewindow.FreezePanes = True
.Protect passwd
End With
Next
application.screenupdating=false 'zwingend einschalten!
Ralf

Anzeige
Danke Ralf und Klaus !!!
14.01.2015 11:15:36
walter
Hallo das HILFT !
Danke an RALF und an Klaus,
gruß
walter w

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige