Zum Inhalt springen

Einzelene Tabellenblätter aus 100 Arbeitsmappen zu einer Zusammenfügen


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich bin ein absoluter Neuling im bezug auf VBA und Excel.

Ich hab für unsere Firma ein kleines "Rechnungsprogramm in VBA geschrieben was soweit auch ganz gut läuft.

Leider hab ich erst zu spät gemerkt das das ganze Thema eher ein Fall für Access wäre. Naja zu spät.

Nun stehe ich vor einem scheinbar unlösbaren Problem.

Wir haben auf unserem Server einen Ordner angelegt in dem für jeden Monat ein Ordner ist. In diesen Ordner sind dann widerrum je nach Monat zwischen 20 und 30 Excel Dateien wo unsere Rechnungen gespeichert werden.

Der Aufbau dieser Excel Dateien ist wie folgt.

1. Tabellenblatt ist eine Übersicht (TAbellenblattname "Übersicht") der geschriebenen Rechnungen aus diesem Monat, erste Zeile sind die Überschriften und dann von Zeile 2-40 die Daten der Rechnungen. Genutz werden hier die Spalten A-J.

Diese Liste sieht in jeder Excel Datei gleich aus !

NAch diesem Tabellenblatt folgen die die REchnungsblätter. In Summe in jeder Datei 39 Rechnungen.

Die Ordner in denen diese Dateien liegen sind alle gleich aufgebaut und heißen 01 Januar xxx-xxx, 02 Februar xxx-xxx wobei das xxx jeweils für die verwendeten Rechnungsnummer in diesem Monat steht.

Nun aber zu eigentlichen Problem:

Ich würde gerne eine Masterliste aus allen Rechnungen erstellen die auch immer wieder automatisch aktualisiert wird.

D.h. eine Zusammenfassung aller Rechnungsübersichten der einzelnen Exceldateien.

ISt sowas überhaupt möglich ?

Wenn ja wie muss ich vorgehen ich kenn mich echt fast ned aus.

Tut mir leid das ich euch so nen Text gepresst habe ich habe nur versucht alles so gut wie möglich zu beschreiben.

Vielen Dank schon einmal für eure Hilfe :)

Geschrieben

Ja ist möglich - und bei identischen und berechenbaren Aufbau der Ordnerstruktur und der Exceldateien ziemlich kompliziert einfach.

Die Masterliste holt sich auf Anfrage sämtliche in den Ordnern versteckte Informationen, so ist Code nur in der Masterliste, nicht in jede Exceldatei zu hinterlegen.

Zu den GOB's : Diese machen nur dann sinn, wenn sie notwendig sind, also eine Buchführungspflicht besteht, was nicht immer gültig ist. Eine EÜR reicht unter bestimmten Umständen auch aus.

Geschrieben (bearbeitet)

Hi also das folgende hatte ich mal aufm Desktop laufen da hat es auch funktioniert aber ich bekomm das jetzt mit der neuen Ordnerstruktur nicht mehr hin...

Bitte nicht lachen ich hab echt null ahnung und hab mir das ganze erst mal irgendwie zusammengebaut


Sub uebersicht()

Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range

Dim quelle As Object

pfad = Environ("HOMEPATH") & "Pfad" ' Serverpfad funktioniert nicht

datei = Dir(pfad & "*.xls")

Application.ScreenUpdating = False

Zzeile = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

Do While Not datei = ""

Set quelle = Workbooks.Open(pfad & datei)


For i = 2 To 40

    suche = quelle.Sheets(1).Cells(i, 1).Value

    With ThisWorkbook.Sheets(1).Columns(1)

        Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)

        If AZelle Is Nothing Then

            quelle.Sheets(1).Rows(i).Copy Destination:=.Cells(Zzeile, 1)

            Zzeile = Zzeile + 1

        End If

    End With

Next i

quelle.Close

datei = Dir

DoEvents

Loop

Application.ScreenUpdating = True

End Sub

Danke erst mal

<edit> Bitte Code-Tags verwenden, dann bleibt auch die Formatierung erhalten </edit>

Bearbeitet von grueni
Geschrieben

Es geht nicht darum das ihr meine Verzeichnisstruktur kennen sollt sondern mir z.B. erklärt wie man auf einen Server bzw. einen Ordner von einem Server verweist.

Dann weiß ich nicht ob das was ich bisher geschrieben habe überhaupt für sowas geeignet ist, geschweige denn ob es richtig ist.

Ich hatte gehofft das es evtl Ergänzungen gibt.

Vielen Dank all denen die mir zu helfen versuchen

Geschrieben

In erster Linie hab ich erst mal n Problem den Pfad auf den Server zu legen ...

Und dann ist da immer noch das Problem das Excel mit nicht die Ordner durchschaut und die Excel Dateien durchsucht, kopiert und einfügt.

HAtte gedacht das der Pfad wie folgt ausschauen muss

//Serverdaten/Rechnungen 2010/

die Ordner heißen dann wie folgt

01 Januar 2010

02 Febraur 2010

etc

es wurde bei meinem Pfad den ich angewendet hatte nicht ausgeführt oder ich habe den Fehler "Ungültige ... " weiß die genaue Benennung nicht mehr.

Geschrieben

Hoppala da war ich oben wohl etwas abwesend so sollte es eigentlich aussehen:D

In erster Linie hab ich erst mal n Problem den Pfad auf den Server zu legen ...

Und dann ist da immer noch das Problem das Excel mit nicht die Ordner durchschaut und die Excel Dateien durchsucht, kopiert und einfügt.

HAtte gedacht das der Pfad wie folgt ausschauen muss

\\Serverdaten\Rechnungen 2010\

die Ordner heißen dann wie folgt

01 Januar 2010

02 Febraur 2010

etc

es wurde bei meinem Pfad den ich angewendet hatte nicht ausgeführt oder ich habe den Fehler "Ungültige ... " weiß die genaue Benennung nicht mehr.

Geschrieben

So nachmal eine Ergänzung

mit folgendem Pfad funktioniert es, aber leider nur wenn der Ordner bei mir aufm Desktopm liegt.

pfad = Environ("HOMEPATH") & "\Desktop\Test\"
hier sind die Dateien in einem Ordner und liegen im Ordner Test aufm Desktop So nun habe ich die Rechnungen aber auf Server liegen das müsste dann doch so aussehen :
pfad = Environ("HOMEPATH") & "\\Serverdaten\Rechnungen 2010\ 01 Januar\"

Das funktioniert schon mal nicht und außerdem hätte ich ja dann nur den Januar geöffnet und müsste den rest auch nochmal öffnen.

Was gibt es hier für eine Möglichkeit ?

Ich hänge nur noch an dem Pfad der Rest funktioniert

Geschrieben

So hab jetzt selber eine Lösung gefunden.

Der Code hier funktioniert:

Sub uebersicht()

Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range

Dim quelle As Object

pfad = "\\Medico1\Serverdaten\Rechnungen 2010\01 Januar 0040-\"

datei = Dir(pfad & "*.xls")

Application.ScreenUpdating = False

Zzeile = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

Do While Not datei = ""

Set quelle = Workbooks.Open(pfad & datei)


For i = 2 To 40

    suche = quelle.Sheets(1).Cells(i, 1).Value

    With ThisWorkbook.Sheets(1).Columns(1)

        Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)

        If AZelle Is Nothing Then

            quelle.Sheets(1).Rows(i).Copy Destination:=.Cells(Zzeile, 1)

            Zzeile = Zzeile + 1

        End If

    End With

Next i

quelle.Close

datei = Dir

DoEvents

Loop

Application.ScreenUpdating = True

End Sub
Und wenn man mehrere Ordner durchsuchen möchte dann muss man einfach nur nochmal einen teil des Codes anhängen.
pfad = "\\Medico1\Serverdaten\Rechnungen 2010\Rechnungsblöcke\"

datei = Dir(pfad & "*.xls")

Application.ScreenUpdating = False

Zzeile = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

Do While Not datei = ""

Set quelle = Workbooks.Open(pfad & datei)


For i = 2 To 40

    suche = quelle.Sheets(1).Cells(i, 1).Value

    With ThisWorkbook.Sheets(1).Columns(1)

        Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)

        If AZelle Is Nothing Then

            quelle.Sheets(1).Rows(i).Copy Destination:=.Cells(Zzeile, 1)

            Zzeile = Zzeile + 1

        End If

    End With

Next i

quelle.Close

datei = Dir

DoEvents

Loop

Application.ScreenUpdating = True

ISt vielleicht nicht umbedingt die schönste Lösung aber sie funktioniert zumindest.

Dank an alle die versucht haben mir zu helfen :)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...