MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 13.09.2017, 11:53   #1
Chaotikos
Neuer Benutzer
Neuer Benutzer
Hinweis Excel2007 - problem beim einlesen von csv dateien

Hab ein kleines Problem. Ich möchte csv Daten über ein Button auf Activsheet in die Excel tabelle (Activesheet.Range("A1")) einlesen und als xlsm Datei abspeichern. Und das ganze in einer Schleife über ein Ordner.
Die Freie Ordner wahl, durch den Benutzer, war mir wichtig.

Je csv will ich eine einzelne Excel Arbeitsmappe. Denn pro Mappe hab ich weitere Makros die Grafiken und andere csv seperat einlesen.

Ich hab folgendes zusammen geschustert:

Code:

Public Sub Import()
'##### QUELLORDNER
Dim strQuellordner As String

    With Application.FileDialog(msoFileDialogFolderPicker)
'        .InitialFileName = "C:"
        .Title = "Quellordner auswählen"
        .ButtonName = "Auswählen"
        .InitialView = msoFileDialogViewList
        If .Show = -1 Then
            strOrdner = .SelectedItems(1)
            If Right(strQuellordner, 1) <> "" Then strQuellordner = strQuellordner & ""
          Else
            strQuellordner = ""
        End If
    End With
'##### ZIELORDNER
Dim strZielordner As String

    With Application.FileDialog(msoFileDialogFolderPicker)
'        .InitialFileName = "C:"
        .Title = "Zielordner auswählen"
        .ButtonName = "Auswählen"
        .InitialView = msoFileDialogViewList
        If .Show = -1 Then
            strOrdner = .SelectedItems(1)
            If Right(strZielordner, 1) <> "" Then strZielordner = strZielordner & ""
          Else
            strZielordner = ""
        End If
    End With
    
Application.ScreenUpdating = False

Dim wkb As Workbook
Dim wks As Worksheet
    Set wkb = ActiveWorkbook
    Set wks = ActiveSheet

Application.DisplayAlerts = False
'##### Schleife starten
Dim strDatei As String

    strDatei = Dir(strQuellordner & "*.txt")    'C:....MeinQuellordnerMeineErsteDatei.txt
    Do While strDatei <> ""
        Set wkb = ActiveWorkbook
        Set wks = ActiveSheet

'#### HIER IMPORT
            
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & strDatei, Destination:=Range("$A$1"))
        .Name = "99999_20170908" 'Dateinamen ?
        .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 = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
            
            
            
' ######

        wkb.SaveAs Filename:=strZielordner & strDatei & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
        
        Cells.Select
        Selection.ClearContents
        
        strDatei = Dir()    'nächste Datei auswählen
    Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
    
End Sub
Allerdings klappt das so gar nicht. Ich bekomme den Pfad irgendwie nicht richtig ausgelesen.

Und wie kann ich die Excelarbeitsmappe mit dem Dateinamen der .csv Datei abspeichern?

Bin um Hilfe dankbar.

Geändert von Chaotikos (13.09.2017 um 11:55 Uhr).
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 15:01   #2
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Moin,

mit "so gar nicht" und "irgendwie" ist dem Leser nicht gedient. Sei's drum:

Application.DisplayAlerts = False während der Testphase?

Mit Debug.print und Haltepunkten könntest Du die kritischen Variablen prüfen.

PS: Du pickst strOrdner zweimal und machst nichts damit.

__________________

Gruß
Ralf

Geändert von drambeldier (13.09.2017 um 15:12 Uhr). Grund: PS
drambeldier ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 16:57   #3
Chaotikos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Super danke. Ich hab vor lauter Code den Code nicht gesehen.
strordner sollte anders heissen.
DANKE!!! Das hilft mir wirklich weiter.


PS: Das mit dem debug.print hab ich noch nicht so drauf. Ich werd mal nach einem Youtube tutorial suchen müssen.

Ich meld mich demnächst, und stell hier den korrigierten Code rein.
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 17:05   #4
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Youtube ist Zeitvergeudung. Schreib nach der Zuweisung an eine heikleVariable
Code:

Debug.Print heikleVariable
und Du siehst den aktuellen Wert im Direktbereich.

Anderer Weg: Auf die Zuweisung einen Haltepunkt setzen, sausen lassen bis dorthin, mt F8 Einzelschritt ausführen, Cursor auf Varaible setzen: In der Bubble erscheint der Wert.

Nebenbei gesagt: Bei mir fangen alle Module mit
Code:

Option explicit
an. Das hat den Vorteil, dass mich VBA auf nicht definierte Variable wie strOrdner hinweist.

__________________

Gruß
Ralf
drambeldier ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.