Thema Datum  Von Nutzer Rating
Antwort
Rot Einlesen _ Importieren
26.10.2013 11:56:32 Markus Langer
NotSolved
27.10.2013 09:37:54 Amicro2000
NotSolved

Ansicht des Beitrags:
Von:
Markus Langer
Datum:
26.10.2013 11:56:32
Views:
1339
Rating: Antwort:
  Ja
Thema:
Einlesen _ Importieren

Hallo liebe VBA Freunde,

im folgenden Programm sollten CSV Dateien, die im gleichen Ordner liegen wie unsere Arbeitsmappe, importiert werden. Leider können wir unseren "Sortiermechanismus" nicht testen, da schon nach dem Block "Datei wird Importiert" kein einziger Zahlenwert in der Exceltabelle ankommt. Kann uns vielleicht jemand erklären wo sich der Fehler versteckt hat? :)

 

Noch ein Wort zum Sortiermechanismus:

Die Dateinamen haben die Form: "12-01-07_230001.csv". (entspricht Datei vom 7.1.2012)

Mit dem Schritt "Auslesen des Monats aus dem Dateinamen" wir der Wert "01" aus dem Namen geschnitten, der folgende Block macht gleiches mit "07" für den Tag.

Als Test sollte dann der Wert aus Zelle B2 der geöffneten Datei in unsere aktive Arbeitsmappe übertragen werden, und zwar in das Tabellenblatt "01" und die Zelle "A7".

Vielen Dank schon mal fürs "aus der Patsche helfen" :)

 

 

 

Sub Main()

' Ersten Eintrag abrufen____________________________________________________________________________________
DName = Dir(ThisWorkbook.Path)

' Schleife beginnen________________________________________________________________________________________
Do While DName <> ""
   
'Datei wird imortiert_______________________________________________________________________________________
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;Pfad", Destination:=Range("$A$1"))
        .Name = DName
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
        , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

'Testberechnung_________________________________________________________________________________________
Zelleninhalt = Cells(2, "B")

'Auslesen des Monats aus dem Dateinamen___________________________________________________________________
DateinameM = Left(ActiveWorkbook.Name, 100)
DateinameMKurz = Right(DateinameM, Len(DateinameM) - 3)
Monat = Left(DateinameMKurz, Len(DateinameMKurz) - 15)
'MsgBox (Monat)

'Auslesen des Tags aus dem Dateinamen___________________________________________________________________
DateinameT = Left(ActiveWorkbook.Name, 100)
DateinameTKurz = Right(DateinameT, Len(DateinameT) - 6)
Tag = Left(DateinameTKurz, Len(DateinameTKurz) - 11)
'MsgBox (Tag)

'Sortieren der Berechneten Werte in die jeweiligen Tabellenblätter 01-12____________________________________________
ActiveWorkbook.Worksheets(Monat).Cells(Tag, "A") = Zelleninhalt

' Nächsten Eintrag abrufen_________________________________________________________________________________
DName = Dir

Loop

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
Rot Einlesen _ Importieren
26.10.2013 11:56:32 Markus Langer
NotSolved
27.10.2013 09:37:54 Amicro2000
NotSolved