Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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
Inhaltsverzeichnis

Tabellenblätter-Index nach Alphabeth

Tabellenblätter-Index nach Alphabeth
08.01.2009 11:19:21
Loetschy
Ich habe folgenden Code um mir in einer Excel-Arbeitsmappe (mit mehr als 50 Tabellenblättern)
auf einem separaten Tabellenblatt einen Index aufzulisten:

Sub Blaetter_auflisten()
Dim i As Integer
Range("A1").Activate
For i = 1 To Sheets.Count
ActiveCell = Sheets(i).Name
ActiveCell.Offset(1, 0).Activate
Next i
End Sub


Wie kann ich den Code so ändern dass er mir pro Buchstabe je einen Index erstellt auf separatem Tabellenblatt ?
Ich meine...
alle Tabellenblätter beginnend mit "A" stehen auf einem Tabellenblatt "INDEX A"
alle Tabellenblätter beginnend mit "B" stehen auf einem Tabellenblatt "INDEX B"
usw.
Danke für die Hilfe !

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter-Index nach Alphabeth
08.01.2009 12:05:00
Chris
Servus Loetschy,
dann brauchst du allein für das deutsche Alphabet aber 26 Index-Tabelleblätter, willst du das wirklich ?
Gruß
Chris
AW: Tabellenblätter-Index nach Alphabeth
08.01.2009 12:22:43
Loetschy

dann brauchst du allein für das deutsche Alphabet aber 26 Index-Tabelleblätter, willst du das wirklich ?


ja, muss ich wohl (ist aber nicht weiter tragisch)
oder was ich mir überlege.... (was evt besser ist, da es schon Buttons für jeden Buchstaben gibt in meiner Excel-Mappe:
Wenn ich 26 Buttons mache (für jeden Buchstabe 1 Button) dann könnte ich hinter jeden der Buttons den eindeutigen Code legen
... Button A = Code, welcher auf dem Tabellenblatt "INDEX" den Index aller Tabellenblätter mit A.. erstellt.
... Button B = Code , welcher auf dem Tabellenblatt "INDEX" den Index aller Tabellenblätter mit B.. erstellt

Anzeige
AW: Tabellenblätter-Index nach Alphabeth
08.01.2009 12:29:00
Wenderhold
hi
Option Explicit
Option Base 1

Public Sub blaetter_index()
Dim i As Integer
' wir tragen alle A in die erste spalte ein
' B in die zweite usw.
Dim nCol, x As Long
Dim wsIndex As Worksheet
Set wsIndex = Sheets.Add(, Sheets(Sheets.Count))
wsIndex.Name = "Index Blatt"
For i = 1 To Sheets.Count - 1
' wir ermitteln aus dem Anfangsbuchstaben die zugehörige spalte
nCol = Asc(Mid(Sheets(i).Name, 1, 1)) - 64
For x = 1 To 65536
If wsIndex.Cells(x, nCol).Value = "" Then
wsIndex.Cells(x, nCol).Value = Sheets(i).Name
Exit For
End If
Next x
Next i
End Sub


der makro erstellt dir ein indexblatt, wobei alle sheets mit A
in der ertsen spalte stehen, b in der zweiten usw.
greeze
e

Anzeige
Fehlerhaft
08.01.2009 12:44:00
D.Saster
Hallo e,

' wir ermitteln aus dem Anfangsbuchstaben die zugehörige spalte
nCol = Asc(Mid(Sheets(i).Name, 1, 1)) - 64


Wer sagt denn, dass die Blattnamen mit einem Großbuchstaben beginnen?
nCol=ASC(UCase(Left(Sheets(i).name,1)))-64
Gruß
Dierk

AW: Fehlerhaft
08.01.2009 13:18:00
Loetschy
Hallo allerseits !
das ist schon mal ne Super - Hilfe von Euch ! (Dazu hier meinen besten Dank !)
aber....
Könnte ich die Indexe nicht pro Buchstaben auf ein Tabellenblatt schreiben ?
Ich möchte das so:
Ich habe in meiner Excel-Datenbank 26 Buttons (A, B, C, D,)
Nun möchte ich hinter den Button A den Code so legen, dass bei Button A - Klick
- auf dem Tabellenblatt "INDEX" der Index aller Tabellenblätter mit "A" oder "a" - beginnend erstellt wird.
den Code passe ich dann an und lege den auch hinter die anderen Buttons, so dass jeweils der Index beginnend mit dem entsprechenden Buchstaben auf dem Tabellenblatt "INDEX" erstellt wird
geht das ?
wisst Ihr was ich meine ?
Anzeige
AW: Fehlerhaft
08.01.2009 14:54:24
Loetschy
Hei !
Eigentlich genau das was ich suchte
aber....
statt auf dem aktuellen Tabellenblatt, sollten die Werte doch auf dem Tabellenblatt namens INDEX ausgegeben werden.
wie pass ich also Deinen Code entsprechend an ?
AW: Wo stehen deine Buttons....
08.01.2009 15:01:42
Chris
...alle auf einem Tabellenblatt, oder auf der jeweiligen Index-Seite?
Bei der jeweiligen Indexseite dann so wie ich's gemacht habe ansonsten:

Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To Sheets.Count
If Not Sheets(i).Name Like "Index*" Then
If Sheets(i).Name Like "B*" Or Sheets(i).Name Like "b*" Then
Sheets("Index B").Cells(65536, 1).End(xlUp).Offset(1, 0) = Sheets(i).Name
End If
End If
Next i
End Sub


dann musst du das jeweilige Sheet benennen, hier Index B.
Gruß
Chris

Anzeige
AW: Wo stehen deine Buttons....
08.01.2009 15:15:00
Loetschy
So langsam kriegen wirs hin (aber nur dank Deiner Hilfe hier !)
meine Buttons stehen alle auf dem selben Tabellenblatt.
dein obiger Code läuft einwandfrei
aber zwei Kleinigkeiten gilt es jetzt noch zu meistern:
- Sobald ein Button gedrückt wird, soll zuerst auf dem entsprechenden Index-Blatt der allenfalls schon vorhandene Index komplett gelöscht werden. (denn sonst wird einfach wieder zuunterst an den bestehenden Index angehängt)
- der erst Wert soll in die Zelle B4 geschrieben werden
Geht das ?
Sorry für die dämlichen Fragen ... aber ich kriegs ohne Hilfe einfach ned hin :-(
Anzeige
AW: Wo stehen deine Buttons....
08.01.2009 15:29:00
Chris
Servus,
dann so:
Option Explicit

Private Sub CommandButton1_Click()
Dim i As Long, lngLetzte As Long
With Sheets("Index A")
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 2)), .Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
End With
If lngLetzte >= 4 Then
Sheets("Index A").Range("B4:B" & lngLetzte).ClearContents
End If
For i = 1 To Sheets.Count
If Not Sheets(i).Name Like "Index*" Then
If Sheets(i).Name Like "A*" Or Sheets(i).Name Like "a*" Then
If Sheets("Index A").Range("B4") = "" Then
Sheets("Index A").Range("B4") = Sheets(i).Name
Else
Sheets("Index A").Cells(65536, 2).End(xlUp).Offset(1, 0) = Sheets(i).Name
End If
End If
End If
Next i
End Sub


Gruß
Chris

Anzeige
AW: Wo stehen deine Buttons....
08.01.2009 16:45:00
Loetschy
ES FUNZT !!!!
Nun will ich noch die gefundenen Indexe verlinken.
Dh. es soll auf einen Index geklickt werden können und dann soll das entsprechende Tabellenblatt geöffnet werden.
Also sozusagen will ich noch die Hyperlinks einfügen für jeden Index-Eintrag
geht das ?
Verständlich was ich meine ?
AW: Wo stehen deine Buttons....
09.01.2009 11:16:54
Chris
Servus,
so:
Option Explicit

Private Sub CommandButton1_Click()
Dim i As Long, lngLetzte As Long, z As Long
With Sheets("Index A")
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 2)), .Cells(Rows.Count, 2).End(xlUp).Row, Rows.  _
_
Count)
End With
If lngLetzte >= 4 Then
Sheets("Index A").Range("B4:B" & lngLetzte).ClearContents
End If
For i = 1 To Sheets.Count
If Not Sheets(i).Name Like "Index*" Then
If Sheets(i).Name Like "A*" Or Sheets(i).Name Like "a*" Then
If Sheets("Index A").Range("B4") = "" Then
Sheets("Index A").Range("B4") = Sheets(i).Name
Sheets("Index A").Hyperlinks.Add Anchor:=Range("B4"), Address:="", SubAddress:= _
Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
Else
Sheets("Index A").Cells(65536, 2).End(xlUp).Offset(1, 0) = Sheets(i).Name
z = Sheets("Index A").Cells(65536, 2).End(xlUp).Offset(0, 0).Row
Sheets("Index A").Hyperlinks.Add Anchor:=Range("B" & z), Address:="", SubAddress:= _
Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
End If
End If
End If
Next i
End Sub


Gruß
Chris

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige