Registriert seit: 28.07.2015
Version(en): 365
04.05.2017, 21:17
(Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2017, 21:17 von DbSam.
Bearbeitungsgrund: Antwort an Atilla hinzugefügt
)
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:1 Nutzer sagt Danke an DbSam für diesen Beitrag 28
• atilla
Registriert seit: 29.09.2015
Version(en): 2030,5
(03.05.2017, 12: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
Registriert seit: 28.07.2015
Version(en): 365
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
:)
Registriert seit: 29.09.2015
Version(en): 2030,5
05.05.2017, 12:28
(Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2017, 12:28 von snb.)
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 !!'