Separate Ergebnisliste aus Dateienpool in Excel

Liebe Wissende,
ich habe eine Vielzahl identisch aufgebauter Dateien (Baustellenlisten).
Was ich gern hätte:
Ich möchte aus den Baustellenlisten bestimmte Zellen auslesen und in einer Übersichtsliste zusammentragen.
Besonderheit:
Es existiert bereits eine Anzahl Baustellenlisten und es werden wöchentlich mehrere neue Baustellenlisten neu angelegt - die Speichersyntax ist immer gleich aufgebaut - Baustellennummer.

Kann mir da jemand helfen ?
Vielen Dank schonmal und
Gruß
Uwe

ich habe eine Vielzahl identisch aufgebauter Dateien
(Baustellenlisten).
Ich möchte aus den Baustellenlisten bestimmte Zellen auslesen
und in einer Übersichtsliste zusammentragen.
Es existiert bereits eine Anzahl Baustellenlisten und es
werden wöchentlich mehrere neue Baustellenlisten neu angelegt

  • die Speichersyntax ist immer gleich aufgebaut -
    Baustellennummer.

Hi Uwe,
das ist mir viel zuwenig Information.
Ich weiß jetzt daß du viele gleichstrukturierte Dateien hast und daß da jeweils in einer Spalte Baustellennummern stehen und dahinter in den Zellen der Zeilen irgendwas *mutmaß*
Und du willst bestimmte Zellen auslesen.

So, und nu, was soll ich damit anfangen?

Gruß
Reinhard

Ach Reinhard, Danke erstmal für Dein Engagement.
Ich habe immer gleich aufgebaute Baustellenlisten einer Vielzahl von Baustellen (Mobilfunkstandorte)- pro Baustelle eine Liste. In diesen Listen werden auch buchhalterische Daten erfasst bzw. berechnet - und diese möchte ich für turnusmäßige Reports aus den Baustellenlisten in eine separaten Liste auslesen und zusammentragen - möglichst automatisch. Die auszulesenden Werte stehen in den Baustellenlisten immer an der gleichen Stelle (Beispiele: Summe aller Nebenleistungen / Gesamtsumme aller Leistungen / Rohertrag / u.s.w.)
Index soll eine Kostenträger-Nr. sein, die sich ebenfalls in der Baustellenliste findet und von denen es bisher 10 Stück gibt - allerdings immer nur eine in jeder Baustellenliste. Das mit den Baustellennummern war falsch - es kommt auf die Kostenträger an.

Ich hoffe, daß sich die Anzahl der offenen Fragen etwas minimiert hat und Du jetzt ungefähr weiß, wo mein Problem liegt.
Nochmals Danke und Gruß
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Uwe,

ich habe eine Vielzahl identisch aufgebauter Dateien

Ich möchte aus den Baustellenlisten bestimmte Zellen auslesen
und in einer Übersichtsliste zusammentragen.

welche Zellen

  • die Speichersyntax ist immer gleich aufgebaut -
    Baustellennummer.

nun ja, das ist alles ziemlich vage, aber ich glaube, du kannst dir den folgenden code selbst anpassen

in einer Excel-Datei mit Alt+F11 den vb-Editor öffnen, den code der Prozedure in ein Modul kopieren und am besten einem Button zuweisen. Der übergeordnete Ordner dieser Datei und der Ordner mit den Baustellendateien sollten verschieden sein. Ich empfehle, die Baustellendateien seperat in einem Ordner zu sammeln.

die prozedure listet aus allen ExcelDateien (offen oder geschlossen) in dem angegebenen Ordner (hier: „D:\Marion Daten…\TestordnerDateienAuslesen“ bitte ändern)
den Pfad sowie den Zellinhalt der ersten und der letzten Zelle in Spalte B aus und trägt die Werte in eine Tabelle in Tabelle1 in die Spalten A bis C ein

Option Explicit

Sub DateienAuslesen()
 Dim rng As Range
 Dim arrFiles As Variant
 Dim intCounter As Integer, intRow As Integer, intAct As Integer
 Dim strPath As String, strFormula As String, strTmp As String
 Application.ScreenUpdating = False
 strPath = "D:\Marion Daten\Entwicklung\TestordnerDateienauslesen" 
 arrFiles = FileArray(strPath, "\*.xls")
 For intCounter = 1 To UBound(arrFiles)
 If FileDateTime(strPath & arrFiles(intCounter)) 0 Then
 rng.Offset(0, 2).Formula = "=" & strTmp & "b" & intRow
 Else
 rng.Offset(0, 2).ClearContents
 End If
 End If
 Next intCounter
End Sub

Function FileArray(strPath As String, strPattern As String)
 Dim arrDateien()
 Dim intCounter As Integer
 Dim strDatei As String
 If Right(strPath, 1) "\" Then strPath = strPath & "\"
 strDatei = Dir(strPath & strPattern)
 Do While strDatei ""
 intCounter = intCounter + 1
 ReDim Preserve arrDateien(1 To intCounter)
 arrDateien(intCounter) = strDatei
 strDatei = Dir()
 Loop
 FileArray = arrDateien
End Function

Gruß
Marion

OT Emailadresse posten
Hallo Uwe,

das Team gibt sich große Mühe deine Einlogemailadresse zu schützen.
Nach meiner Kenntnis wird sie nicht von Emailgrabschprogrammen aus dem Internet gefunden, nur hier angezeigt.

Okay, ich bastle sowieso schon länger etwas in Excel, was einen völlig anderen Zweck hat, falls ich da endlich mal den Code zusammenkriege, üperprüfe ich das gleich mal so für mich.

Aber Postings werden von diesen Mistprogrammen durchleuchtet, auch im Archiv also ewig.

Solange noch keiner auf deinen letzten Beitrag geantwortet hat, kannst du ihn ja selbst löschen und ohne Emailadresse neu einstellen oder wenn schon eine Antwort kam, könntest du den Moderator bitten, die Adresse aus dem Beitrag zu löschen.

Und zu „Reinhard hat mich ja hängen lassen.“, das finde ich schon recht heftig.

Am 3.8 hast du bei w-w-w angefragt, am 3.8. habe ich nachgefragt weil die Anfrage m.E. recht Informationsarm war.

Am 5.6 bringst du einige wenige Informationen mehr an und am 6.8 hat dir Marion eine Makrolösung vorgestellt.

Warum soll ich, während noch keine Antwort auf Marions Code kommt mir 'nen Kopp machen?

Und vielleicht kaum zu glauben, vielleicht hatte ich vom 5-6.8 schlichtweg etwas anderes gemacht als mir dein Problem vorzunehmen.

Gruß
Reinhard

Hallo Reinhard,
das mit der Mailadr. war dumm von mir - da hast Du Recht. Danke für den Löschtip.
Was meine „Bemerkung“ angeht - das habe ich nicht so gemeint. Entschuldige bitte.
Ich muss unbedingt eine Lösung für das Problem finden und habe auch noch momentan wenig Zeit. Bin etwas zappelig.
In VB nicht firm, stochere ich im Nebel rum - probiere Pivot / Querry / u.s.w. - furchtbar. Daß meine Angaben für Euch zu vage sind, liegt sicher auch daran. Ich hatte wohl gedacht, es gibt einen heißen Tip und ich kann dieser Spur folgen. Eine fertige Lösung wollte ich den Forumern nicht zumuten und mir auch nicht servieren lassen.
Lag ich falsch, als ich vermutete, daß es eine in Excel integrierte Lösung für dieses Problem gibt ? Man hat mehrere gleich aufgebaute Listen aus denen man bestimmte Werte (gleiche Zellbezeichnung) in einer Extra-Liste zusammenholen möchte… Meinetwegen gibt es in mehrfach vorhandenen Baustellenlisten immer je eine bestimmte Zelle, die den Umsatz enthält. Und diese Umsätze möchte ich in einer „Umsatzliste“ zusammentragen.
Was ist nötig, damit mir jemand, der helfen möchte - auch helfen kann ? Sagt es mir.

Beste Grüße an Dich
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Uwe,

Lag ich falsch, als ich vermutete, daß es eine in Excel
integrierte Lösung für dieses Problem gibt ? Man hat mehrere
gleich aufgebaute Listen aus denen man bestimmte Werte
(gleiche Zellbezeichnung) in einer Extra-Liste zusammenholen
möchte… Meinetwegen gibt es in mehrfach vorhandenen
Baustellenlisten immer je eine bestimmte Zelle, die den Umsatz
enthält. Und diese Umsätze möchte ich in einer „Umsatzliste“
zusammentragen.

es gibt tatsächlich eine entsprechende Funktion in Excel unter ->Daten, ->Konsolidieren

am besten du liest erst einmal die Hilfe von Excel. Einfach „konsolidieren“ eingeben und zunächst „die Informationen zum Konsolidieren von Daten“ lesen. Da erhältst du schon mal einen Überblick, wie du in deinem Fall am besten vorgehst.

Gruß
Marion

Hi Uwe,
ich sehe hier absolut kein Fortkommen, lese bitte mal das Nachfolgende, geklaut von Peter hasselröders Forum.
Gruß
Reinhard

Wie stelle ich eine Frage?

Eine Frage gut zu stellen, ist die halbe Miete der Antwort.

Zuerst löst du deine Frage aus deinem Projekt heraus und reduzierst diese auf dein eigentliches Problem.

Bsp.:
Du hast eine Lagerverwaltung, in denen du Tierfutter verwaltest. In dieser werden Berechnungen durchgeführt, wieviel wo was vorhanden ist.
In einem Tabellenblatt Artikelliste hast du in Spalte G die Artikelnummern stehen und in Spalte H die Futtermittelnamen.
Nun möchtest du in einer Tabelle Futterkontrolle bei Eingabe in der Zelle C114 einer Artikelnummer in Zelle D114 den Futternamen haben.

95 % sind überflüssig

Fast alles davon interessiert für das eigentliche Problem überhaupt nicht.
Keinen Menschen interessiert es, wie die Tabellenblätter heißen, wofür du das brauchst und überhaupt.

Dein losgelöstes Problem lautet: Wie finde ich zu der Nummer den Artikel und zwar in einem anderen Tabellenblatt.

Du machst nun ein allgemeinverständliches Beispiel und zwar mit Standardzellpositionen und Standardtabellennamen.
Alles andere läßt du weg, also:

Die Frage:

In Tabelle1 habe ich in Spalte A Nummern und in B daneben Bezeichnungen.
Nun möchte ich gerne in Tabelle2 in Zelle A1 die Nummer eingeben können und in Zelle B1 soll dann die Bezeichnung erscheinen.
Du siehst, ganz einfach und für jeden verständlich.

Hallo Reinhard,
verstanden - OK.

gegeben sei:

  • ein Hauptordner HO
  • in diesem sind Unterordner UO1… UOn
  • in jedem dieser UO befindet sich eine Datei UD1 (n)

gesucht ist:
eine Routine / ein Macro.

Diese(s) soll bewirken:
In eine vorhandene Liste LI folgende Werte importieren aus den UD (1…n) aller UO (1…n)

  • in LI-A1 soll UD1-X1
  • in LI-A2 soll UD2-X1
  • in LI-B1 soll UD1-Y1
  • in LI-B2 soll UD2-Y1
  • in LI-Cn-1 soll UDn-1-Z1
  • in LI-Cn soll UDn-Z1

Danke und Gruß
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]