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

Bild

Betrifft: wechsel zwischen, über "öffnen" geöffnete *.xls
von: Florian
Geschrieben am: 16.02.2005 16:25:22
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
Bild

Betrifft: AW: wechsel zwischen, über "öffnen" geöffnete *.xl
von: Uduuh
Geschrieben am: 16.02.2005 20:19:02
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "wechsel zwischen, über "öffnen" geö"