Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus mehreren Tabellenblättern auslesen

Daten aus mehreren Tabellenblättern auslesen
11.11.2019 10:46:23
Josi
Hallo zusammen in meinem Auswertungsblatt stehen in Spalte A ab Zeile 1 alle Lizenznummern.
Nun habe ich in einem Ordner in dem alle gespielten Turniere (38) sind. Alle Excelblätter sind gleich aufgebaut. In Spalte B ab Zeile 9 stehen die Lizenznummern der Teilnehmer. Und in Zelle B1 der Ort.
Nun sollen in das Auswertungsblatt (in dem alle Lizenznummern stehen) ab Spalte E die Orte eingetragen werden, wenn die Lizenznummer im Turnierblatt vorkommt. (Siehe angefügte Blätter)
Auswertung: https://www.herber.de/bbs/user/133089.xlsx
Turnier: https://www.herber.de/bbs/user/133090.xlsx
Ich bedanke mich schon mal im Voraus für eure Hilfe
Schöne Grüße
Josi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus mehreren Tabellenblättern auslesen
11.11.2019 10:50:24
SF
Hola,
Dreamland kommt woher? Das steht nicht in der anderen Datei.
Gruß,
steve1da
AW: Daten aus mehreren Tabellenblättern auslesen
11.11.2019 11:15:26
Josi
Es sind 38 solcher Ergebnisblätter in einem Ordner die Turniere fanden an verschiedenen Orten statt.
Schöne Grüße
Josi
AW: Daten aus mehreren Tabellenblättern auslesen
11.11.2019 19:09:13
volti
Hallo Josi,
falls das Thema noch offen sein sollte, hier mal ein Ansatz, wie Du die Übernahme aus den 38 Blättern erreichen kannst.
Angenommen wurde, dass der Code in der Ergebnisdatei enthalten ist. Diese darf daher keine .xlsx sein, sondern muss eine ausführbare Version .xlsm oder .xlsb sein.
Den Code dort in ein Modul kopieren.
Angenommen wurde ebenfalls, dass sich die Ergebnisdatei mit im betreffenden Ordner befindet und ansonsten sich dort ausschließlich die Importdateien befinden.
Leider konnte ich das nicht ausreichend testen, da ich Deine Vorraussetzungen und Dateien ja nicht habe. Probiere es einfach mal aus...
Sub OrteUebernehmen()
  Dim sDatei As String, sPfad As String
  Dim QWSh As Worksheet, ZWSh As Worksheet
  Dim QWKb As Workbook
  Dim iZeile As Long, iOutZeile As Long, iSpalte As Integer
 
  With Application
   .ScreenUpdating = False
   .Calculation = xlCalculationManual
  End With
 
'  sPfad = "C:\MeinPfad\"                        'ggf. anpassen oder weg
  sPfad = ThisWorkbook.Path & "\"               'ggf. weg
  sDatei = Dir(sPfad & "*.xlsx")
  Set ZWSh = ThisWorkbook.Sheets("Import")      'Blattreferenz setzen
 
  Do While sDatei <> ""
   If sDatei <> ThisWorkbook.Name Then
    Workbooks.Open Filename:=sPfad & sDatei     'Datei öffnen
    On Error Resume Next
    Set QWKb = ActiveWorkbook
    Set QWSh = QWKb.Sheets("Ergebnisse")        'Quellblattreferenz setzen
    If Not QWSh Is Nothing Then
     For iZeile = 9 To QWSh.UsedRange.Rows.Count
      iOutZeile = 0
      iOutZeile = Application.WorksheetFunction.Match( _
          QWSh.Cells(iZeile, "B").Value, ZWSh.Range("A:A"), 0)
      If iOutZeile > 0 Then
        For iSpalte = 5 To QWSh.UsedRange.Columns.Count + 5
          With ZWSh.Cells(iOutZeile, iSpalte)
           If .Value = "" Or .Value = QWSh.Range("B1").Value Then
              .Value = QWSh.Range("B1").Value   'Text übernehmen und raus
              Exit For
           End If
          End With
        Next iSpalte
      End If
     Next iZeile
    End If
    QWKb.Close SaveChanges:=False               'Datei schließen, nicht speichern
   End If
   sDatei = Dir                                 'Nächste Datei
  Loop
 
  With Application
   .ScreenUpdating = True
   .Calculation = xlCalculationAutomatic
  End With
 
  MsgBox "Bin Fertig", vbOKOnly Or vbInformation, "Turnierauswertung"
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Daten aus mehreren Tabellenblättern auslesen
12.11.2019 10:26:24
Josi
Hi Karl-Heinz
funktioniert an sich super.
Nur übernimmt er keine doppelten Turnierorte wenn ein Turnier zweimal am gleichen Ort stattfindet übernimmt er ihn nur einmal.
Kann man das noch ändern?
Schöne Grüße
Josi
AW: Daten aus mehreren Tabellenblättern auslesen
12.11.2019 16:42:09
volti
Hallo Josi,
falls noch Bedarf besteht...
        For iSpalte = 5 To QWSh.UsedRange.Columns.Count + 5
          With ZWSh.Cells(iOutZeile, iSpalte)
           If .Value = "" Then
              .Value = QWSh.Range("B1").Value   'Text übernehmen und raus
              Exit For
           End If
          End With
        Next iSpalte

Die Spaltenschleife müsste entsprechend geändert werden, so dass nur nach einem neuen Eintrag in ein leeres Feld rausgesprungen wird. Dann sollte es gehen...
VG KH
Anzeige
AW: Daten aus mehreren Tabellenblättern auslesen
12.11.2019 11:12:19
Piet
Hallo Josi
um dir auf die schnelle zu helfen, nimm mal in der 2. For Next Schleife diesen Befehl raus: - Exit For
Dann müste die Schleife bis zum Ende durchlaufen, und alle Daten finden.
Ich habe auch noch eine Lösung ohne die Dateien zu öffnen, arbeite aber noch daran.
mfg Piet
AW: Daten aus mehreren Tabellenblättern auslesen
12.11.2019 15:33:45
Piet
Hallo Josi
hier meine Beispieldatei mit einer Ordner auflisten Funktion. Dazu in Zelle C1 den richtigen Pfad eingeben, dann werden alle 38 Turnier Tabellen aufgelistet. Die Daten holt der 2. Button ohne die Dateien zu öffnen. Da sieht man alles was in jeder Tabelle drin steht. Die Datei war bereits entwickelt, deshalb lade ich sie zusaetzlich hoch.
https://www.herber.de/bbs/user/133145.xlsm
mfg Piet
Anzeige
AW: Daten aus mehreren Tabellenblättern auslesen
12.11.2019 15:53:42
Hajo_Zi
Hallo Piet,
lasse den Fragesteller entscheiden ob offen.
Es ist heute nicht mehr üblich eine Rückmeldung zu geben und so ist der Beitrag über 6 Tage offen.
Das ist nur meine Meinung zu dem Thema.

AW: Daten aus mehreren Tabellenblättern auslesen
12.11.2019 16:29:38
Josi
Eigentlich gebe ich immer eine Rückmeldung.
Aber ich sitze nun mal nicht den ganzen Tag am PC.
Ich kann mit beiden Lösungen was anfangen bei der ersten mussste ich nur folgende Zeile aus dem Code löschen Or .Value = QWSh.Range("B1").Value
und mit der zweiten habe ich nun alles in einer Datei und kann es weiterbearbeiten.
Vielen Dank euch 2
Schöne Grüße
Josi
Anzeige

353 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige