Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
812to816
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
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
255 Zeichen Begrenzung beim Einlesen
25.10.2006 21:08:07
Jürgen
Hallo Leute,
Über nachfolgendes Makro lese ich Textdateien in eine Exceltabelle ein.

Private Sub Verzeichnis_lesen()
Dim sFile As String, sPattern As String, sPath As String
Dim iRow As Integer
Dateiname.Clear
sPath = ThisWorkbook.Path
If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
sPattern = "*.*"
sFile = Dir(sPath & sPattern)
Do Until sFile = ""
iRow = iRow + 1
'Dateiname ist ein Textfeld innerhalb einer UF
Dateiname.AddItem sFile
sFile = Dir()
Loop
End Sub

Hierbei werden alle Inhalte über 255 Zeichen/Zeile nicht eingelesen. Kann man das irgendwie ändern?
Danke für eure Mühe. :-)
Gruss
Jürgen

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 255 Zeichen Begrenzung beim Einlesen
25.10.2006 21:17:07
Jürgen
Hallo Leute,
entschuldigung, das war eine falsche Routine.
Hier nun die Richtige Routine.

Private Sub Konvertierung_Click()
Dim DatNam1$, DatNam2$, Pfad$
Pfad = ThisWorkbook.Path
'Dateiname und Dateiname2 sind Textfelder innerhalb einer UF
Dateiname2.Text = Dateiname
DatNam2 = "TEXT;" & Pfad & "\" & Dateiname & ""
DatNam1 = "" & DatNam2 & ""
Cells(7, 1).Value = Pfad & "\" & Dateiname 'DatNam1
With ActiveSheet.QueryTables.Add(Connection:=DatNam1, Destination:=Range("A8"))
'.Name = "Alle Standorte"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With
End Sub

Gruss
Jürgen
Anzeige
AW: 255 Zeichen Begrenzung beim Einlesen
25.10.2006 22:44:45
Jürgen
Hallo,
vielleicht ist es einfacher, dass Problem vollkommen neu zu betrachten.
Ich habe deshalb ein xls-Bsp mit Problemschilderung und die entspr. Textdatei unter https://www.herber.de/bbs/user/37664.zip angehängt.
Gruß
Jürgen
AW: 255 Zeichen Begrenzung beim Einlesen
25.10.2006 23:00:15
ramses
Hallo
ich weiss ja nicht für was das gut sein soll, aber mehr als 255 Zeichen im Dateinamen, incl. Pfadangabe !!!, unterstützt Windows sowieso nicht.
Da erhältst du schon beim speichern einen Fehler.
by the Way:
In ein Textfeld kann mit AddItem nichts hinzugefügt werden, schon gar nicht mehrere Einträge.
Gruss Rainer
Anzeige
AW: 255 Zeichen Begrenzung beim Einlesen
25.10.2006 23:16:15
Jürgen
Hallo Rainer,
und weil ich da einen falschen Code eingestellt habe, hatte ich mich im 2. Beitrag dahingehend auch berichtigt.
Ab besten denke ich, schaust Du dir einfach meinen 3. Beitrag an. Das wird wohl einfacher sein, als sich mit meinen Gedanken auseinanderzusetzen.
Es ist im übrigen auch kein Textfeld sondern eine ComboBox. :-)
Gruss
Jürgen
AW: 255 Zeichen Begrenzung beim Einlesen
25.10.2006 23:31:38
ramses
Hallo
da ist nicht nur der Code falsch, sondern auch die Frage.
Die Frage in deiner Tabelle beschreibt etwas gänzlich anderes.
Was meinst du dann damit
"...Dieser Block könnte aber geteilt werden...."
... und dann ?
Wo soll das ganze Zeug dann hingeschrieben werden ?
Am einfachsten und am schnellsten geht das aufteilen mit der "SPLIT"-Methode.
Das ist in der Hilfe ganz gut beschrieben.
Gruss Rainer
Anzeige
AW: 255 Zeichen Begrenzung beim Einlesen
26.10.2006 00:05:00
Jürgen
Hallo Rainer,
ich schrieb in meinem ersten Beitrag:
"Über nachfolgendes Makro lese ich Textdateien in eine Exceltabelle ein."
und
"Hierbei werden alle Inhalte über 255 Zeichen/Zeile nicht eingelesen. Kann man das irgendwie ändern?"
Das stimmt auch so und ist nach wie vor das Problem.
Der Code, wie ich ihn in meinem zweiten Beitrag dargestellt habe, funktioniert einwandfrei bis auf die Begrenzung auf 255 Zeichen. Er wurde übrigens auch nach der Excel Datenimport Konvertierungsmethode aufgezeichnet und etwas modifiziert.
In der von mir eingestellten Tabelle steht der Text, wie er, bis auf die Zeilen 19 bis 21, mit dem Code eingelesen wurde.
Bei den Zeilen 19 bis 21 handelt es sich um "EINE" Zeile der txt-Datei, die ich manuel in die xls-Tabelle reinkopiert habe.
OT: Zur Erklärung des Zahlenblockes: Hier handelt es sich um Dezimalkoordinaten, die zusammen die Grenzlinie eines Landkreises ergeben,
Ich hoffe, dass ich das etwas aufklären konnte.
Gruss
Jürgen
Anzeige
AW: 255 Zeichen Begrenzung beim Einlesen
26.10.2006 00:53:58
fcs
Hallo Jürgen,
ich hab nachdem ich mir in Word erst einmal einen Überblick über den Inhalt verschafft hatte, den Import der Daten etwas anders gestaltet. Die einfache Version produziert den von dir dargestellten Aufbau. Damit kann man aber meiner Meinung nach in Excel nur sehr wenig anfangen. Man hat 2 Zellen mit ca. 32 kB Datensalat und eine Zelle mit etwas weniger.
Der zweite etwas aufwendigere Code teilt die Daten in zwei Spalten mit Text auf. So steht, wenn es Koordinaten sind, jetzt in jeder Zeile ein Paar. Für den Alb-Donaukreis werden dabei ca. 2750 Datenzeilen produziert.
Die Integration in dein UF-Makro muss dann noch selber umsetzen.
Gruß
Franz

Public Sub Textdateiimport()
'Koordinaten werden als Pärchen in 2 Spalten ausgegeben.
Dim text, Zeile As Long, I As Long, rechts As Boolean, Spalte As Integer, dateiname, Pos1 As Long
dateiname = "C:\Test\Alb-Donau-Kreis.txt"
Open dateiname For Input As #1
Spalte = 5
Range(Columns(Spalte), Columns(Spalte + 1)).NumberFormatLocal = "@"
rechts = False
Do Until EOF(1)
Line Input #1, text
If Left(text, 1) = "<" Then
Zeile = Zeile + 1
Cells(Zeile, Spalte) = text
Else
Pos1 = 1
For I = 1 To Len(text)
If Mid(text, I, 1) = "," Then
If rechts = False Then
Zeile = Zeile + 1
Cells(Zeile, Spalte) = Mid(text, Pos1, I - Pos1)
rechts = True
Else
Cells(Zeile, Spalte + 1) = Mid(text, Pos1, I - Pos1)
rechts = False
End If
Pos1 = I + 1
Else
If I = Len(text) Then
If rechts = False Then
Zeile = Zeile + 1
Cells(Zeile, Spalte) = Mid(text, Pos1, I - Pos1 - 1)
rechts = True
Else
Cells(Zeile, Spalte + 1) = Mid(text, Pos1, I - Pos1 - 1)
rechts = False
End If
Exit For
End If
End If
Next I
End If
Loop
Close #1
End Sub
Public Sub Textdateiimport2()
'einfache Version, produziert je Zeile in der Text-Datei eine Zeile in Excel
Dim text, dateiname As String, Spalte As Integer, Zeile As Long
dateiname = "C:\Test\Alb-Donau-Kreis.txt"
Open dateiname For Input As #1
Spalte = 8
Columns(Spalte).NumberFormatLocal = "@"
Do Until EOF(1)
Line Input #1, text
Zeile = Zeile + 1
If Right(text, 1) = "," Then
text = Left(text, Len(text) - 1)
End If
Cells(Zeile, Spalte) = text
Loop
Close #1
End Sub

Anzeige
AW: 255 Zeichen Begrenzung beim Einlesen
26.10.2006 01:29:43
Jürgen
Hallo Rainer,
danke für die Mühe, die Du Dir gemacht hast.
Ich werde die beiden Versionen mal testen.
Bei 2750 Zeilen pro Datensatz(Kreisgrenze) bekomme ich Probleme mit der Gesamtmenge der Zeilen, da ich mindersten 40 Landkreise in einem Zug bearbeiten muss.
Daher lasse ich das Thema hier mal als noch offen stehen, melde mich hier aber so oder so wieder.
Danke und Grüsse aus dem Norden
Jürgen
AW: 255 Zeichen Begrenzung beim Einlesen
26.10.2006 03:29:34
Jürgen
Hallo Franz,
ich habe beide Dateien nocheinmal ausprobiert und bekomme immer die Fehlermeldung: "Laufzeitfehler 7 / Nicht genügend Speicher".
Bei beiden Programmen erscheint diese in der Zeile "Cells(Zeile, Spalte) = text".
Wie ich vorher auch schon schrieb, bekomme ich bei 2750 Zeilen pro Datensatz(Kreisgrenze) Probleme mit der Gesamtmenge der Zeilen, da ich mindersten 40 Landkreise in einem Zug bearbeiten muss. Daher käme so oder so nur eine Variante in Frage.
Ich denke auch, dass ich eine durch die Konvertierung schon geäderte Textdatei ohne Tab-Trenner hier eingestellt hatte, denn bei der hier vorher eingestellten Datei klappt das zumindest so weit, dass ich sie Laden kann. Ich habe die Originaldatei mit Tab-Trenner, bei der ich die Fehlermeldung bekomme, deshalb nocheinmal beigelegt.
Vielleicht gibt es ja noch eine Lösung.
https://www.herber.de/bbs/user/37667.txt
Gruss
Jürgen
Anzeige

31 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige