Thema Datum  Von Nutzer Rating
Antwort
17.02.2014 16:54:02 Gast55815
NotSolved
17.02.2014 18:37:01 Gast73484
NotSolved
17.02.2014 18:56:44 Gast27850
NotSolved
Blau Mehrere Excel Datein zusammenführen in eine
18.02.2014 08:53:08 H27
NotSolved
18.02.2014 12:25:54 HR
NotSolved
18.02.2014 12:57:36 Gast66701
NotSolved
18.02.2014 18:57:49 Gast12873
NotSolved

Ansicht des Beitrags:
Von:
H27
Datum:
18.02.2014 08:53:08
Views:
1132
Rating: Antwort:
  Ja
Thema:
Mehrere Excel Datein zusammenführen in eine

< Nicht relevante Spalten sind in der Ansicht ausgeblendet.

müsste ggf. noch angepasst werden

Option Explicit

Private Dateiliste() As String 'Sammelbehälter
Private Dateizähler As Long  'Zähler dazu
'
Sub Dateinzusammenführen()
Dim oDateisatz As Object
Dim Verbindung As String
Dim Abfrage As String
Dim x As Long, y As Long, z As Long 'Zählvariable - Datei, Spalte, Zeile
Dim Ziel As Range 'Zielzelle
Dim v As Long 'Abfrage
'
'****************************************************************************
Rem Variante mit Abfrage Überschreiben, sonst diese Zeile auskommentieren
v = MsgBox("Vorhandene Werte überschreiben ?", vbYesNo, "Sicherheitsabfrage")
'****************************************************************************
Dateizähler = 0
MappenSuche ActiveWorkbook.Path, "*.xl*" 'Aufruf Unterprozedur
If Dateizähler = 0 Then GoTo errorsearch 'keine Dateien
'
Abfrage = "SELECT * FROM " & "[Tabelle1$]"  'Tabellenname ist konstant !
'
On Error GoTo errorquerry
'
For x = 0 To Dateizähler - 1  'Liste abarbeiten
  Set Ziel = [A2] 'wegen Überschrift
  Verbindung = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & Dateiliste(1, x) & ";" & _
    "Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"""
'
  Set oDateisatz = CreateObject("ADODB.Recordset")
  oDateisatz.Open Abfrage, Verbindung, 0, 1, 1  'Tabelle einlesen
'
  If Not oDateisatz.EOF Then  'Tabelle auswerten
    z = -1
    With oDateisatz
      Do While Not .EOF
        z = z + 1
        For y = 1 To .Fields.Count - 1
          If VarType(.Fields(y)) > 1 Then 'keine leeren
          '************************************************
          Rem mit Sicherheitsabfrage, sonst auskommentieren
            If Ziel.Offset(z, y).Value <> "" Then
              If v = 6 Then Ziel.Offset(z, y) = .Fields(y)
            Else
              Ziel.Offset(z, y) = .Fields(y)
            End If
          '************************************************
          
          '********************************************
          Rem ohne Sicherheitsabfrage, dafür einsetzen
            'Ziel.Offset(z, y) = .Fields(y)
          '********************************************
          End If
        Next y
        .movenext
      Loop
    End With
'
  End If
  Set oDateisatz = Nothing
'
Next x
'
On Error GoTo 0
Exit Sub
errorsearch:
MsgBox "Fehler bei Dateisuche"
Exit Sub
errorquerry:
MsgBox "Fehler bei Abfrage"
End Sub
Private Sub MappenSuche(imOrdner As String, Suchbegriff As String)
    Dim oOrdner As Object
    Dim oDatei As Object
    Dim oFSO As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    For Each oDatei In oFSO.GetFolder(imOrdner).Files
        If oDatei.Name Like Suchbegriff Then
          If InStr(oDatei.Name, ActiveWorkbook.Name) = 0 Then
            ReDim Preserve Dateiliste(0 To 1, Dateizähler)
            Dateiliste(0, Dateizähler) = oDatei.Name
            Dateiliste(1, Dateizähler) = oDatei.Path
            Dateizähler = Dateizähler + 1
          End If
        End If
    Next
    For Each oOrdner In oFSO.GetFolder(imOrdner).Subfolders
        MappenSuche imOrdner & "\" & oOrdner.Name, Suchbegriff
    Next
End Sub


 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.02.2014 16:54:02 Gast55815
NotSolved
17.02.2014 18:37:01 Gast73484
NotSolved
17.02.2014 18:56:44 Gast27850
NotSolved
Blau Mehrere Excel Datein zusammenführen in eine
18.02.2014 08:53:08 H27
NotSolved
18.02.2014 12:25:54 HR
NotSolved
18.02.2014 12:57:36 Gast66701
NotSolved
18.02.2014 18:57:49 Gast12873
NotSolved