Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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
Platzhalter - Nachtrag
21.08.2008 00:36:57
Dirk
Hallo mal wieder,
kürzlich wurde mir schon sehr geholfen : https://www.herber.de/forum/archiv/1000to1004/t1002987.htm
Meine Frage bezieht sich speziell auf den 3. Code u. den Tipp von Daniel.
Ich musste etwas "umbauen":
Der Dateiname der csv-Datei steht nicht mehr in A1 des zu bearbeitenden Sheets, sondern in dem Sheet "csv-Info" in C3 (in C6 steht der Pfad), also
Worksheets("csv-Info").[c3].Value ' hier steht der csv-Dateiname (mit .csv)
Worksheets("csv-Info").[c6].Value ' hier steht der Pfad der csv-Datei
Ich bekomme es absolut nicht hin, diese Änderungen in den 3. Code einzuarbeiten.
Kann mir jemand helfen ?
MfG Dirk

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Platzhalter - Nachtrag
21.08.2008 08:49:16
Erich
Hallo Dirk,
probier mal

' wenn in C6 am Ende ein "\" steht
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& Sheets("csv-Info").Range("C6") & Sheets("csv-Info").Range("C3"), _
Destination:=Range("A2"))
' sonst
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& Sheets("csv-Info").Range("C6") & "\" & Sheets("csv-Info").Range("C3"), _
Destination:=Range("A2"))
End With
' oder z. B.
Dim wksCI As Worksheet
Set wksCI = Worksheets("csv-Info")
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & wksCI.Range("C6") _
& "\" & wksCI.Range("C3"), Destination:=Range("A2"))

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Platzhalter - Nachtrag
21.08.2008 14:36:57
Dirk
Hallo Erich,
gleich dein 1. Tipp war goldrichtig - BESTEN DANK !
Ich poste nun mal das komplette Makro (aufgezeichnet mit Makrorekorder) .
Obwohl ich nur einen Bruchteil davon verstehe, so habe ich doch noch eine Frage dazu:
Die Quellen-CSV war ursprünglich nur bis Spalte L befüllt - sofern man bei csv (eigentlich txt) überhaupt von Spalten reden kann...
Nun schwankt diese Spaltenzahl aber ständig u. so kommentierte ich die untere Zeile mit dem ...Array... einfach aus - u. siehe da: MIT oder OHNE diese Zeile funzt es einwandfrei - selbst wenn ich die Anzahl der Einsen wahllos ändere.
Meine Frage also: Was besagt diese Zeile u. kann es OHNE zu Problemen kommen ?
Steht jede Eins für eine Spalte ?
VB-Code:
Sub format_Tableau()    'benötigt für CB1 in "csv-Import"
    'groesstenteils aufgezeichnet mit Makrorekorder
    Range("A2").Select
    '****************ORIGINAL
    '    With ActiveSheet.QueryTables.Add(Connection:= _
    '        "TEXT;D:\1\1 Baustellen\csv-Import\Abc_123456789_080718_080817.csv", _
    '        Destination:=Range("A2"))
    '    .Name = "Abc_123456789_080718_080817.csv"
    '****************
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
        & Sheets("csv-Info").Range("C6") & Sheets("csv-Info").Range("C3"), _
        Destination:=Range("A2"))
    .Name = Sheets("csv-Info").[c3]
    .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 = 2
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = True
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    '        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    End With
    Range("A1").Select
End Sub
Ist zwar nicht "lebenswichtig", aber ich würde gern spätere Probleme ausschließen.
Es würde mich also freuen, wenn du da mal draufschauen u. mir das erklären könntest...
Im Voraus tausend Dank für deine Bemühungen !
MfG Dirk

Anzeige
AW: Platzhalter - Nachtrag
21.08.2008 16:31:00
Erich
Hi Dirk,
schau dir mal in der VBA-Hilfe beim QueryTable-Objekt die Eigenschaft TextFileColumnDataTypes an.
Mit diesen Konstanten kannst du für jede CSV-"Spalte" festlegen, wie der Inhalt gelesen werden soll.
Die 1 steht für Standard/General, bei 2 würde der Wert als Text gelesen.
Daneben gibt es xlSkipColumn (9), damit wird die Spalte überlesen,
und dann noch etliche Werte für verschiedene Datumsformate.
1 = Standard kann Probleme verursachen. Wenn aus einem Text in CSV ein Datum abgeleitet werden kann,
steht in deiner Tabelle plötzlich ein Datum, wo du es nicht erwartest.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Platzhalter - Nachtrag
21.08.2008 16:56:36
Dirk
Hallo Erich,
vielen Dank für deine Erläuterungen.
Die VBA-Hilfe werde ich mir gleich mal zu Gemüte führen - mal sehen, ob ich damit etwas anfangen kann - bin absoluter VBA-Laie...
Mich wunderte ja besonders, daß es auch ganz ohne diese Zeile nach zahlreichen Tests mit unterschiedlichsten csv-Quelldateien problemlos funktionierte - war vllt. aber auch Zufall...
MfG Dirk
P.S.: Gerade möche ich einen anderen Thread aufmachen (Bereich selektieren) - vllt. "treffen" wir uns ja auch dort wieder...

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige