Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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
SheetName auslesen
24.06.2018 13:06:16
Peter
Hallo zusammen
Im linken Fenster vom Makroeditor sehe ich die einzelnen Sheets, zB Tabelle12 (Test)
mit dem folgenden Code
sCod = CodeName 'ActiveSheet.CodeName 'Tabelle12
ThisWorkbook.VBProject.VBComponents(sCod).Activate
sTab = ActiveSheet.Name 'Test
erhalte ich den Tabellennamen "Test"
Wie kann ich den Namen "Test" bekommen, ohne dass ich das Tabellenblatt aktiviere?
Danke für Eure Hilfe
Pepi

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SheetName auslesen
24.06.2018 13:08:58
Hajo_Zi
Hallo Pepi,
ActiveSheet.name' das soll ja nicht sein.
oder
Variable="Test"

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
MsgBox Tabelle12.Name ... owT
24.06.2018 13:12:32
Matthias
Sheetname auslesen
24.06.2018 13:43:25
Peter
Hallo zusammen
Offenbar habe ich mich unklar ausgedrückt...
Ich habe ein Makro TabellenName() auf dem Tabellenblatt, dort wo unter anderen auch
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ist
Sub TabellenName()
dim sCod$, sTab$
sCod = CodeName 'zB Tabelle12
ThisWorkbook.VBProject.VBComponents(sCod).Activate
sTab = ActiveSheet.Name 'zB Test
End Sub
Das Problem ist, dass wenn ich im linken Fenster ein Projekt "Tabelle12 (Test)" aktiviere, bleibt die aktivierte Tabelle immer noch die gleiche (zB Tabelle11)
Nun möchte ich den 2. Schritt elegant umgehen (Tabellen aktivieren geht bekanntlich langsam und führt zu einem flattern)
mfg Pepi
Anzeige
AW: SheetName auslesen
24.06.2018 13:40:56
Peter
Hallo zusammen
Offenbar habe ich mich unklar ausgedrückt...
Ich habe ein Makro TabellenName() auf dem Tabellenblatt, dort wo unter anderen auch
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ist
Sub TabellenName()
dim sCod$, sTab$
sCod = CodeName 'zB Tabelle12
ThisWorkbook.VBProject.VBComponents(sCod).Activate
sTab = ActiveSheet.Name 'zB Test
End Sub

Das Problem ist, dass wenn ich im linken Fenster ein Projekt "Tabelle12 (Test)" aktiviere, bleibt die aktivierte Tabelle immer noch die gleiche (zB Tabelle11)
Nun möchte ich den 2. Schritt elegant umgehen (Tabellen aktivieren geht bekanntlich langsam und führt zu einem flattern)
mfg Pepi
Anzeige
AW: SheetName auslesen
24.06.2018 14:58:09
Sepp
Hallo Peter,
beschreibe erst mal, was du erreichen willst.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: SheetName auslesen
24.06.2018 16:04:12
Peter
Hallo Sepp
Ich brauche einfach den Blattnamen
sTab = Tabelle1.name gibt mit den Blattnamen
da ich aber nicht weiss ob es Tabelle1, 2,oder x ist muss ich über CodenName gehen
sCod = CodeName gibt "Tabelle1"
leider funktioniert aber
sTab = CodeName.name nicht - Fehler - wie ist denn hier die Synthax
vielen Dank Pepi
AW: SheetName auslesen
24.06.2018 16:30:24
Sepp
Hallo Peter,
wenn du den Codenamen weißt, wo liegt dann das Problem?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
und wenn du...
24.06.2018 16:49:10
Sepp
... statt "Ich brauche einfach den Blattnamen" beschreiben würdest, was du im Endeffekt erreichen willst, dann gibt es bestimmt eine Lösung.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
SheetName auslesen
24.06.2018 18:59:10
Peter
Hallo Sepp
Ich habe hier eine Beispielsdatei mit dem Makro "to_Makros_Kopieren()" hochgeladen.
Dieses Makro kopiert die Makros des aktuellen Moduls auf die anderen Module.
Ich habe Arbeitsmappen mit vielen Tabellen, die alle die gleichen Makros haben. Wenn etwas ändert kann ich damit schnell wieder alle angleichen. Es ist mir aber schon passiert, dass das falsche Modul als Vorlage benutzt wurde.
https://www.herber.de/bbs/user/122280.xlsm
Das Makro funktioniert einwandfrei (habe es in diesem Forum gefunden und auf meine Bedürfnisse angepasst)
Was mich stört ist dieser sheets(xy).activate
Meine Frage wäre nochmals wie kann ich auf Grund vom CodeNamen "Tabelle2" den Blattnamen "Blatt_2" auslesen.
lg Pepi
Anzeige
AW: SheetName auslesen
24.06.2018 19:17:02
Sepp
Hallo Peter,
Private Sub to_Makros_Kopieren() 'Su180618, Su171206, Su170225, 150503 HerberForum * Makro_kopieren * kopiert alle Makros vom aktuellen TabellenBlatt in die anderen TabellenBlätter 
  Dim objCodeModule As Object, objSh As Worksheet
   
  If MsgBox(Me.Name & " * " & Me.CodeName & vbLf & "ist dies die richtige Tabelle?", vbQuestion + vbYesNo) = vbYes Then
    Set objCodeModule = ThisWorkbook.VBProject.VBComponents(Me.CodeName).CodeModule
    For Each objSh In ThisWorkbook.Worksheets
      If Not objSh Is Me Then
        With ThisWorkbook.VBProject.VBComponents(objSh.CodeName).CodeModule
          .DeleteLines 1, .CountOfLines
          .InsertLines 1, objCodeModule.Lines(1, objCodeModule.CountOfLines)
        End With
      End If
    Next
  End If
  
  Set objCodeModule = Nothing
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Aber warum stellst du die Event-Codes nicht in "DieseArbeitsmappe" dann stehen sie in jeder Tabelle zur Verfügung und du kannst sie zentral Verwalten.
Die Anderen Codes in ein allgemeines Modul und die Kopiererei hat ein Ende.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: SheetName auslesen
24.06.2018 19:45:02
Peter
Lieber Sepp
Ganz herzlichen Dank für Deine Anpassungen
Es funktioniert alles bestens.
Dass man die Events-Codes unter "Diese Arbeitsmappe" kopieren kann für alle Sheets wusste ich gar nicht (smile) - ein ganz neuer Ansatz. Es gibt zwar ein paar Ausnahmen, wo sie nicht funktionieren dürfen oder anders, doch werde ich mich in naher Zukunft damit beschäftigen.
lg Peter

79 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige