Anzeige
Archiv - Navigation
1396to1400
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

Ermittlung des Arbeitsblattnamen

Ermittlung des Arbeitsblattnamen
12.12.2014 17:38:01
Stefan
Hallo,
Ich habe eine Tabelle mit vielen Arbeitsblättern (Je Mitarbeiter ein Arbeitsblatt).
Der Tabellenname ist der jeweilige Mitarbeitername.
In der Tabelle möchte ich nun diesen Arbeitsblattnamen in einer Zelle nutzen.
Beispiel
Zelle B1 enthält "Name des Mitarbeiters:"
Zelle B2 soll den Inhalt des Arbeitsblattnamens erhalten.
Um dies zu erreichen habe ich mir ein ganz einfache Funktion in VBA erstellt:
Public Function dlArbeitsblattname() dlArbeitsblattname = ActiveSheet.Name End Function
In Zelle B2 steht jetzt in jedem der Arbeitsblätter dlArbeitsblattname()
Auf den ersten Blick funktioniert das auch sehr gut, aber wenn ich länger mit der Tabelle arbeite ändern sich auf einmal die angezeigten Werte und zeigen falsche Mitarbeiternamen.
Ich vermute das dies mit der Neuberechnung der Funktionen zusammenhängt.
Hat jemand eine Idee was ich hier falsch gemacht habe und vor allem wie man es richtig macht?
Gruss - Stefan

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ermittlung des Arbeitsblattnamen
12.12.2014 18:01:02
Matthias
Hallo
Das geht auch ohne Funktion
Datei muss aber gespeichert sein.
 B
1Name des Mitarbeiters
2Stefan Ditscheid

Formeln der Tabelle
ZelleFormel
B2=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;9^9)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
 B
1Name des Mitarbeiters
2Matthias L

Formeln der Tabelle
ZelleFormel
B2=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;9^9)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: Ermittlung des Arbeitsblattnamen
12.12.2014 18:06:42
Daniel
HI
du solltest schon eindeutig angeben, von welchem Blatt du den Namen haben willst.
Dazu kannst du der Funktion als Parameter eine Zeile auf dem jeweiligen Blatt übergeben und dann ist immer klar, welches Blatt diese Funktion verwenden soll:
Public Function dlArbeitsblattname(Zelle as Range) as String
dlArbeitsblattname = Zelle.Worksheet.Name
end Function
oder wenn du immer den Namen des Blattes haben willst, in dem sich die Formel akutell befindet:
Public Function dlArbeitsblattname() as String
dlArbeitsblattname = Application.Caller.Parent.Name
End Function
Wenn die Funktion als Formel in einer Zelle steht, ist Application.Caller die Zelle die die Funktion enthält.
Gruß Daniel

Anzeige
AW: Beachte Bitte noch
12.12.2014 18:21:43
Daniel
... dass eine Änderung des Tabellenblattnames Excel nicht dazu veranlasst, diese Formeln neu zu berechnen!
Dh nach einer Namensänderung wirst du immer noch den alten Blattnamen sehen!
für die erste Variante kannst du eine Neuberechung auslösen, wenn du die als Parameter angegebene Zelle änderst.
für die zweite Variante hilft nur, die Zeile Application.Volatile mit hinzuzunehmen, dies bewirkt dass die Formel bei jeder Änderung in Excel neu berechnet wird.
Public Function dlArbeitsblattname()
Application.Volatile
dlArbeitsblattname = ActiveSheet.Name
End Function

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige