Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: alle offenen Arbeitsmappen auflisten

alle offenen Arbeitsmappen auflisten
24.10.2008 11:27:53
Thomas
Hallo,
wie kann ich in einer Combobox (in Userform eingebette) alle offenen Arbeitsmappen anzeigen lassen?
Und bei der Auswahl einer Datei sollen in einem Listenfeld alle in dieser Arbeitsmappe enthaltenen Tabellenblätter angezeigt werden.
Bin für jeden Tipp dankbar.
Gruß
Thomas
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alle offenen Arbeitsmappen auflisten
24.10.2008 11:36:00
Hajo_Zi
Hallo Thoams,
bei VBA Gut müßte Dich folgender Ansatz weiter bringen.

Sub Offen(Name As String)
BoOffen = False
For Each WbAm In Workbooks
If UCase(WbAm.Name) = UCase(Name) Then
BoOffen = True
Exit For
End If
Next
End Sub



Anzeige
AW: alle offenen Arbeitsmappen auflisten
24.10.2008 11:37:31
Andi
Hi,
kopiere dies in Modul des UserForm:

Private Sub UserForm_Initialize()
Dim wb As Workbook
For Each wb In Workbooks
ComboBox1.AddItem wb.Name
Next wb
End Sub



Private Sub ComboBox1_Change()
Dim ws As Worksheet
ListBox1.Clear
For Each ws In Workbooks(ComboBox1.Value).Worksheets
ListBox1.AddItem ws.Name
Next ws
End Sub


Schönen Gruß,
Andi

Anzeige
AW: alle offenen Arbeitsmappen auflisten
24.10.2008 11:59:46
Thomas
Hallo Hajo und hallo Andi,
vielen Dank für die schnelle Hilfe.
Ich denk den ersten Teile meines Problems habe ich gelöst.
aber wie bekomme ich nun beim Auswählen der Arbeitsmappe in einem Listenfeld im gleichen Userform die in der ausgewählten Arbeitsmappe enthaltenen Blätter aufgelistet.
Gruß
Thomas
Anzeige
AW: alle offenen Arbeitsmappen auflisten
24.10.2008 12:05:58
Andi
Hi,
das macht der zweite Teil meines Codes, das ComboBox1_Change-Event.
Schönen Gruß,
Andi
AW: alle offenen Arbeitsmappen auflisten
24.10.2008 12:15:15
Thomas
Hi Andi,
oh ja, ich habe ganz vergessen mein Listenfeld mit auf´s Userform zu packen.
Danke nochmals.
Jetzt läuft es.
Gruß
Thomas
gern geschehen...
24.10.2008 12:16:28
Andi
Dann kann's natürlich nicht funktionieren... ;-))
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Offene Arbeitsmappen in Excel auflisten


Schritt-für-Schritt-Anleitung

Um alle offenen Arbeitsmappen in einer ComboBox innerhalb einer UserForm anzuzeigen, kannst du folgenden VBA-Code verwenden:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle eine neue UserForm, indem du im Menü Einfügen auf UserForm klickst.
  3. Füge eine ComboBox (ComboBox1) und ein Listenfeld (ListBox1) zur UserForm hinzu.
  4. Füge den folgenden Code in das Modul der UserForm ein:
Private Sub UserForm_Initialize()
    Dim wb As Workbook
    For Each wb In Workbooks
        ComboBox1.AddItem wb.Name
    Next wb
End Sub

Private Sub ComboBox1_Change()
    Dim ws As Worksheet
    ListBox1.Clear
    For Each ws In Workbooks(ComboBox1.Value).Worksheets
        ListBox1.AddItem ws.Name
    Next ws
End Sub
  1. Schließe den VBA-Editor und starte die UserForm. Du solltest nun alle offenen Arbeitsmappen in der ComboBox sehen. Wenn du eine Arbeitsmappe auswählst, werden die enthaltenen Tabellenblätter im Listenfeld aufgelistet.

Häufige Fehler und Lösungen

  • Fehler: Die ComboBox bleibt leer.

    • Lösung: Stelle sicher, dass du die UserForm richtig initialisiert hast und dass mindestens eine Arbeitsmappe geöffnet ist.
  • Fehler: Fehler beim Auswählen einer Arbeitsmappe.

    • Lösung: Achte darauf, dass du die ComboBox1 und ListBox1 korrekt benannt hast. Überprüfe auch, ob die ausgewählte Arbeitsmappe aktiv ist.

Alternative Methoden

Eine alternative Methode zur Auflistung der offenen Arbeitsmappen ist die Verwendung eines einfachen Makros, das alle Namen in eine neue Arbeitsmappe schreibt. Hier ein Beispiel:

Sub AlleArbeitsmappenAuflisten()
    Dim wb As Workbook
    Dim i As Integer
    i = 1
    For Each wb In Workbooks
        Sheets(1).Cells(i, 1).Value = wb.Name
        i = i + 1
    Next wb
End Sub

Führe dieses Makro aus, um alle offenen Arbeitsmappen in der ersten Tabelle einer neuen Arbeitsmappe aufzulisten.


Praktische Beispiele

Ein praktisches Beispiel für die Verwendung der oben genannten Techniken könnte in einem Projekt zur Verwaltung von Finanzdaten bestehen. Du könntest eine UserForm erstellen, die es Nutzern ermöglicht, schnell zwischen verschiedenen Arbeitsmappen zu navigieren und die enthaltenen Tabellenblätter zu sehen.


Tipps für Profis

  • Nutze die With-Anweisung, um deinen Code effizienter zu gestalten und die Lesbarkeit zu erhöhen:
With ComboBox1
    .AddItem wb.Name
End With
  • Erweitere deine UserForm um zusätzliche Funktionen, wie z.B. das Speichern oder Schließen von Arbeitsmappen direkt über die UserForm.

FAQ: Häufige Fragen

1. Wie kann ich die UserForm automatisch öffnen?
Du kannst die UserForm beim Öffnen der Arbeitsmappe automatisch anzeigen lassen, indem du den folgenden Code im Workbook_Open-Ereignis einfügst:

Private Sub Workbook_Open()
    UserForm1.Show
End Sub

2. Funktioniert das auch in Excel für Mac?
Ja, der VBA-Code funktioniert sowohl in Windows- als auch in Mac-Versionen von Excel, solange die VBA-Umgebung unterstützt wird.

3. Was tun, wenn die Liste nicht aktualisiert wird?
Stelle sicher, dass du die UserForm erneut lädst, nachdem eine neue Arbeitsmappe geöffnet wurde, um die Liste der Arbeitsmappen zu aktualisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige