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

Forumthread: geöffnete Datei auswählen

geöffnete Datei auswählen
09.08.2019 12:07:21
sigrid
Gute Morgen,
ich möchte gern per Button ausgelöst, die göffneten Dateien aufgelistet
haben, entsprechende Datei auswählen und dort einen Bereich zum Kopieren
auswählen und in die Datei/Sheet einfügen, von der ich gestartet habe.
mfg
sigrid
Anzeige

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: geöffnete Datei auswählen Combobox ?
09.08.2019 12:45:42
sigrid
Hallo,
hatte vergessen, ich würde das mit einer Combobox durchführen oder
Listbox ?
mfg
sigrid
AW: teste mal
09.08.2019 14:14:21
Fennek
Hallo,
je nach xl-Version und der Art wie man Workbooks öffnet, kann es eine oder mehrere Instanzen geben.
Öffne alle relevanten Workbooks und führe den (ungeprüften) Code aus. Werden alle WB's genannt?

sub Test()
for i = 1 to workbooks.count
Tx = workbooks(i).name & vblf
next i
msgbox Tx
end sub
mfg
Anzeige
AW: teste mal
09.08.2019 14:56:45
sigrid
Hallo Fennek,
es wird nur 1 Datei angezeigt obwohl 3 offen sind.
Das ganze in eine Combobox währe spitze,
dann die ausgewählte Datei aktivieren.
mfg sigrid
AW: mehrere Instanzen
09.08.2019 15:04:39
Fennek
Hallo,
das bedeutet, dass mehrere XL-Instanzen geöffnet wurden. Dies kann man (nicht ich) mit API's abfragen, etwas einfacher ginge es auch mit MS Word (Application.Tasks).
Ist diese Abfrage unbedingt notwendig bzw gibt es keinen "Work-around", z.B. dass die XL-Dateien per Makro geöffnet werden?
mfg
(Erst wenn der Code passt kann man darüber nachdenken, wie das Ergbnis dargestellt werden soll (z.B. Combobox)
Anzeige
AW: teste mal
09.08.2019 15:06:48
Hajo_Zi

Option Explicit
Sub Test()
Dim i As Integer
Dim TX As String
For i = 1 To Workbooks.Count
TX = TX & Workbooks(i).Name & vbLf
Next i
MsgBox TX
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
Ja aber
09.08.2019 17:40:50
sigrid
Hallo Hajo,
listet jetzt beide in der MSGBOX auf.
Aber ich wollte dies in in der Combobox angezeigt haben und dann
die ausgewählte Datei aktivieren und zusätzlich den
Dateinamen in der aktiven Tabelle J12 schreiben.
mfg
sigrid
AW: Ja aber
09.08.2019 17:53:08
Hajo_Zi
für
TX = TX & Workbooks(i).Name & vbLf
combobox1.Additem Workbooks(i).Name
Gruß Hajo
Anzeige
Supi Hajo aber noch
09.08.2019 18:00:07
sigrid
Hallo Hajo,
in der Combobox beim Click werden ausgewählt aber
der ausgewählte bleibt nicht in der Combobox stehen und auch nicht in J12.
mfg sigrid
AW: Supi Hajo aber noch
09.08.2019 19:07:38
Hajo_Zi
Hallo Sigrid,
dazu kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue und ich baue keine Datei nach.
Vielleicht sollte die Datei verlinkt werden?
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
Warum Datei senden, wenn...
09.08.2019 19:43:11
sigrid
Hallo Hajo,
warum senden, es ist doch nur eine Combobox drauf und Du hast
das Makro doch soweit fertig.
Der ausgewählte Name soll doch nur in der Combobox angezeigt bleiben und
gleichzeitig der Dateiname in Zelle J12 setzen.
mfg sigrid
AW: Warum Datei senden, wenn...
09.08.2019 20:08:39
Hajo_Zi
Hallo Sigrid,
ich habe im ersten Beitrag das beantwortet was drin steht.
Deine Verfahren ist es in jedem Beitrag eine neue Aufgabe zu schreiben.
Mir ist das über.
Viel Erfolg noch.
Vielleicht findet jemand anderes diese erfahren gut.
Gruß Hajo
Anzeige
Guten Morgen zusammen ! Habe eine Lösung !
10.08.2019 10:45:35
sigrid
Guten Morgen,
hier meine Lösung:
Private Sub ComboBox1_Click()
'  ActiveSheet.ComboBox1.Clear  
es bleibt der Name in der Combobox und der Name wird auch in J10 gesetzt.
EINZIGES Problem:
die angezeigten offenen Dateien werden mehrfach angezeigt.
mfg
sigrid
Anzeige
ComboBox leeren
10.08.2019 12:04:58
{Boris}
Hi,
Du musst die Box vorher immer leeren.
Private Sub ComboBox1_Click()
'  ActiveSheet.ComboBox1.Clear  ComboBox1.Clear
          For i = 1 To Workbooks.Count
' TX = TX & Workbooks(i).Name & vbLf
ComboBox1.AddItem Workbooks(i).Name
Next i
'  MsgBox i
ActiveSheet.Range("j10").Value = ComboBox1.Value
End Sub
VG, Boris
Anzeige
Leider das Gleiche...
10.08.2019 12:16:58
sigrid
Hallo Boris,
wird wie bei mir, nichts angezeigt und nicht kopiert.
wenn ich rausnehme bleibt der ausgewählte Name sichtbar und wird kopiert.
mfg
sigrid
Dim i As Integer
Dim TX As String
ComboBox1.Clear
For i = 1 To Workbooks.Count
' TX = TX & Workbooks(i).Name & vbLf
ComboBox1.AddItem Workbooks(i).Name
Next i
' MsgBox i
ActiveSheet.Range("j10").Value = ComboBox1.Value
Anzeige
Beispielmappe
10.08.2019 13:49:10
{Boris}
Hi,
...lad mal die Mappe hoch.
VG, Boris
Hallo Hajo, Du hast doch...
11.08.2019 11:52:30
sigrid
Guten Morgen Hajo,
nun hast Du doch deine gewünschte Musterdatei !
mfg
sigrid
AW: ich wurde ognoriert
11.08.2019 12:13:18
Hajo_Zi
Hallo sigrid,
ich bin raus, meine Forderung nach einer Datei wurde abgelehnt.
Du lädst sie erst hoch wenn ein andere Dich daran erinnert.
Du ignrierst mich also und darauf habe ich keine Lust.
Alsao halte Dich an Boris.
Gruß Hajo
Anzeige
Stimmt nicht !!! Hajo habe...
11.08.2019 13:46:41
walter
Hallo Hajo,
ich habe jetzt eine Musterdatei erstellt, weil ich ja sonst kein Ergebnis erhalte,
egal ob von Dir, Boris oder andere.
Ich finde deine Reaktion etwas mimosenhaft !
mfg
sigrid
Danke ---))
11.08.2019 16:24:49
walter
Danke ---))
11.08.2019 16:25:16
sigrid
Anzeige
AW: anbei Beispielmappe
12.08.2019 11:22:33
{Boris}
Hi,
trenne die Ereignisse. Im Activate_Ereignis des Tabellenblattes liest Du die Mappen in die ComboBox ein.
Im Change_Ereignis der Box schreibst Du die Auswahl in die Zelle.
Private Sub ComboBox1_Change()
ActiveSheet.Range("j10").Value = Me.ComboBox1.Value
End Sub
Private Sub Worksheet_Activate()
Dim i As Integer
Dim TX As String
ComboBox1.Clear
For i = 1 To Workbooks.Count
Me.ComboBox1.AddItem Workbooks(i).Name
Next i
End Sub
VG, Boris
Anzeige
klappt einwandfrei !!! Danke Boris
15.08.2019 09:38:51
sigrid
;
Anzeige
Anzeige

Infobox / Tutorial

Geöffnete Datei auswählen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und stelle sicher, dass mehrere Dateien geöffnet sind.

  2. Füge eine ComboBox in dein Arbeitsblatt ein. Du kannst das über die Entwicklertools-Registerkarte tun.

  3. Verwende den folgenden VBA-Code, um die Namen der geöffneten Dateien in die ComboBox zu laden:

    Private Sub Worksheet_Activate()
        Dim i As Integer
        ComboBox1.Clear
        For i = 1 To Workbooks.Count
            Me.ComboBox1.AddItem Workbooks(i).Name
        Next i
    End Sub
  4. Setze den ausgewählten Dateinamen in eine Zelle, z.B. J10, wenn der Benutzer eine Auswahl trifft:

    Private Sub ComboBox1_Change()
        ActiveSheet.Range("j10").Value = Me.ComboBox1.Value
    End Sub
  5. Teste die ComboBox: Wechsle zwischen den geöffneten Dateien und wähle eine aus. Der Name sollte in J10 angezeigt werden.


Häufige Fehler und Lösungen

  • Problem: Keine Dateien werden angezeigt.

    • Lösung: Stelle sicher, dass die Dateien in derselben Excel-Instanz geöffnet sind. Mehrere Instanzen können dazu führen, dass nicht alle geöffneten Dateien angezeigt werden.
  • Problem: Der ausgewählte Name bleibt nicht in der ComboBox.

    • Lösung: Überprüfe, ob du den ComboBox1.Clear Befehl im falschen Ereignis verwendest. Es sollte im Worksheet_Activate sein.
  • Problem: Mehrfache Einträge in der ComboBox.

    • Lösung: Stelle sicher, dass die ComboBox beim Aktivieren des Arbeitsblatts immer geleert wird.

Alternative Methoden

Eine alternative Methode zur Auswahl geöffneter Dateien könnte die Verwendung von ListBoxen statt ComboBoxen sein. Der Prozess bleibt ähnlich, aber die ListBox bietet mehr Flexibilität bei der Auswahl mehrerer Elemente.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man eine Auswahl aus der ComboBox trifft und den Dateinamen in Zelle J10 schreibt:

Private Sub ComboBox1_Click()
    ActiveSheet.Range("j10").Value = ComboBox1.Value
End Sub

Wenn du die ComboBox1 anklickst, wird der ausgewählte Dateiname direkt in J10 geschrieben.


Tipps für Profis

  • API-Nutzung: Für fortgeschrittene Benutzer gibt es Möglichkeiten, die Windows API zu verwenden, um geöffnete Dateien auf einem Windows Server 2019 anzuzeigen. Diese Methode erfordert jedoch tiefere Kenntnisse in der Programmierung.
  • Makros automatisieren: Du kannst die kompletten Abläufe in einem Makro zusammenfassen und durch einen Button aktivieren, um die Benutzerfreundlichkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die offenen Dateien auf einem Windows Server 2019 anzeigen?
Durch die Verwendung von VBA und spezifischen API-Aufrufen kannst du die offenen Dateien abfragen, aber das erfordert fortgeschrittene Programmierkenntnisse.

2. Was mache ich, wenn meine ComboBox nicht aktualisiert wird?
Überprüfe, ob die ComboBox1.Clear Methode an der richtigen Stelle im Code platziert ist, um sicherzustellen, dass die ComboBox regelmäßig aktualisiert wird.

3. Kann ich die Auswahl aus der ComboBox auch in einer anderen Zelle speichern?
Ja, du kannst den Zielbereich in der ComboBox1_Change Subroutine anpassen, um die Auswahl in einer beliebigen Zelle zu speichern.

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