Menu

Frage zu Excel

Morle

Mitglied seit
12.07.2001
Beiträge: 92
Hilfreich: 0

Guten Morgen,

danke ihr beiden für eure Antwort.

Inzwischen bin ich auch im Netz bei Excel-Training fündig geworden.

Hier die dort angebotene Lösungsvariante, die ich in einer ruhigen Minute mal ausprobieren werden.

Auf Änderungen an einem Tabellenblatt können Sie per VBA-Code mit Hilfe des Worksheet_Change-Ereignisses reagieren. So lässt sich auch der Blattname dynamisch ändern. Die folgende Lösung nutzt dafür eine allgemeine Prozedur, die Sie dann aus den Codefenstern der gewünschten Tabellenblätter aufrufen. Dazu gehen Sie folgendermaßen vor:

Öffnen Sie die Arbeitsmappe, in der Sie die Blattnamen dynamisch vergeben wollen.

Wechseln Sie mit der Tastenkombination Alt+F11 in den Visual Basic-Editor.

Erstellen Sie im Projekt der aktuellen Arbeitsmappe ein neues Modul, indem Sie Einfügen-Modul anwählen.

In das daraufhin geöffnete Codefenster geben Sie folgende Prozedur ein:

Sub NeuerBlattname _
(ByVal Zelle As Range, _
NameInZelle As String)
Dim strNewName As String
If Zelle.Address = _
ActiveSheet.Range(NameInZelle).Address Then
strNewName = Zelle.Text
If MsgBox _
(Prompt:="Wollen Sie das Blatt umbenennen?" & _
vbCr & _
"Neuer Name: " & strNewName, _
Buttons:=vbQuestion + vbYesNo, _
Title:="Neuer Blattname&quot = vbYes Then
ActiveSheet.Name = strNewName
End If
End If
End Sub

Die Prozedur erwartet zwei Parameter: "Zelle" ist ein Verweis auf die Zelle, die gerade geändert worden ist, und "NameInZelle" ist die Adresse der Zelle, die ausschlaggebend für den Blattnamen sein soll. Im Programmcode überprüft die Prozedur, ob die Adresse der geänderten Zelle identisch mit der Adresse der Zelle ist, die den Blattnamen bestimmt. Wenn das der Fall ist, erscheint ein Meldungsfenster, in dem Sie gefragt werden, ob Sie das Blatt tatsächlich umbenennen wollen. Falls Sie die Frage mit Ja beantworten, erhält das aktive Blatt einen neuen Namen.

Damit die Prozedur automatisch bei Änderungen an einem Tabellenblatt gestartet wird, kehren Sie zunächst per Alt+F11 zum Excel-Fenster zurück.

Dann klicken Sie am unteren Fensterrand mit der rechten Maustaste auf das Register eines Tabellenblatts, in dem Sie eine dynamische Namensvergabe einsetzen wollen.

Im aufklappenden Kontextmenü wählen Sie den Befehl Code anzeigen an.

Sie gelangen wieder in den Visual Basic-Editor, und zwar in das Codefenster des gewählten Tabellenblatts. Am oberen Rand dieses Fensters öffnen Sie das linke Dropdown-Feld und wählen den Eintrag "Worksheet" aus. - Direkt danach öffnen Sie das rechte Dropdown-Feld, um den Listeneintrag "Change" zu aktivieren.

Im Codefenster selbst erscheint daraufhin ein Prozedurgerüst für das Worksheet_Change-Ereignis. Ergänzen Sie es um den Aufruf der Prozedur "NeuerBlattname", sodass der gesamte Ausdruck am Ende so aussieht:

Private Sub Worksheet_Change(ByVal Target As Range)
NeuerBlattname Target, "A1"
End Sub

Als Parameter übergeben Sie als erstes immer das Objekt "Target" an die Prozedur "NeuerBlattname". Den zweiten Parameter können Sie individuell wählen. In diesem Fall geben Sie damit an, dass sich der Blattname nach dem Inhalt der Zelle "A1" richten soll. Wenn die ausschlaggebende Überschrift stattdessen in Zelle C3 steht, rufen Sie die Hilfsprozedur auf folgende Art und Weise auf:

NeuerBlattname Target, "C3"

Kehren Sie mit Alt + F11 zum Excel-Fenster zurück und wiederholen Sie die Schritte 6 bis 9 für weitere Tabellenblätter, in denen der Blattname dynamisch angepasst werden soll. Dabei können Sie bei Bedarf jedes Mal andere Zelladressen als zweiten Parameter an "NeuerBlattname" übergeben.

Änderungen an den Tabellenblättern werden ab sofort überwacht. Sobald Sie etwas Neues in die Zelle, die den Blattnamen beeinflusst, eingeben, erscheint die Abfrage, ob Sie den Namen tatsächlich ändern wollen.

--
Liebe Grüße von
Morle

LG Morle
[img:24b2d20ac3]http://www.cosgan.de/images/smilie/tiere/o015.gif[/img:24b2d20ac3]

Der Verstand ist wie eine Fahrkarte: Sie hat nur dann einen Sinn, wenn sie benutzt wird.
Ernst R. Hauschka, Aphoristiker (geb. 1926)

Dieser Beitrag wurde 0 mal als hilfreich markiert.

Dennis

Mitglied seit
26.06.2003
Beiträge: 1232
Hilfreich: 0

Du könntest ein Makro schreiben, was dieses erledigt. Ist nur die Frage, wie oft das wirklich vorkommt und ob sich dann der Aufwand für das Makro lohnt.

--

LG Thomas

LG Thomy....hier kommt der Genuß

Dieser Beitrag wurde 0 mal als hilfreich markiert.

Zicke

Mitglied seit
11.08.2002
Beiträge: 1132
Hilfreich: 0

Morle,
ich glaube, das geht nicht. Du kannst auf dem Reiter ja keine Formel angeben oder einen Befehl - du musst das weiterhin händisch machen.
--
Es gruesst
Z i c k e
*****
Lord Chief Whip

Gruss aus London
Zicke

~ Change is the spice of life ~

Dieser Beitrag wurde 0 mal als hilfreich markiert.

Morle

Mitglied seit
12.07.2001
Beiträge: 92
Hilfreich: 0

Hallo und einen schönen Wochenstart für alle!

Meine Frage zu Excel:

Wenn ich eine Excel-Datei habe und diese hat verschiedene Tabellenblätter, kann ich irgendwie automatisch die Bezeichnung aus der ersten Zelle A1 als Namen für das Tabellenblatt definieren? Ich muss manuell immer die "Reiter" anklicken und dort händisch den Nemen eintragen. Das nervt!!!!

Kann ich mir das erleichtern? Ich hoffe ja!
--
Liebe Grüße von
Morle

LG Morle
[img:24b2d20ac3]http://www.cosgan.de/images/smilie/tiere/o015.gif[/img:24b2d20ac3]

Der Verstand ist wie eine Fahrkarte: Sie hat nur dann einen Sinn, wenn sie benutzt wird.
Ernst R. Hauschka, Aphoristiker (geb. 1926)

Dieser Beitrag wurde 0 mal als hilfreich markiert.
Hinweis: Sie müssen sich einloggen um antworten zu können. Noch kein Login? Hier registrieren.