Clever-Excel-Forum

Normale Version: VBA Textexport mit Zelleninhalten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Oliver,

also funktioniert es jetzt anscheinend auch mit den KundenNamen richtig. Prima.
Hinweis, Tipp:
Falls Du mehrmals am Tag Dateien für einen Kunden generierst, dann müsste man noch die Uhrzeit in den Dateiname einbinden.


Wenn Du noch eine Frage haben solltest, dann kannst Du Dich gern melden.
Falls dadurch größere Änderungen erforderlich sind, dann musst Du allerdings auch Deine aktuelle Verion mitschicken, denn meine ist durch Deine Änderungen nun ungültig geworden.


Schönen Abend noch,
Gruß Carsten


Edit:
Hallo Atilla,

ja, das habe ich weiter oben schon erwähnt und habe das testweise auch schon für mich mal probiert.
Die momentane Darstellung ist (leider) wirklich besser les- und vergleichbar, auch wenn sie den normalen Regeln wiederspricht.

Da diese Tabelle aber anscheinend nur als 'dateieinlesender Bohrloch-Kontroll-KML-Konverter' dient, habe ich mich dem Schicksal gefügt.
Auch wenn ich bei zwei, drei Stellen im Coding arg geflucht habe und mich etwas verbiegen musste.


Gruß Carsten
(03.05.2017, 11:08)DbSam schrieb: [ -> ]Hallo return,


... sicherlich geht das Einlesen kürzer (und schneller), wenn man gleich aus einem zweidimensionalen Variant zurück schreibt.
Aber das war hier im Thread nicht die Frage.

Oder worauf zielst Du hinaus?


Gruß Carsten

Auf dieses aufwändige und ganz überflüssiges Makro:

Code:
Public Sub ImportMyTextFile(ByVal importPath As String, ByVal mySheet As Worksheet)
    On Error GoTo Er

    Dim strDatei As String, ff As Integer
    Dim strText As String, wks As Worksheet
    Dim iRow As Long, iCol As Long, Regex As Object
    
    If importPath = vbNullString Then Exit Sub

    mySheet.Range("B4:NW33").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With


    Set Regex = CreateObject("vbscript.regexp")
    Regex.IgnoreCase = True
    Regex.Pattern = "<[\s\S]*?>"

    Set wks = Tabelle1 'Anpassen ***********

    iCol = 1
    strDatei = Dir$(importPath & "*.txt")

    Do While strDatei <> ""
        ff = FreeFile()
        Open importPath & strDatei For Input As #ff
        iRow = 3: iCol = iCol + 1
        While Not EOF(ff)
            Line Input #ff, strText
            strText = Regex.Replace(strText, "")
            If Len(strText) Then
                iRow = iRow + 1
                mySheet.Cells(iRow, iCol) = strText
            End If
        Wend
        Close #ff
        strDatei = Dir$
    Loop
    
Ex:
    On Error Resume Next
    Close #ff
    Exit Sub
Er:
    MsgBox Err.Number & vbNewLine & Err.Description, vbCritical, "Fehler in der Sub ImportMyTextFile"
    Resume Ex
    'for debug:
    Resume Next
End Sub
Hallo snb,

aufwändig - ja, überflüssig - nein, wenn man den Zwischenschritt der visuellen Kontrolle der Daten vor dem KML-Export in die Überlegungen einbezieht.


Die Fragestellung von Oliver bezog sich nur auf den KML-Export und den Einbau einer Ordnerauswahl.
Es lag keine Datei mit den Rohdaten der SPS vor und deshalb wurde die Routine des Datenimports nur aus dem Userform in das Modul ausgelagert und Anpassungen für den Importpfad eingebaut. Weitere Änderungen konnten ohne Kenntnis der Rohdatei nicht vorgenommen werden und diese Sub deshalb aus den Überlegungen weitgehend ausgeblendet.
Deshalb sieht diese Prozedur noch so aus wie sie ist.

Vielleicht stellt Oliver noch eine Datei mit den Rohdaten ein, dann könntest Du Deinen Vorschlag für einen optimalen Datenimport präsentieren.


Bis denne,
Gruß Carsten
:)
Man muss nicht nur die Frage anschaen, doch das ganze 'Problem' bewerten.
Wenn der Anfang schon 'clumsy' ist, wird die Folge das auch (wie Attlila z.B schon schrieb).
Dann ist es m.E. besser die Aufgabe vom Anfang richtig zu bewältigen.

Also bleibt meine Frage stehen: "bitte stelle mal die Rohdaten zur Verfügung !!'
Seiten: 1 2 3