gibt es eine Funktion, mit der ich mir die in der geöffneten Datei enthaltenen Tabellenblätter auflisten kann?
Vielen Dank!
lg, Mike
:-)
For Each ws In ThisWorkbook.Worksheets
MsgBox (ws.Name)
Next ws
Marko
Und die zweite Frage: Wo genau schreibe ich den Code rein?
Dank' Dir schon mal!
Mike
:)
hier mal ein Beispiel:
Viel Spaß,
Andreas
Gibt Excel dann eine Msg.Box aus oder schreibt es den Inhalt in Zellen?
Und wo schreibe ich den Code rein, z.b. so, dass er beim Öffnen der Datei die Blätter prüft und aktualisiert?
Vielen Dank!
lg, Mike
:)
also das vorher gegebene Beispiel zeigt die Namen in einer MsgBox an.
Hier mal ein neues Beispiel. Dieses Makro musst Du in das Klassenmodul "DieseArbeitsmappe" einfügen:
Beim Öffnen der Datei, wird dann in jedes Tabellenblatt in Zelle A1 der Name des Tabellenblattes geschrieben.
Viel Spaß,
Andreas
Hmmh.. Na wenn das noch nicht mal klar ist wird's schwierig ;o)
Wie/Wann möchten Sie denn die Info haben? Per Knopf/Makro/beim Start? Wie heisst den die Tabelle?
Vielleicht als Makro (Playknopf drücken/ in erste Zeile den Namen geben und dann erstellen drücken)
Dann dies dort eintragen:
Sub Makroname ()
Dim ws As WorkSheet
Dim i As Integer
i=1
For Each ws In ThisWorkbook.Worksheets
ActiveSheet.Cells(i,1).Value = ws.Name
i=i+1
Next ws
End Sub
Ja und dann auf Wunsch mit dem Playknopf aus dem Excelmenü ausführen.
Marko
Die Idee mit dem i=i+1 ist gut, die werde ich gleich testen.
lg, Mike
:)
als Funktion könnte das so aussehen (in ein Modul kopieren):
Anschließend in Excel in irgendeine Zelle:
=blatt()
Und alle Blätter werden nebeneinander in die Zelle geschrieben.
Gruß Boris
Private Sub Worksheet_Activate()
Dim ws As Worksheet
Dim i As Integer
i = 1
For Each ws In ThisWorkbook.Worksheets
ActiveSheet.Cells(i, 1).Value = ws.Name
i = i + 1
Next ws
End Sub
Und es funktioniert.
Jetzt habe ich eine weitere Frage - aber es wird komplizierter...:
In jedem dieser Tabellenblätter stehen verschiedene Kategorien, mal nur eine, aber manchmal auch drei oder vier. Ich würde jetzt gerne in die Übersicht [Code oben] mit aufnehmen, dass geprüft wird, wieviele dieser Kategorien vorhanden sind und dass sie mit aufgeführt werden.
Es geht im Prinzip um folgendes: Die Tabellenblätter sind Interpreten, dazugehörig findet sich in den Blättern eine Discographie. In der Übersicht sollen immer die vollständigen LP-Titel und die Interpreten aufgenommen werden. (Jetzt ist vielleicht verständlicher, was ich will).
lg, Mike
:)
Private Sub Worksheet_Activate()
Dim ws As Worksheet
Dim i As Integer
i = 1
For Each ws In ThisWorkbook.Worksheets
ActiveSheet.Cells(i, 1).Value = ws.Name
i = i + 1
Next ws
End Sub
Und es funktioniert.
Jetzt habe ich eine weitere Frage - aber es wird komplizierter...:
In jedem dieser Tabellenblätter stehen verschiedene Kategorien, mal nur eine, aber manchmal auch drei oder vier. Ich würde jetzt gerne in die Übersicht [Code oben] mit aufnehmen, dass geprüft wird, wieviele dieser Kategorien vorhanden sind und dass sie mit aufgeführt werden.
Es geht im Prinzip um folgendes: Die Tabellenblätter sind Interpreten, dazugehörig findet sich in den Blättern eine Discographie. In der Übersicht sollen immer die vollständigen LP-Titel und die Interpreten aufgenommen werden. (Jetzt ist vielleicht verständlicher, was ich will).
lg, Mike
:)
Private Sub Worksheet_Activate()
Dim ws As Worksheet
Dim i As Integer
i = 1
For Each ws In ThisWorkbook.Worksheets
ActiveSheet.Cells(i, 1).Value = ws.Name
i = i + 1
Next ws
End Sub
Und es funktioniert.
Jetzt habe ich eine weitere Frage - aber es wird komplizierter...:
In jedem dieser Tabellenblätter stehen verschiedene Kategorien, mal nur eine, aber manchmal auch drei oder vier. Ich würde jetzt gerne in die Übersicht [Code oben] mit aufnehmen, dass geprüft wird, wieviele dieser Kategorien vorhanden sind und dass sie mit aufgeführt werden.
Es geht im Prinzip um folgendes: Die Tabellenblätter sind Interpreten, dazugehörig findet sich in den Blättern eine Discographie. In der Übersicht sollen immer die vollständigen LP-Titel und die Interpreten aufgenommen werden. (Jetzt ist vielleicht verständlicher, was ich will).
lg, Mike
:)
Worksheet (also Tabellenblatt) oder Workbook(also die xls-Datei)?
*Zum Aufruf beim Öffnen der xls-Datei
-In Arbeitsmappe:
Private Sub Workbook_Open()
'Code
End Sub
*Zum Aufruf beim Aktivieren eines beliebigen Blatts
- In Arbeitsmappe
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Code
End Sub
Marko
man benötigt noch mehr Info, wo stehen denn genau die Kategorien? (welche Zellen) Was willst Du eigentlich genau machen, es wirkt doch alles ziemlich wirr.
Wenn ich es richtig verstanden habe, willst Du in einem Tabellenblatt eine Auflistung aller anderen Tabellenblätter, mit Name (=Interpret) und allen CDs in diesem Tabellenblatt??? Dazu braucht man aber wie gesagt den genauen Aufbau dieser Tabellenblätter...
Andreas
Im Ergebnis soll in dem "Übersichts"-Sheet beim Betreten Interpret und LP aufgelistet sein (später will ich noch eine automatische Verlinkung auf den entsprechenden Sheet, allerding nur Interpretbezogen, nicht auch noch LP-bezogen).
Der LP-Name kann an eine bestimmte Stelle in dem jeweiligen Sheet geschrieben werden, so dass ein Makro ihn immer findet. Man könnte auch noch die Anzahl der LP's dieses Interpreten eingeben, damit das Makro weiss, wieviele LP-Namen es übernehmen soll.
Die Vorgehensweise stelle ich mir so vor:
1.) Herausfinden des Namen des Sheets (=Interpret)
2.) Herausfinden, wieviele LP's aufgelistet sind
3.) Sooft den Sheetnamen(=Interpreten) in Spalte A aufführen, wie LP's vorhanden sind und dazu in Spalte B den entsprechenden LP-Titel
Ist es jetzt klarer geworden? Sorry für das Wirrwarr...
lg, MikeS
:)