Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
308to312
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
308to312
308to312
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
AW: Danke
15.09.2003 13:37:00
Rainer Quaas
Danke Nike,

Gruß Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige