Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellenblätter erzeugen/be-"namsen" über VBA
#1
Guten Morgen in die Runde ...

eine schnelle Frage:

Ich erzeuge per VBA aus einem existierenden "Blanko"-Tabellenblatt ( das eine bestimmte Tabellenform enthält )
in meiner Arbeitsmappe ein neues Tabellenblatt mit gleichem Inhalt aber anderem Namen ...

Sub ErzeugeQCopy()
   Dim array1 As Variant 
   Dim i As Integer
   array1 = Array(5, 3, 1, 2, 4)

   For i = 1 to UBOUND(array1)
       Worksheets("Q-blanko").Copy after:=Worksheets(Worksheets.Count)
      Worksheets(Worksheets.Count).Name = "Q-copy" & i
   Next
End Sub


Der Name des kopierten Tabellenblattes beinhaltet somit auch den Laufindex.


Wenn ich in die Eigenschaften der neuen Tabellenblätter schaue, gibt es für jedes Blatt (natuerlich) auch den
entsprechenden Tabellennamen, wie ich ihn in der For Schleife definiert und zugewiesen habe...

Mein Problem:
Im beigefügten Bild sieht man im grünen Rahmen einen von mir per VBA definierten Tabellen NAME ... hier "Q-xyz" ...
( über: Worksheets(Worksheets.Count).Name = "Q-xyz" ), so wie ich ihn dann auch in den Eigenschaften sehe.

Es gibt in den Eigentschaften aber auch das rote Feld (NAME) ... hier "Blatt5" ... den ich zwar manuell im VBA Tool editieren
kann, wenn ich auf das entsprechende Element gehe, aber den ich scheinbar nicht per VBA Code verändern kann.

Nun die Frage 1 :
Ist es möglich, auch auf (NAME) per VBA zuzugreifen und diesen zu verändern ?

Und die Frage 2 :
Ich erzeuge die neuen Blätter ja per VBA aus der Blanko-Vorlage mit der FOR Schleife über das Array wie im obigen Code Beispiel
und möchte hinterher diese neuen Blätter anhand ihres Namens - den ich über NAME vergebe - sortieren ( und möchte vorher nicht
das Array sortieren). Geht das evtl besser über (NAME), wenn ich denn darauf zugreifen könnte?

Vielleicht hat einer von Euch ja eine gute Idee Smile.

Vielen Dank schon einmal vorab.

Gruss, Michael


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
oops ... sorry ... kleine Korrektur :


Sub ErzeugeQCopy()
   Dim array1 As Variant 
   Dim i As Integer
   array1 = Array(5, 3, 1, 2, 4)

   For i = 1 to UBOUND(array1)
       Worksheets("Q-blanko").Copy after:=Worksheets(Worksheets.Count)
       Worksheets(Worksheets.Count).Name = "Q-copy" & array1(i)
   Next
End Sub


Der Name des kopierten Tabellenblattes beinhaltet somit auch den i-ten Wert des Arrays.
Es kämen die Tabellenblätter "Q-copy5", "Q-copy3", "Q-copy1", "Q-copy2", "Q-copy4" heraus.

Diese möchte ich dann sortieren, als Endergebnis soll die Blätter in der xls in der Reihenfolge stehen:
"Q-copy1" ... "Q-copy2" ... "Q-copy3" ... "Q-copy4" ... "Q-copy5"

Wenn ich zusätzlich Q-copy's später mal einbaue über VBA, zB "Q-copy41", "Q-copy21" und "Q-copy22"
möchte ich diese neuen Blätter chronologisch einsortieren :
"Q-copy1" ... "Q-copy2" ... "Q-copy21" ..."Q-copy22" ..."Q-copy3" ... "Q-copy4" ... "Q-copy41"... "Q-copy5"


Habt Ihr eine Idee ?
Antworten Top
#3
Hallo,

was du da im rot-markierten Bereich siehst, ist der Systemname deiner Tabellenblattobjekte. Diesen Namen würde ich nicht verändern. (Dem Himmel sei es geklagt, dass das überhaupt möglich ist)! In meinen Makros arbeite ich vorzugsweise mit diesem Namen, dann können die Nutzerdefinierten Namen geändert werden, bis der Arzt kommt, das Makro läuft unbeirrt weiter, und das ist auch gut so.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • maikel408
Antworten Top
#4
Hallo Klaus-Dieter,

vielen Dank für Deine Einschätzung und Hinweise Smile.
Ich bastel mal weiter ...

Grüße,
Michael
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste