Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

automatisches auslesen der dateien in einem ordner!.





Frage

Hi ihr Profis! ich habe ein schwerwiegendes probl. ich würde gerne mehrere mappen je tabelle 1 die gleich aufgebaut sind und alle in einem ordner befinden automatisch auslesen lassen und wieder in einer pivot oder tabelle summiert ausgegeben werden. das auslesen muss ordnerbezogen sein und nicht dateiabhängig die daten befinden sich alle in der gleichen struktur höchstens mal eine zeile mehr oder weniger.hoffe es kann mir einer von euch helfen. mfg

Antwort 1 von coros

Moin baerline24,

das kann man auf jeden Fall mit VBA erreichen. Allerdings benötigt man dazu noch einiges an Infos.

Um wieviele Dateien handelt es sich?

Ist die Anzahl der Dateien, die sich in dem Ordner befinden, immer gleich, oder ändert sich die Anzahl?

Welchen Bereich möchtest Du auslesen lassen?

Wohin sollen die Daten kopiert werden, also wohin soll der Wert aus der Quelldatei in die Zieltabell kopiert werden?


Usw, usw.

Wie Du siehst, kommen doch noch einige Fragen auf. Wenn Du die obigen beantwortest und dazu genaustens beschreibst, was Du erreichen möchtest, dann kommt am Ende sicherlich auch eine gute Lösung für Dich heraus.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von baerliner24

Die Dateianzahl ändert sich mit der Zeit im laufenden anstieg ich möchte einfach nur die Dateien hineinpacken in den Ordner und in einem übergeordneten die Auswertung auswirft. .
Der Bereich ist von A2 bis J variabel der ausgelesen wird bei der Zieltabelle ist es egal

mfg ich danke DIR für deine schnelle antwort.

Antwort 3 von baerliner24

Sorry, Asche auf mein Haubt sie Tabelle geht bis von A2 bis H variabel ich würde mich sehr über eine Lösung freuen.

Antwort 4 von coros

Hi baerliner24,

suuuuper Deine genaue Beschreibung, über das, was Du erreichen möchtest. Jetzt bin ich fast genau so schlau wie vorher. Aber egal, dann zieh ich halt noch ein bisschen. Was? Na Dir die Erklärungen aus der Nase. ;-)

Sei nicht böse über den obigen Text, aber das musste sein. Wie ich schon in meiner ersten Antwort geschrieben habe, wäre eine genaue Erklärung sinnvoll, damit eine einigermaßen ordentliche Lösung herauskommt. Eine Frage, die mich im Moment beschäftigt: Was meinst Du mit
Zitat:

Tabelle summiert ausgegeben werden
?

Erkläre das doch bitte etwas genauer, damit ich weiß, was ich in dem VBA Code einarbeiten muss. Allerdings kannst Du Dir Zeit mit der Antwort lassen, da ich gleich einen termin habe und heute mit aller Wahrscheinlichkeit nicht mehr dazu komme, den VBA Code fertig zu stellen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von baerliner24

ok ich habe mehrere kostenauswertungen in form einer pivottabelle die tabelle befindet sich in der arbeitsmappe auf der zweiten seite pro projekt .

(beispielpfad: C:Dokumente und EinstellungenUserEigene DateienProjektordner )(in diesem ordner sind alle projekte enthalten )

diese pivotabellen beinhalten materialkosten, fremdleistung,fremdleistungmaterial usw. (als überschrift in den spalten )

die pivots sind von spalte A2 bis spalte T zeile ist ungenau da ich ja im ordner mehrere projekte habe und die auswertung immer anderslang ist pro abteilungen manchmal mehr abteilung manchmal weniger abt. (als überschrift in den zeilen ). so jetzt wollte ich gerne das ich in einem untergeordneten ordner

(beispielpfad: C:Dokumente und EinstellungenUserEigene DateienProjektordner Auswertungsordner)

eine datei ist die alle Arbeitsmappen (je Tabelle2) ausliest und sich auch immer aktualisiert und die summe (+) aller projekte ausgibt materialkosten, fremdleistung,fremdleistungmaterial usw. steht in der spalten als überschrift und links wieder die abteilungen als überschrift )

so das ich nur die pivots in den projektordner stelle und ich immer eine aktuelle gesamtauswertung habe .ich hoffe ich hab es jetzt einigermassen erklären können und hoffe das du jetzt damit was anfangen kannst.

Antwort 6 von baerliner24

Hi Coros! Kannst du was mit der Beschreibung anfangen??
würde mich über eine Antwort freuen.

gruss

Antwort 7 von coros

Hi baerliner24,

sorry, dass ich erst jetzt wieder von mir hören lasse, aber es ging beim besten Willen nicht eher. Ich muss nämlich auch noch zwischen den Lösungen, die ich hier ab und zu gebe, etwaszum Füllen der Haushaltskasse machen, sprich arbeiten. ;-)

Nachfolgenden Code kopiere in ein Standardmodul und weise es z.B. einer Befehlsschaltfläche zu.

Sub Verzeichnis_öffnen_Daten_auslesen()
Dim Verzeichnis As String, Zeile As Integer, Zeile As Long, _
Dateityp As String, Dateiname As String, Aktive_Datei As String, _
Neuer_Dateiname As String, Letzte_Zeile_Tab_neu As Long
Application.ScreenUpdating = False
Verzeichnis = "D:Test"
Aktive_Datei = ActiveWorkbook.Name
Aktives_Blatt = ActiveSheet.Name
Worksheets.Add
Neues_Blatt = ActiveSheet.Name
Dateityp = "*.xls"
Dateiname = Dir(Verzeichnis & Dateityp)
Zeile = 1
Do While Dateiname <> ""
Sheets(Neues_Blatt).Cells(Zeile, 1).Value = Dateiname
Zeile = Zeile + 1
Dateiname = Dir
Loop
Zeile = 2
letzte_Zeile = Sheets(Neues_Blatt).Range("A65536").End(xlUp).Row
For Wiederholungen = 1 To letzte_Zeile
Neuer_Dateiname = Sheets(Neues_Blatt).Cells(Wiederholungen, 1)
Workbooks.Open Filename:=Verzeichnis & Neuer_Dateiname
Windows(Neuer_Dateiname).Activate
Letzte_Zeile_Tab_neu = Workbooks(Neuer_Dateiname).Sheets(2).Cells.SpecialCells(xlLastCell).Row
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 2).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("A2:A" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 3).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("B2:B" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 4).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("C2:C" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 5).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("D2:D" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 6).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("E2:E" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 7).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("F2:F" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 8).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("G2:G" & Letzte_Zeile_Tab_neu))
Workbooks(Aktive_Datei).Sheets(Aktives_Blatt).Cells(Zeile, 9).Value = _
Application.WorksheetFunction.Sum(Sheets(2).Range("H2:H" & Letzte_Zeile_Tab_neu))
Zeile = Zeile + 1
Next Wiederholungen
Application.DisplayAlerts = False
Sheets(Neues_Blatt).Delete
Application.DisplayAlerts = True
End Sub


Da die Textlänge im Supportnet begrenzt (5000 Worte) folgt im nächsten Beitrag die Erklärung.

Antwort 8 von coros

Hier die Fortsetzung zum vorigen Beitrag:

Bei dem Code wird das Verzeichnis D:Test ausgelesen. Die Namen der vorhandenen Dateien werden auf einem neu erstellten Tabellenblatt aufgelistet. Es wird dann eine Datei geöffnet, die letzte beschriebene Zeile ermittelt und aus den Spalten A bis H die Summe pro Spalte gebildet und in die Datei zur Auswertung in die Spalten B bis I geschrieben. Ich habe das jetzt für Spalte A bis H gemacht, da Du einmal als letzte Spalte die Spalte J, dann die Spalte H und in Deinem letzten Beitrag von Spalte T schreibst. Da ich nun nicht wusste, welche Spalte nun die letzte ist, habe ich mich für H entschieden. Danach wird die automatisch geöffnete Datei geschlossen und es wird die nächste geöffnet. Deren Summenwerte werden wieder von Spalte B bis I aufgeführt, allerdings eine Zeile tiefer. Das ganze wird für alle Dateien erledigt, die in dem Verzeichnis vorhanden sind. Zum Schluss wird das neu erstellte Tabellenblatt, auf dem die Dateinamen aufgeführt wurden wieder gelöscht. Da Deine Dateien ja in einem anderen Ordner als dem Ordner Test liegen, musst Du den Pfad in der Zeile

Verzeichnis = "D:Test"

noch anpassen. Schreibe zwischen die Anführungsstriche Deinen Pfad, in dem die Dateien sich befinden. Da es hier im Forum immer wieder zu Anzeigefehler kommt, wenn es um den Backslash geht und ich dass auch erst sehe, wenn ich den Beitrag abgesendet habe, ob der Backslash richtig angezeigt wird, mache ich Dich noch drauf aufmerksamm, dass nach dem C: ein Backslash stehen muss und dann nach jedem Verzeichnisnamen wieder einer.

Ich hoffe, dass Dich meine Lösung weiterbringt. Wenn Du nicht wissen solltest, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann Anleitung zum VBA Projekt “Modul" vorbei. Dort habe ich dazu eine bebilderte Anleitung.

Solltest Du dennoch Probleme haben oder etwas an dem Code ist nicht so, wie Du es Dir vorgestellt hast, dann melde Dich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem

Antwort 9 von Baerliner23

Hi Coros!
vielen dank aber da hab ich entweder etwas falsch erklärt oder ..... es gab ein verständigungsproblem.

ich meinte nicht die komplette summe der einzelnen projekte sondern ....

in den projekten gibt es je Projektmappe eine Tabelle2 die spaltenüberschrift bsp stunden,kosten, material
zeilenbezeichnung (Abteilung)bsp Tischlerei,Schlosserei,Verwaltung
so jetzt habe ich aber auch projekte wo in der zeilenbezeichnung nur Tischlerei und Schlosserei ist und in anderen alle ausser schlosserei usw.
jetzt wolte ich eine Tabelle die mir die Summe von alle prolekten die stunden der Tischlerei,Schlosserei,Verwaltung ( jeweils)
usw auswirft also es müssen die ergebnisse der projekte aber abteilungsspezifisch geordnet werden wenn du noch ein wenig zeit hättest ich könnte dir natürlich auch ein bsp mailen wenn du magst ??? wäre sehr nett aber schonmal ein grossen grossen lob an dich!!!

mfg ,

Antwort 10 von coros

Nabend Baerliner23,

da mir im Moment die nötige Phantasie fehlt um mir den Aufbau Deiner Tabelle vorstellen zu können, wäre es sicherlich ratsam, wenn Du mir ein Beispiel senden könntest. Wobei das Beispiel schon nahe an der Realität sein sollte, um unnötige Lösungen in die verkehrte Richtung zu vermeiden. Also, dann schicke die Datei an meine E-Mail:coros@excelbeispiele.de. Ich schaue dann mal, was ich da anstellen kann, damit Du rund herum zufrieden bist. ;-)

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 11 von coros

Hi,

ich noch mal. Was ich in dem letzten Beitrag vergessen habe zu schreiben: Wenn Du mir eine Mail schickst, dann binde bitte irgendwie das Wort Supportnet mit in die Betreffzeile ein. Da ich alle Mails, deren Absender ich nicht kenne, ungelesen lösche, ist dass ein Hinweis für mich, dass die Mail aus dem Supportnet stammt.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: