Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmtes Sheet neben ActiveSheet per Makro

Forumthread: Bestimmtes Sheet neben ActiveSheet per Makro

Bestimmtes Sheet neben ActiveSheet per Makro
15.09.2003 09:43:31
Rainer Quaas
Hallo Excel-User,

mit folgendem Code kann ich ein bestimmtes Sheet, Name des Sheets steht in Zelle A1 des aktuellen Sheets, neben mein aktuelles Sheet per Makro setzen:

Sheets(ActiveSheet.Range("A1").Value).Move after:=Sheets(ActiveSheet.Index)

Nun habe ich über 80 Sheets in meiner Arbeitsmappe.

Wie erreicht man, dass nur die ersten 15 Zeichen des Blattnamens zur Auswahl herangezogen werden ?

Gruß Rainer
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmtes Sheet neben ActiveSheet per Makro
15.09.2003 09:57:17
Nike
Hi,

mit
left(worksheets(1).name,15)
bekommst du den Ausschnitt, was du da hernaziehen willst hab ich nicht ganz
verstanden, vielleicht hilft's ja auch schon so ;-)

Bye

Nike
AW: Bestimmtes Sheet neben ActiveSheet per Makro
15.09.2003 11:10:51
Rainer Quaas
Hallo Nike,

danke für die schnelle Antwort.

Mein Problem ist etwas komplex, will es aber dennoch kurz skizzieren.

1. Per Makro rufe das Tabellenblatt auf dessen Name in Zelle A1 des aktuellen Tabellenblattes steht.

2. Nur ist der Textstring in Zelle A1 länger als die zulässige Zeichenzahl für den Namen eines Tabellenblattes (daher ist der Blattname etwas verkürzt).

3. Es gibt leider Tabellenblätter deren Name sich erst ab dem 15 Charakter unterscheiden.

Entschuldigung! Jetzt folgt ein Syntax und "Sprach-Code"-Durcheinander.

Also müßte der Code ungefähr folgendenmaßen lauten:

Vielleicht sollte man es mit einer Schleife versuchen?
Dim str As String
str = left(worksheets(1).Range("A1").Value,15)
Application.Screenupdating = False
For i = 2 to ActiveWorkbook.Sheets.Count
Sheets(i).Activate 'dies will ich eigentlich vermeiden
If str = left(ActiveSheet.name,15)
Then ActiveSheet.Move after:= worksheets(1)
Exit Sub
End If
next i

Ich hoffe, Du konntest meinen Gedanken folgen.

Vielleicht geht das ganze aber auch in einer Codezeile?

Gruß Rainer
Anzeige
AW: Bestimmtes Sheet neben ActiveSheet per Makro
15.09.2003 11:22:44
Nike
Hi,
na, da warst du doch schon recht nahe ;-)
mal ohne Activate usw...


Sub test2()
Dim strNam As String
strNam = Left(Worksheets(1).Range("A1").Value, 15)
Application.ScreenUpdating = False
For i = 2 To ActiveWorkbook.Sheets.Count
With Sheets(i)
If strNam = Left(.Name, 15) Then
.Move after:=Worksheets(1)
Exit For
End If
End With
Next i
Application.ScreenUpdating = True
End Sub


Bye

Nike
Anzeige
AW: Danke
15.09.2003 13:37:00
Rainer Quaas
Danke Nike,

Gruß Rainer
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige