Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Textexport mit Zelleninhalten
#21
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
[-] Folgende(r) 1 Nutzer sagt Danke an DbSam für diesen Beitrag:
  • atilla
Antworten Top
#22
(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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#23
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
:)
Antworten Top
#24
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 !!'
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste