Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
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 auswerten, aber wie ?

Daten auswerten, aber wie ?
08.04.2014 08:14:26
Thomas
Guten morgen zusammen ^^
Habe folgendes Problem :
Ich möchte aus ( momentan ca ) 50 verschiedenen Dateien in einer bestimmten Tabelle mehrere werte kopieren und in eine neue Datei einbinden.
Die müssen dann gezählt werden wie oft die sich wieder etc... ( aber dass sollte ich schon hinbekommen :D )
Problem ist dass es bald über 1000 Dateien sein werden und die müssen immer wieder mal geprüft werden.
Wird es dann nicht viel zeit in Anspruch nehmen ?
Sollte man nicht vielleicht lieber die vorhanden selbst per Hand eintragen und für die folgenden Dateien ein Makro schreiben oder meint ihr dass wird nicht so viel zeit in Anspruch nehmen ?
Momentan denke ich eher daran die vorhanden Werte per Hand zu kopieren ( sind unterschiedlich viele, im durchschnitt aber nur ca 5-10 pro Datei )
Wie könnte ich denn das Makro aufbauen mit dem die Werte aus den neuen Dateien automatisch ( beim verlassen z.b. ) in eine neue Datei geschrieben werden ?
mega vielen dank :)

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten auswerten, aber wie ?
08.04.2014 08:32:58
Tino
Hallo,
ich könnte mir vorstellen anhand des erstell Datums der Datei immer nur die neuesten einzulesen.
Das letzte Datum kann man sich in der ges. Datei ablegen und
dort mit dem einlesen wieder anfangen.
Wenn Du ein oder zwei Bsp. Dateien hier rein stellst und angibst welche Daten benötigt werden,
kann man mal versuchen was aufzubauen.
Gruß Tino

AW: Daten auswerten, aber wie ?
08.04.2014 08:42:00
Thomas
Gerade noch mit einem Kollegen gesprochen, es wären momentan nur 30 Dateien wo man die werte selbst austragen müsste... also das geht recht schnell.
Jetzt muss ich eine Lösung finden wie ich in Zukunft das automatisieren kann.
Problem ist einfach :
Hab eine Datei, nach dem bearbeiten drück ich auf ein Button, der startet dann das Makro mit dem die Werte aus Tabelle " TEST " in eine andere Datei in Tabelle "Gesamte Werte" einfügt.
Wie ich Werte von einer Tabelle in eine andere verschiebe ( in einer Datei ) weiß ich, aber wie verschiebe ich von Datei zu Datei ?
Vielen dank :)

Anzeige
AW: Daten auswerten, aber wie ?
08.04.2014 08:44:19
Tino
Hallo,
wie geschrieben, stelle eine oder zwei Beispiele rein
zeige welche Daten benötigt werden und wo diese hin sollen.
Der Rest ist ein Kinderspiel.
Gruß Tino

AW: Daten auswerten, aber wie ?
08.04.2014 09:09:18
Thomas
https://www.herber.de/bbs/user/90030.xlsx
die werte sollen dann, per button in der 90030.xlsx z.B. in Datei Werte.xlsx Tabelle GesWerte kopiert werden.
danach öffne ich z.b. 90031.xlsx, drücke auf den button und dann sollen die werte aus 90031.xlsx nach Datei Werte.xlsx Tabelle GesWerte dazu kopiert.
Muss hinterher die Gesamten Werte zählen. ( also wie oft kam 30 vor, wie oft kam 24 vor .... )

Anzeige
AW: Daten auswerten, aber wie ?
08.04.2014 09:54:07
Tino
Hallo,
hier ein Beispiel zum testen.
Die Datei Werte muss eine xlsm sein, xlsx kann kein VBA.
https://www.herber.de/bbs/user/90032.zip
Gruß Tino

AW: Daten auswerten, aber wie ?
08.04.2014 10:02:44
Thomas
omg
super mega geil :):):):)
komm auf nen kaffee vorbei :D

AW: Daten auswerten, aber wie ?
08.04.2014 10:25:28
Thomas
noch eine frage^^
die Dateien sind in verschiedenen Unterordnern, also jede Datei liegt Separat in einem Ordner, weil in den Ordnern noch dazugehörige Bilddateien liegen etc.
wie kann ich denn sagen dass das makro die Unterordner mit durchsuchen soll ?
er soll z.b. alle ordner ab "Daten" durchsuchen
C:\Users\Thomas\Desktop\Daten\Ordner id\ datei

Anzeige
AW: Daten auswerten, aber wie ?
08.04.2014 11:33:49
Tino
Hallo,
versuche es mit diesem Code.
Sub Test()
Dim strPath$
Dim FSO As Object, objFile As Object, objOrdner As Object
Dim nDate As Date, MaxDate As Date
Dim ArFiles(), ArOrdner(), nPath
Dim maxRow&, maxRowExWB&, n&

'Pfad zu den Dateien anpassen 
strPath = "C:\Users\Thomas\Desktop\Daten"

nDate = Tabelle1.Range("A2") 'letztes Datum 

Set FSO = CreateObject("Scripting.FileSystemObject")
Redim Preserve ArOrdner(n)
ArOrdner(n) = strPath: n = n + 1
GetSubFolders ArOrdner, strPath, FSO, n

If n > 0 Then
    n = 0
    For Each nPath In ArOrdner
        Set objOrdner = FSO.getfolder(nPath)
        For Each objFile In objOrdner.Files
            If objFile.Name Like "*.xlsx" Then
                If objFile.DateCreated > nDate Then
                    Redim Preserve ArFiles(n)
                    ArFiles(n) = objFile
                    If MaxDate < objFile.DateCreated Then MaxDate = objFile.DateCreated
                    n = n + 1
                End If
            End If
        Next objFile
    Next nPath
End If

If n > 0 Then
    Events_ False
    n = n - 1
    Redim Preserve ArFiles(n)
     
    For n = Lbound(ArFiles) To n
        With Workbooks.Open(ArFiles(n), ReadOnly:=True)
            With .Sheets(1)
                maxRowExWB = .Cells(.Rows.Count, 3).End(xlUp).Row
                If maxRowExWB > 1 Then
                    .Range(.Cells(2, 3), .Cells(maxRowExWB, 3)).Copy
                    maxRow = Tabelle1.Cells(Tabelle1.Rows.Count, 3).End(xlUp).Row + 1
                    Tabelle1.Cells(maxRow, 3).PasteSpecial
                End If
            End With
            .Close False
        End With
    Next n
    
    Tabelle1.Range("A2").Value = MaxDate
End If
If n > 0 Then
    With Tabelle1
        .Columns("E:F").Clear
        .Columns(3).Copy Tabelle1.Columns(5)
        .Cells(1, 5) = "Daten Sortiert"
        .Cells(1, 6) = "Anzahl"
        .Range("E1:F1").Font.Bold = True
    
        .Columns(5).RemoveDuplicates Columns:=1, Header:=xlYes
        .Columns(3).Sort .Cells(1, 3), Order1:=xlAscending, Header:=xlYes
        With .Range(.Cells(1, 5), .Cells(.Rows.Count, 5).End(xlUp))
            .Sort .Cells(1, 1), Order1:=xlAscending, Header:=xlYes
        End With
        With .Range(.Cells(2, 5), .Cells(.Rows.Count, 5).End(xlUp))
            .Offset(0, 1).FormulaR1C1 = "=COUNTIF(C3,RC[-1])"
        End With
        .Columns("E:F").EntireColumn.AutoFit
    End With
    Events_ True
Else
    MsgBox "keine neuen Daten!"
End If
End Sub

Private Sub GetSubFolders(myAr, strPfad As String, FSO As Object, Optional LCount As Long)
Dim FO As Object, FU As Object, F As Object
Set FO = FSO.getfolder(strPfad)
Set FU = FO.SubFolders

On Error GoTo ErrZugriff: 'falls zugriff verweigert 
    
For Each F In FU
  If F.Attributes = 16 Then
    Redim Preserve myAr(LCount)
    myAr(LCount) = F.Path
    LCount = LCount + 1
    GetSubFolders myAr, F.Path, FSO, LCount
  End If
Next

ErrZugriff:
End Sub

Sub Events_(booOn As Boolean)
Static iCalc%
With Application
    If booOn = False Then iCalc = .Calculation
    .EnableEvents = booOn
    .ScreenUpdating = booOn
    .DisplayAlerts = booOn
    .Calculation = IIf(booOn, iCalc, xlCalculationManual)
End With
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige