Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Tabellenblattname aus Zelle

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Tabellenblattname aus Zelle (4226 mal gelesen)
heiko_hems
Mitglied
Freier Architekt


Sehen Sie sich das Profil von heiko_hems an!   Senden Sie eine Private Message an heiko_hems  Schreiben Sie einen Gästebucheintrag für heiko_hems

Beiträge: 1295
Registriert: 14.01.2005

BuildingDesignSuitePremium 2021
Revit / ACA

erstellt am: 19. Dez. 2008 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin Zusammen,

das Anzeigen des Blattnamens in eine Zelle hatten
wir hier schon ein paar Mal, funktioniert auch prächtig.

Jetzt meine Frage: geht das auch umgekehrt ?
Kann der Blattname aus einem Zellwert generiert werden ?

------------------
Gruß
Heiko

"Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43
und das hat er gesagt lange bevor es SL, WOW, ETC gab !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 19. Dez. 2008 09:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für heiko_hems 10 Unities + Antwort hilfreich

Hallo Heiko,

mit Excel-Bordmitteln geht das IMHO nicht. Schnell und schmutzig per VBA als ausbaufähige Grundlage  - Bezugszelle ist A1:

Code:
Sub Zelle2Blatt()
    ActiveSheet.Name = Range("A1")
End Sub
Frederik

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

heiko_hems
Mitglied
Freier Architekt


Sehen Sie sich das Profil von heiko_hems an!   Senden Sie eine Private Message an heiko_hems  Schreiben Sie einen Gästebucheintrag für heiko_hems

Beiträge: 1295
Registriert: 14.01.2005

erstellt am: 19. Dez. 2008 09:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Frederik,

der Ansatz ist prima !
Kann ich erreichen,
dass wenn eine Zelle A1 geändert wurde das VBA-Makro abläuft ?
Dazu noch ein Tipp, dann hoffe ich den Rest hinzubekommen (bin ein VBA-Dummie) ! Danke

------------------
Gruß
Heiko

"Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43
und das hat er gesagt lange bevor es SL, WOW, ETC gab !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 19. Dez. 2008 10:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für heiko_hems 10 Unities + Antwort hilfreich

In das gewünschte Tabellenblatt (Microsoft Excel Objekte) diesen
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = Range("A1").Address Then ActiveSheet.Name = Range("A1")
End Sub

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

heiko_hems
Mitglied
Freier Architekt


Sehen Sie sich das Profil von heiko_hems an!   Senden Sie eine Private Message an heiko_hems  Schreiben Sie einen Gästebucheintrag für heiko_hems

Beiträge: 1295
Registriert: 14.01.2005

erstellt am: 19. Dez. 2008 11:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Boooah !

das hab' ich jetzt doch nicht verstanden,
was meinst Du mit Microsoft Excel Objekt ?
Wo bring' ich das Makro unter ?
Sorry die Nachfrage (s.o.  ),
aber ich kannte Makros bislang nur in de Arbeitsmappe...

------------------
Gruß
Heiko

"Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43
und das hat er gesagt lange bevor es SL, WOW, ETC gab !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 19. Dez. 2008 11:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für heiko_hems 10 Unities + Antwort hilfreich

In der VBA-Umgebung gibt es links eine Liste, da bist Du schon ganz richtig ;-). Ich hatte Module vorausgesetzt, die werden beim Macro aufzeichnen erzeugt...

Schrittweise aus Excel heraus:
Alt+F11 (ruft die VBA-IDE auf) - Strg+R (ruft den Projekt-Explorer in VBA auf) - Deine Mappe auswählen - den Ordner Microsoft Excel Objekte öffnen - Doppelklick auf Dein Tabellenblatt.

Oberhalb des Code-Fensters siehst Du zwei Dropdown-Listen. Die linke zeigt '(Allgemein)' an, da klickst Du drauf. Wähle 'Worksheet', es wird Code erzeugt ('SelectionChange...', den kannst Du gleich wieder wegputzen). Wähle in der rechten Liste 'Change' - da rein kommt der Einzeiler aus obigem Beitrag.

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

heiko_hems
Mitglied
Freier Architekt


Sehen Sie sich das Profil von heiko_hems an!   Senden Sie eine Private Message an heiko_hems  Schreiben Sie einen Gästebucheintrag für heiko_hems

Beiträge: 1295
Registriert: 14.01.2005

erstellt am: 19. Dez. 2008 11:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sehr gut,
vielen Dank Frederik,
für die feine Schritt-für-Schritt-Anleitung !

So bring' ich's hin. Super !
Ich kannte bislang nur Module, wieder was gelernt.

Us4U
Danke !

------------------
Gruß
Heiko

"Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43
und das hat er gesagt lange bevor es SL, WOW, ETC gab !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

heiko_hems
Mitglied
Freier Architekt


Sehen Sie sich das Profil von heiko_hems an!   Senden Sie eine Private Message an heiko_hems  Schreiben Sie einen Gästebucheintrag für heiko_hems

Beiträge: 1295
Registriert: 14.01.2005

BuildingDesignSuitePremium 2021
Revit / ACA

erstellt am: 19. Dez. 2008 12:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ein Problem bleibt mir noch:
Ich will aus der Eingabe 1.1.09
das Tabellenblatt mit Januar '09 benannt haben.
In meiner unbedarften Weise habe ich den Code so umgefummelt:
  If Target.Address = Range("AB1").Address Then ActiveSheet.Name = TEXT(Monat(AB1);"MMMM")+" '"+Text(Jahr(AB1));"JJ")

Tut leider nicht...

Das hat auch nicht getan:
  If Target.Address = Range("AB1").Address Then ActiveSheet.Name = TEXT(Monat(Range("AB1"));"MMMM")+" '"+Text(Jahr(Range("AB1"));"JJ")

Was muss ich bei der Umsetzung von ExcelFormeln in VBA-Kiste beachten, oder geht das so gar nicht ?

------------------
Gruß
Heiko

"Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43
und das hat er gesagt lange bevor es SL, WOW, ETC gab !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 19. Dez. 2008 14:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für heiko_hems 10 Unities + Antwort hilfreich

Hm... Eine Möglichkeit wäre, den Macro-Recorder anzuwerfen, die Formel zu editieren, und die Aufnahme zu beenden. Wie die Mach-mir-aus-der-Monatzszahl-einen-Text-Funktion in VBA lautet, weiß ich auch nicht; auf Umwegen hilft der hier:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim rg As Range
Dim strDate As String 'Hilfsvariable für die Blattbezeichnung

    Set rg = Range("A1")

        If Target.Address = rg.Address Then
            strDate = Month(rg)
            Select Case strDate
                Case 1
                    strDate = "Januar"
                Case 2
                    strDate = "Februar"
                Case 3
                    strDate = "März"
                '...
                '...
                Case Else: Exit Sub
            End Select
            strDate = strDate & " '" & Right(Year(rg), 2)
            ActiveSheet.Name = strDate
        End If

    Set rg = Nothing

End Sub


Für den Hinterkopf: Diese Funktion läuft permanent im Hintergrund mit, solange das Blatt bearbeitet wird - und springt nur an, wenn 'rg' auch das Ziel ist.

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 19. Dez. 2008 15:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für heiko_hems 10 Unities + Antwort hilfreich

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then ActiveSheet.Name = MonthName(Month(Cells(1,1))) & " '" & Right(Year(Cells(1,1)),2)
End Sub

für Excelblattbefehle kann man auch die WorksheetFunction nehmen

Code:
Sub snip()
in_englisch = WorksheetFunction.Text(Cells(1,1), "MMMM YY")
auf_deutsch = MonthName(Month(Cells(1,1))) & " '" & Right(Year(Cells(1,1)),2)
End Sub

BTWBy the way (So nebenbei bemerkt) einfach im Objektkatalog nach Year oder Month suchen  und die Hilfe lesen 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

heiko_hems
Mitglied
Freier Architekt


Sehen Sie sich das Profil von heiko_hems an!   Senden Sie eine Private Message an heiko_hems  Schreiben Sie einen Gästebucheintrag für heiko_hems

Beiträge: 1295
Registriert: 14.01.2005

erstellt am: 22. Dez. 2008 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank Zusammen,

@Frederik: das ist tatsächlich zu viel Code für jedes Blatt,

@Thomas: Genau das hab' ich gesucht,
hätte ich aber mangels intimeren VBA-Kenntnissen niemals selbst gefunden !
(Auch wenn ich das in Hilfe oder Objektkatalog nachlese
bleibt da so manches ein großes Rätsel - ich gelobe aber Besserung...)

Geruhsame Tage wünscht

------------------
Gruß
Heiko

"Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43
und das hat er gesagt lange bevor es SL, WOW, ETC gab !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz