Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

worksheet.codename im VBA-Code ändern ?

1,270 views
Skip to first unread message

M.Pfensig

unread,
Jan 28, 1999, 3:00:00 AM1/28/99
to
Hallo,

folgendes Problem:

mit dieser Schleife

for i = 1 to 50
Worksheets(Worksheets.Count).Copy
after:=Worksheets(Worksheets.Count) ' jeweils letzte
Tabelle kopieren
next

möchte ich 50 Kopien der jeweils letzten Tabelle einer Mappe erzeugen.
Leider wächst der 'codename' der Tabellen durch diese Form des Kopierens
auf > 32 bytes und Excel stürzt bei i > 25 ab. (Codename sieht
dann so aus: "Tabelle11111111111111111111111").
Laut VBA-Hilfe kann man auf den 'codename' nur lesend zugreifen, über
'Eigenschaften' lässt er sich aber manuell ändern.
Gibt es trotzdem eine Möglichkeit, den 'codename' im Code zu manipulieren ?

Um Rat fragt:

Marco Pfensig

Hans W. Herber

unread,
Jan 28, 1999, 3:00:00 AM1/28/99
to
Hallo Marco,

wie folgt:

Sub Kopieren()
Dim i%, n%
For i = 1 To 50
n = Worksheets.Count
Worksheets(n).Copy after:=Worksheets(n)
ActiveSheet.Name = "Blatt" & i
With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName)
.Name = ActiveSheet.Name
End With
Next i
End Sub

hans

########################################################
# Herber's Excel-Server - letztes Update: 26.01.99 #
# http://www.herber.de - Microsoft MVP - Excel #
# Excel-Wettbewerb: http://www.herber.de/osterformel #
# Neu bei der Freeware: AddIn "Zurück zur Sprungmarke" #
########################################################
--

M.Pfensig schrieb in Nachricht ...

Werner Janz

unread,
Jan 28, 1999, 3:00:00 AM1/28/99
to
Hallo Marco,

Von hinten durch die Brust in's Auge könnte es klappen. Versuch's mal wie in
Deinem
Code eingeflickt.

Tschüß
Werner

--
Bei Antwort bitte NOSPAM entfernen /
Please remove NOSPAM at response
--------------------------------------------------------------


M.Pfensig schrieb in Nachricht ...
>Hallo,
>
>folgendes Problem:
>
>mit dieser Schleife
>
> for i = 1 to 50
> Worksheets(Worksheets.Count).Copy
>after:=Worksheets(Worksheets.Count) ' jeweils letzte
>Tabelle kopieren


Application.VBE.ActiveVBProject.VBComponents(activesheet.CodeName).name="T"&
Format(i;"000")

> next
>
>möchte ich 50 Kopien der jeweils letzten Tabelle einer Mappe erzeugen.
>Leider wächst der 'codename' der Tabellen durch diese Form des Kopierens
>auf > 32 bytes und Excel stürzt bei i > 25 ab. (Codename sieht
>dann so aus: "Tabelle11111111111111111111111").
>Laut VBA-Hilfe kann man auf den 'codename' nur lesend zugreifen, über
>'Eigenschaften' lässt er sich aber manuell ändern.
>Gibt es trotzdem eine Möglichkeit, den 'codename' im Code zu manipulieren ?
>

Frank Arendt-Theilen

unread,
Jan 29, 1999, 3:00:00 AM1/29/99
to
On Thu, 28 Jan 1999 12:31:33 +0100, "M.Pfensig" <mpfe...@tzl.de>
wrote:

>Hallo,
>
>folgendes Problem:
>
>mit dieser Schleife
>
> for i = 1 to 50
> Worksheets(Worksheets.Count).Copy
>after:=Worksheets(Worksheets.Count) ' jeweils letzte
>Tabelle kopieren

> next
>
>möchte ich 50 Kopien der jeweils letzten Tabelle einer Mappe erzeugen.
>Leider wächst der 'codename' der Tabellen durch diese Form des Kopierens
>auf > 32 bytes und Excel stürzt bei i > 25 ab. (Codename sieht
>dann so aus: "Tabelle11111111111111111111111").
>Laut VBA-Hilfe kann man auf den 'codename' nur lesend zugreifen, über
>'Eigenschaften' lässt er sich aber manuell ändern.
>Gibt es trotzdem eine Möglichkeit, den 'codename' im Code zu manipulieren ?

Hallo Marco,
statt Excel die Namensvergabe zu überlassen, organisiere es selbst,
wie folgt:

Sub BlattFünfzig_x_Kopieren()
Name = Worksheets(Worksheets.Count).Name
For I = 1 To 50
Worksheets(Name).Copy after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = Name & I
Next
End Sub

MfG Frank
--
E-Mail: Thei...@t-online.de

0 new messages