Microsoft Excel

Herbers Excel/VBA-Archiv

Namen von Tabellenblättern mit Formel??

Betrifft: Namen von Tabellenblättern mit Formel?? von: Claudia
Geschrieben am: 16.09.2004 13:34:37

Hallo an alle,

ich habe im Forum gelesen, daß man in der Tabelle per Formel den Namen des Tabellenblattes bekommen kann. Aber geht das auch umgedreht?

Beispiel: Ich habe in A1 einen Namen stehen, der per Formel aus einer Tabelle geholt wird. Diese Tabelle wird immer wieder aktualisiert und diese Namen können sich ändern. Damit ich nicht jedes Mal die Bezeichnung unten im jeweiligen Register oder Tabellenblatt ändern muß, würde mich interessieren, ob es hier auch per Formel möglich ist, den Namen anzupassen. Oder gibt es einen anderen Weg hierfür?

Vielen Dank schon mal im voraus.

Liebe Grüße - Claudia

  


Betrifft: AW: Namen von Tabellenblättern mit Formel?? von: Bert
Geschrieben am: 16.09.2004 13:45:10

Mit Formel ist das nicht möglich!

Der Code muss in das Modul der Tabelle, in der es passieren soll:

Option Explicit
Private Sub Worksheet_Activate()
If ActiveSheet.Name <> [a1] Then
  On Error Resume Next
  ActiveSheet.Name = [a1]
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
  On Error Resume Next
  ActiveSheet.Name = [a1]
End If
End Sub



Bert


  


Betrifft: AW: Namen von Tabellenblättern mit Formel?? von: Matthias G
Geschrieben am: 16.09.2004 13:48:25

Hallo zusammen,

da Claudia, wenn ich sie richtig verstanden habe, in A1 eine Formel stehen hat, sollte das nicht das Change- sondern das Calculate-Ereignis verwendet werden:
Private Sub Worksheet_Calculate(ByVal Target As Range)
On Error Resume Next
ActiveSheet.Name = [a1]
End Sub

Gruß Matthias


  


Betrifft: AW: Namen von Tabellenblättern mit Formel?? von: Bert
Geschrieben am: 16.09.2004 13:50:08

Stimmt, glatt überlesen.

Bert


  


Betrifft: AW: Namen von Tabellenblättern mit Formel?? von: Claudia
Geschrieben am: 16.09.2004 15:20:49

Hallo Bert, hallo Matthias,

vielen Dank für die Formel (?) Ich kenne bisher nur die Funktionen, die mit = anfangen. Was muß ich denn machen, um dieses "Private Sub..." zum funktionieren zu bringen? Wäre Euch für eine Erklärung für Nichtwisser sehr dankbar.

Liebe Grüße - Claudia


  


Betrifft: AW: Namen von Tabellenblättern mit Formel?? von: Matthias G
Geschrieben am: 16.09.2004 16:24:01

Hallo Claudia,

Das ist keine Formel, sondern VBA-Code.

mach einen Rechtsklick auf den Blattnamen im Arbeitsmappenregister (unten links).
Dann "Code anzeigen" klicken, und den Code ins rechts erscheinende Fenster kopieren.

Viel Erfolg,
Matthias


  


Betrifft: Danke Matthias - bin begeisert von: Claudia
Geschrieben am: 16.09.2004 17:32:48




  


Betrifft: Hilfe Matthias!!! irgendwas stimmt nicht von: Claudia
Geschrieben am: 16.09.2004 17:43:52

Hallo Matthias,

hatte den Code von Bert kopiert und ausprobiert, indem ich manuell in A1 den Text geändert habe - ging super. Dann habe ich die Zelle mit der Tabelle verknüpft (=...) damit der richtige Text in A1 steht und da hat er gar nichts gemacht. Dann wollte ich superschlau den Teil change mit Deinem Teil austauschen, aber da meckert er nur rum. Was kann ich tun?

Bin erst morgen früh wieder im Büro. Ich hoffe, Du findest diese Nachricht noch.

Liebe Grüße - Claudia


  


Betrifft: AW: Hilfe Matthias!!! irgendwas stimmt nicht von: Matthias G
Geschrieben am: 16.09.2004 18:07:54

Hallo Claudia,

sorry war mein Fehler - hier der korrekte Code:
Private Sub Worksheet_Calculate()
On Error Resume Next
ActiveSheet.Name = [a1]
End Sub

(hab an diesem Recher kein Excel zur Hand und hab den anderen Code nur kopiert.)

Grüße,
Matthias


  


Betrifft: AW: Hilfe Matthias!!! irgendwas stimmt nicht von: Claudia
Geschrieben am: 17.09.2004 08:14:21

Guten Morgen Matthias,

vielen Dank für die Antwort. Es funktioniert aber leider nur, wenn ich manuell in die Zelle schreibe. Sobald ich eine Funktion einsetze, reagiert der Code nicht mehr. Kannst Du mir nochmal helfen?

Liebe Grüße - Claudia


  


Betrifft: AW: Hilfe Matthias!!! irgendwas stimmt nicht von: Matthias G
Geschrieben am: 17.09.2004 09:05:29

Hallo Claudia,

das lag wohl daran, dass auch Bezüge außerhalb des betreffendes Blattes vorkommen.
Dann muss man die Bezüge genauer definieren:
Private Sub Worksheet_Calculate()
On Error Resume Next
Me.Name = Me.[a1].Value
End Sub

("Me" ist, im Tabellenblattmodul eingesetzt, der Zeiger auf eben dieses Blatt. nur [A1] gibt den Inhalt des aktiven Blattes zurück.)

Grüße,
Matthias


  


Betrifft: VIELEN DANK - hat geklappt von: Claudia
Geschrieben am: 17.09.2004 12:39:08

Hallo Matthias,

tut mir leid, daß ich mich erst jetzt melde, aber es war ganz schön was los hier. Ich habs ausprobiert und es funktioniert super und nochmals danke auch für die Erklärungen zu den Codes.

Liebe Grüße - Claudia


 

Beiträge aus den Excel-Beispielen zum Thema "Namen von Tabellenblättern mit Formel??"