Live-Forum - Die aktuellen Beiträge
Datum
Titel
07.12.2024 17:25:12
07.12.2024 16:21:30
07.12.2024 15:22:10
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

wechsel zwischen, über "öffnen" geöffnete *.xls

wechsel zwischen, über "öffnen" geöffnete *.xls
16.02.2005 16:25:22
Florian
Hallo,
folgendes Problem:
Ich habe es soweit hin bekommen, dass ich mit Hilfe eines buttons meherer Dateien öffnen kann. Jetzt möchte ich, beim klicken auf einen weiteren Button dass ein weiteres Makro aktiviert wird welches Daten aus den Mappen sammelt und in ein Neues Dokument kopiert.
Z.B.
Drei Mappen mit beliebigen Namen ("A", "B", "C") die über den 1. button geöffnet werden.
Ausgelöst durch den 2. Button: erstellen eines Dokumentes ("Bericht"), wechsel zu "A", Inhalt der Zelle D22 lesen, wechsel zu "Bericht", in A1 einfügen, wechsel zu "B", Inhalt der Zelle D22 lesen, wechsel zu "Bericht", in A2 einfügen, wechsel zu "C", D22 lesen, wechsel zu "Bericht", einfügen in A3.
Jetzt zu "A" wechseln und den Inhalt der Zelle D23 lesen und in A4 kopieren.
Weil das nicht reicht, variiert die Zahl der Dokumente auch noch (mal ABC, mal ABCDE)
Jetzt noch eine weitere Schwirigkeit, Die Dokumente ("A", "B", "C") haben mehrere Tabellen deren Namen aber nicht variabel sind und somit teil des Makros seien können. ("Tabelle1", "Tabelle2", "Tabelle3")
Wechsel zu Dokument "A" wechsel zu Tabelle 2 ("Tabelle2"), lesen des Inhaltes von D22, wechsel zu Dokument "Bericht", einfügen in A30 (weiter wie oben). Im Dokument "Bericht" soll alles in eine Tabelle...
Leider überfordert es meine nicht guten VBA-Kenntnisse...
Irgendwie müssen die Dokumente beim öffnen ja einem Synonym/Alias zugewiesen werdenzuweisen damit sich das Makro auf das Sysnonym beziehen kann.
Für mich sind es zu viele unbekannte, Anzahl, Namen, dann der Wechsel zwischen den Tabellen...
Mein erster Button ist wie folgt programmiert...
-----------------------------------------

Private Sub importieren_Click()
Dim varRetVal As Variant
Dim n         As Integer
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Eine oder mehrere Dateien zum Öffnen auswählen", _
MultiSelect:=True)
If IsArray(varRetVal) Then
On Error Resume Next
For n = LBound(varRetVal) To UBound(varRetVal)
Workbooks.Open varRetVal(n)
Next
On Error GoTo 0
End If
End Sub

-----------------------------------------
Vielen Dank im Voraus
Florian

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wechsel zwischen, über "öffnen" geöffnete *.xl
Uduuh
Hallo,
Füge dir ein Sheet namens z.B. 'FileListe' ein. Das kannst du auch ausblenden.
Dahinein kannst du die Namen der geöffneten Dateien schreiben und hast sie somit immer zur Verfügung.

Private Sub importieren_Click()
Dim varRetVal As Variant
Dim n         As Integer, z as integer
Sheets("Fileliste").Range("A:A").ClearContents
z=1
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Eine oder mehrere Dateien zum Öffnen auswählen", _
MultiSelect:=True)
If IsArray(varRetVal) Then
On Error Resume Next
For n = LBound(varRetVal) To UBound(varRetVal)
Workbooks.Open varRetVal(n)
Sheets(FileListe").cells(z,1)=Activeworkbook.Name
z=z+1
Next
On Error GoTo 0
End If
End Sub

Die Wechsel zwischen den Workbooks kannst du dir sparen
Set WbkBericht=Workbooks.add
set wshBericht=wbkBericht.sheets(1)
Set wbkA=Workbooks(Thisworkbook.sheets("FileListe").cells(1,1))
Set wbkb=Workbooks(Thisworkbook.sheets("FileListe").cells(2,1))
with wshbericht
.Range("A1")=wbkA.sheets(1).Range("D22")
.Range("A2")=wbkB.sheets(1).Range("D22")
'undsoweiter evtl kann man das über eine Schleife elegante lösen
end with
Gruß aus'm Pott
Udo

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige