PDA

Vollständige Version anzeigen : Arbeitsblattname in Zelle übernehmen


Ralf_B
04.07.2001, 10:24
ich möchte in einer Exceldatei in jedem Arbeitsblatt den Namen des jeweiligen Arbeitsblattes
in einer Zelle anzeigen.

Also:
Inhalt der Zelle A1 = RECHTS(ZELLE("Dateiname");LÄNGE(ZELLE("Dateiname"))-FINDEN("]";ZELLE("Dateiname")))

Dies funktioniert aber nur mangelhaft.
Denn sobald ich in einem beliebigem Arbeitsblatt eine Änderung (Entf.-Taste drücken reicht) vornehme,
wird der Zelleninhalt "A1" in jedem Arbeitsblatt auf den Namen dieses zuletzt bearbeiteten Arbeitsblattes geändert.


Wer hättehier eine Lösung parat?

Ich möchte diese Anzeige nicht über die Kopf- oder Fußzeile erreichen.
Es sind bis zu 20 Arbeitsblätter in einer Datei gespeichert.


Ralf

Stema
04.07.2001, 15:16
Hallo Ralf,

erstelle Dir ein Modul in der VBA Ansicht. Erstelle in diesem Modul folgende Funktion:

Function Blattname() As String
Blattname = ActiveSheet.Name
End Function

In die entsprechende Zelle schreibst Du dann nur noch =Blattname()


Gruß Stema

Ralf_B
05.07.2001, 15:04
Hallo Stema,

vielen Dank!
Funktioniert einwandfrei!

Ralf

zytec
26.09.2005, 08:44
Sorry, dass ich einen solch alten Thread aus dem Grab hole. Hab aber zu der Funktion noch ein paar Fragen.

Ich setzte sie dazu ein um in einer gesperrten (Blattschutz) Zelle den Namen des Arbeitsblatts zu übernehmen. Dabei hab ich folgendes Problem, wenn der Name des Blattes geändert wird, wir die Zelle mit dem Funktionsaufruf nicht angepasst. Dazu muss ich erst das Blatt entsperren und mit Anklicken und Enter die Zelle "anpassen". Gibts da ne Möglichkeit das automatisch durchzuführen?

Danke für Eure Hilfe

Zytec

Hajo_Zi
26.09.2005, 08:51
Hallo Ralf,

die Funktion ist korrekt, wenn Du auch den Schalter angibst.
ZELLE("Dateiname";A1)

Hallo Zytec,

Dein Problem kann ich nicht nachvollziehen, bei der geänderten Formel.

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

zytec
26.09.2005, 17:05
Ich versuchs etwas ausführlicher zu erklären:

Excel-Arbeitsmappe mit 15 Arbeitsblättern. Jeweils in der Zelle A1 wird durch die oben genannte Funktion Blattname() der Arbeitsblattname in der Zelle ausgegeben. Soweit so gut.
Die Zelle A1 ist normalerweise gesperrt. Der Arbeitsblattname lässt sich aber ändern und dieser geänderte Name soll automatisch in die Zelle eingetragen werden.
Bisher hab ich nur den Weg gefunden die Zelle manuell zu entsperren, die Zelle A1 anzuklicken und mit Enter wieder zu verlassen, um den geänderten Blattnamen in die Zelle zu übernehmen. Mit F9 oder ähnlichem wird keine Neuberechnung der Zelle durchgeführt.
Ich weiß wie ich über eine Schaltfläche den Blattschutz deaktivieren und wieder aktivieren kann. Mir fehlt eine Möglichkeit die Änderungen in den Arbeitsblattnamen automatisch in die einzelnen Zellen zu übernehmen ("Funktionsaufruf").
Würde gerne eine BeispielDatei zur Verfügung stellen, geht das?

Danke, Zytec

Hajo_Zi
26.09.2005, 17:35
Hallo Zytec,

beim Antwortformular gibt es unten ein Punkt zum hochladen. Hast Du ;A1 in der Formel ergänzt?? Ich 3x

<a href="http://home.media-n.de/ziplies/" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>
<pr>
<span style=" font-family:Arial,Arial; font-size:8pt;">"Wer <B>Rechtschreibfehler</b> findet, darf sie behalten!"</span>

jinx
26.09.2005, 17:36
<font size="2" face="Century Gothic">Moin, Zytec,

die aufgeführte Funktion ist statisch und Bedarf eines Aufrufes oder Auslösers, z.B. nach Einfügen von Application.Volatile funktioniert F9 (Neuberechnung). Vielleicht verwendest Du stattdessen einfach eine Formel in A1 wie

=TEIL(ZELLE("Dateiname";$A$1);FINDEN("]";ZELLE("Dateiname";$A$1))+1;31)
Diese Formel liefert bei einer nichtgespeicherten Mappe #WERT!, ansonsten immer den Blattnamen - sofort... :grins:</font>

zytec
27.09.2005, 12:58
Super, danke für die schnelle Hilfe. Funktioniert einwandfrei.

Dank an die beiden Moderatoren die sich hier so für Newbies engagieren!

Werd euer Forum auf alle Fälle weiterempfehlen.

mfg
zytec