Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leerzeichen entfernen

Leerzeichen entfernen
13.06.2008 11:54:57
Steve
Hallo Excel-Leute,
ich habe eine DAT-Datei mit Trennzeichen „Semikolon“ , allerdings ist in diese Datei jede zweite Zeile eine Leerzeile (die Datei hat ca. 45000 echte Zeilen, d.h. inkl. Die Leerzeilen sind es ca. 90000) Excel kann aber nur bis zu 65.000 Zeilen laden. Wenn ich in Excel diese DAT-Datei öffne, dann geht die Textkonvertierungsfenster auf, gibt es vielleicht hier die Möglichkeit die Leerzeilen zu entfernen? Danke vorab für irgendeine Hilfestellung, Mit freundlichen Grüßen, Steve

34
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen entfernen
13.06.2008 12:10:00
Rudi
Hallo,
in ein Modul:

Sub readDAT()
Dim strTxt As String, myArr, lngL As Long
lngL = 1
Application.ScreenUpdating = False
Open "n:\test\test.dat" For Input As #1  'anpassen
Set wks = Workbooks.Add(1).Sheets(1)
Do Until EOF(1)
strTxt = ""
Line Input #1, strTxt
If strTxt  "" Then
myArr = Split(strTxt, ";")
With wks
.Range(.Cells(lngL, 1), .Cells(lngL, UBound(myArr) + 1)) = myArr
End With
lngL = lngL + 1
Erase myArr
End If
Loop
Close #1
Application.ScreenUpdating = True
End Sub


Gruß
Rudi

Nachfrage zum Code
13.06.2008 12:50:00
Reinhard
Hallo Rudi,
ich sehe keine Notwendigkeit für
strTxt = ""
und
Erase myArr
Übersehe ich da mögliche Fehlerquellen wenn ich die Befehle weglasse?
Danke ^ Gruß
Reinhard

Anzeige
AW: Nachfrage zum Code
13.06.2008 13:08:00
Rudi
Hallo,
kannst du weglassen.
Sind nur die Hosenträger zusätzlich zum Gürtel.
Gruß
Rudi

AW: Leerzeichen entfernen
13.06.2008 15:36:00
Steve
Hallo rudi, ich habe dein VBA in ein Modul eingefügt, es passiert aber leider NIX! Woran könnte es liegen?
Gruß Steve
Hallo Luschi, ich habe leider nicht verstanden wie ich dein Vorschlag einsetzen kann, d.h. ich weis nicht wie ich das aktivieren soll? Gruß Steve

AW: Leerzeichen entfernen
13.06.2008 19:55:11
Rudi
Hallo,
hast du den Dateinamen n:\test\test.dat angepasst und das Makro gestartet?
Gruß
Rudi

AW: Leerzeichen entfernen
13.06.2008 20:02:19
Steve
Hallo Rudi, ja klar ich habe die Datei unter C:\test.dat abgelegt. und das Makro gestartet. Es bleibt einfach Minuten lang mit die Sanduhr in Bearbeitung. Gruß Steve

Anzeige
AW: Leerzeichen entfernen
13.06.2008 21:01:59
Rudi
Hallo,
versuchs mal so. Sollte schneller sein.

Sub readDAT()
Dim strTxt As String, myArr, arrDaten(), lngCount As Long, j As Integer
Dim wks As Worksheet
Application.ScreenUpdating = False
Open "n:\test\test.dat" For Input As #1  'anpassen
Set wks = Workbooks.Add(1).Sheets(1)
Do Until EOF(1)
Line Input #1, strTxt
If strTxt  "" Then
lngCount = lngCount + 1
myArr = Split(strTxt, ";")
If lngCount = 1 Then ReDim arrDaten(1 To 50000, 1 To UBound(myArr) + 1)
For j = 1 To UBound(myArr) + 1
arrDaten(lngCount, j) = myArr(j - 1)
Next j
End If
Loop
Close #1
wks.Range("A1").Resize(lngCount, UBound(arrDaten, 2)) = arrDaten
Application.ScreenUpdating = True
End Sub


Gruß
Rudi

Anzeige
AW: Leerzeichen entfernen
14.06.2008 13:59:00
Steve
Hallo, ich habe diese Makro nach 4 Minuten abgebrochen! Scheint etwas schwierig zu sein! Trotzallem, möchte ich mich ganz herzlich für deine Hilfe bedanken. Schönes WE und die besten grüße, Steve

AW: Leerzeichen entfernen
14.06.2008 17:57:00
Tino
Hallo,
lade mal eine abgespeckte Version Deiner *.dat Datei.
Gruß Tino
www.tinomargit.com

AW: Leerzeichen entfernen
14.06.2008 20:33:21
Tino
Hallo,
versuche es mal mit dieser Version.
Excel Datei befindet sich im gleichen Ordner (ThisWorkbook.Path)
Die Datei habe ich mal als Test.csv benannt.
Habe dies in eine Textdatei gepackt und hochgeladen wegen der Zeilenumbrüche die hier entstehen.
https://www.herber.de/bbs/user/53077.txt
Gruß Tino
www.tinomargit.com

Anzeige
AW: Leerzeichen entfernen
16.06.2008 18:04:00
Rudi
Hallo,
ich habe diesen Code

Sub readDAT()
Dim strTxt As String, myArr, arrDaten(), lngCount As Long, j As Integer
Dim wks As Worksheet
Application.ScreenUpdating = False
Open "f:\test.dat" For Input As #1  'anpassen
Set wks = Workbooks.Add(1).Sheets(1)
Do Until EOF(1)
strTxt = ""
Line Input #1, strTxt
If Len(Replace(strTxt, " ", "")) > 0 Then
lngCount = lngCount + 1
myArr = Split(strTxt, ";")
If lngCount = 1 Then ReDim arrDaten(1 To 50000, 1 To UBound(myArr) + 1)
For j = 1 To UBound(myArr) + 1
arrDaten(lngCount, j) = myArr(j - 1)
Next j
End If
Loop
Close #1
wks.Range("A1").Resize(lngCount, UBound(arrDaten, 2)) = arrDaten
Application.ScreenUpdating = True
End Sub


mal anhand deiner Testdaten ausprobiert und auf meinem NB in ca. 11 Sekunden 44.240 Zeilen erzeugt
Gruß
Rudi

Anzeige
AW: Leerzeichen entfernen
17.06.2008 07:19:00
Steve
Guten morgen Rudi, hab deine VBA Code gerade eingespeist und bekomme diese Meldung: "laufzeitfehler 7, Nicht genügend speicher" - dann gehe ich auf Debuggen und folgende Text ist Gelbmarkiert: ReDim arrDaten(1 To 50000, 1 To UBound(myArr) + 1)
Meine Datei TEST.DAT hat gerade mal 49kb, warum klappt es bei dir aber nicht bei mir?
Gruß Steve

AW: Leerzeichen entfernen
17.06.2008 13:38:33
Rudi
Hallo,
bei mir waren es ca 22MB und keine Probleme.
Gruß
Rudi

AW: Leerzeichen entfernen, Luschi
13.06.2008 21:42:34
Uduuh
Hallo,
benenne die .dat mal in .txt um. Dann sollte es laufen.
Gruß aus’m Pott
Udo

Anzeige
AW: Leerzeichen entfernen
13.06.2008 14:22:13
Luschi
Hallo Steve,
hier noch eine Lösung auf Basis von ADODB, also einer datenbank-orientierten Abfrage
https://www.herber.de/bbs/user/53044.xls
Es werden dabei alle Leerzeilen (leere Datensätze) herausgefiltert, bevor die Datensätze in die Exceltabelle geschrieben werden.
Mich würde an der Stelle die Geschwindigkeit gegenüber Rudi's Lösung interessieren, da das Schreiben der Daten nur auf 1 Befehl beruht (CopyFromRecordset).
Gruß von Luschi
aus klein-Paris

AW: Leerzeichen entfernen
14.06.2008 06:06:00
Luschi
Hallo Steve,
hier noch einmal die selbe Lösung. Habe in 'Tabelle1' ein Start-Button eingefügt und im Datei-Auswahlmenü den Dateityp *.dat dazugesetzt.
Wenn Du die Exceldatei in das Verzeichnis kopierst, in dem sich auch die Textdatei befindet, dann ist im Auswahlmenü gleich das richtige Verzeichnis vorbelegt.
Wie gesagt, ich bin sehr daran interessiert, welches Verfahren schneller ist. Habe das Programm mit Excel XP und 2007 unter WinXP SP3 getestet.
https://www.herber.de/bbs/user/53056.xls
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Leerzeichen entfernen
14.06.2008 13:45:00
Steve
Hallo Luschi, ich bekomme ein Laufzeitfehler, "aktualisieren nicht möglich Datenbank oder objekt ist schreibgeschützt! Bei debuggen bekommen ich diese Zeile angezeigt: oRS.Open "SELECT * FROM " & strFile & " Where Len(F1) 0;", oCon, 3, 1, 1.
Außerdem verändert sich der Mauszeiger in ein Sanduhr .... Gruß Steve

AW: Leerzeichen entfernen
15.06.2008 12:07:46
Luschi
Hallo Steve,
stelle doch mal einen gekürzte dat-Datei zur Verfügung, damit man das mal testen kann.
Gruß von Luschi
aus klein-Paris

AW: Leerzeichen entfernen
15.06.2008 12:22:14
Steve
Hallo Lushi,
die Datei lässt sich jetzt nur in TXT speichern, warum weiss ich leider nicht, aber ist meine Meinung nach genau wie die DAT-Datei ... die besten grüße, Steve
https://www.herber.de/bbs/user/53089.txt

Anzeige
AW: Leerzeichen entfernen
15.06.2008 18:52:01
Steve
Hallo, ja im Browser ist immer eine Leerzeile vorhanden und im Texteditor wie ich es hochgeladen habe. Es geht doch darum dass ich diese DAT Datei in Excel umwandeln will, aber aufgrund der Tatsache dass immer eine Leerzeile vorhanden ist bei ca.40.000 sprengt dies die Rahmen von Excel.
Deine obengenannte Makro hat leider nicht funktioniert! Ich hätte es mir so in etwa vorgestellt, dass man die DAT-Datei irgendwie umbenennt in TXT oder CSV (semikolon) und hier bei der Konvertierung sagt jede zweite zeile oder jede Leerzeile soll entfernt werden. Mein Latein ist aber leider zu ende! :-(
Grüße Steve

Anzeige
AW: Leerzeichen entfernen
15.06.2008 19:22:00
Tino
Hallo,
also ich habe meine Version mit dem Aufbau wie in der ersten Grafik dargestellt getestet um aber dies zu erstellen habe ich diesen Text in eine .csv Datei gespeichert.
Hast Du das Makro an deine .dat entsprechend angepasst?
Gruß Tino

www.ExcelVba.eu


AW: Leerzeichen entfernen
15.06.2008 19:35:05
Steve
Hallo, ich habe auch meine Datei als CSV gespeichert und auch die Makro entsprechend angepasst, trotzdem bekomme ich eine Fehlermaldung! Gruß Steve

AW: Leerzeichen entfernen
15.06.2008 19:53:11
Tino
Hallo,
bei mir hat es funktioniert, weis nicht warum es bei dir nicht geht?
Gruß Tino

AW: Leerzeichen entfernen
15.06.2008 18:58:00
Luschi
Hallo Steve,
konnte den von Dir beschriebenen Fehler auch beobachten. Der kommt aber nur, wenn der Dateityp '.dat' ist. Wenn ich die Datei umbenenne in den Dateityp '.txt', läuft das Programm einwandfrei und die Daten werden eingelesen.
Hier denkt Excel wieder mal ein bischen zuviel mit und assoziiert den Dateityp '.dat' als Binärdatei und nicht als Textdatei und verweigert so die Ausführung. Daran kann man wohl nichts ändern, denn daß ist dem Datenbanktreiber so einprogrammiert.
Gruß von Luschi
aus klein-Paris

AW: Leerzeichen entfernen
15.06.2008 19:23:46
Steve
Hallo Luschi, schieß mich tod :-) aber ich bekomme nach wie vor die Meldung "es sind fehler aufgetreten" die datei heißt bei mir TEST.txt und ich habe es in deine Makro auch entsprechend angepasst! Was mach ich falsch? gruß Steve

AW: Leerzeichen entfernen
15.06.2008 20:14:00
Luschi
Hallo Steve,
was änderst Du den am Makro, da gibt es nichts zu ändern. Es öffnet sich doch ein Datei-Öffnen-Dialog, indem man die Textdatei auswählen kann.
Gruß von Luschi
aus klein-Paris

AW: Leerzeichen entfernen
16.06.2008 09:08:00
Steve
Guten morgen Lushi,
also ich weis jetzt nicht mehr ob deine Makro ursprunglich mit "test.csv, test.txt oder test.dat" angelegt war, ich habe jedenfalls unter C:\ die 3 textdateien gespeichert und bei mir in der Makro "leseDatei" steht die Datei "test.txt" wenn ich diese Makro starte bekomme ich die Fehlermeldung " Es sind fehler aufgetreten"! Jedenfalls öffnet sich bei mir kein "Datei-Öffnen-Dialog", indem man die Textdatei auswählen kann! Gruß Steve

AW: Leerzeichen entfernen
16.06.2008 09:27:00
Luschi
Hallo Steve,
ich hatte Dir eine Excel-Datei geschickt. Kopiere diese in das Verzeichnis Deiner Textdateien (also C:\).
Starte diese Excel-Datei mal mit Doppelklick im Explorer und klicke auf das Start-Button in 'Tabelle1'.
Dann kommt der Datei-Öffnen-Dialog. Du mußt eine Datei vom Typ 'txt' dann auswählen. Nimmst Di eine Datei vom Typ 'dat', dann kommt der Fehler von Datenbanktreiber!
In meinem Beispiel gibt es kein Makro 'leseDatei'.
Gruß von Luschi
aus klein-Paris

AW: Leerzeichen entfernen
16.06.2008 10:29:34
Steve
Hallo Luschi,
ich habe deine Exceldatei gefunden und diese auf C: kopiert, bei aufrufen diese Datei bekomme ich eine Fehlermeldung "Microsoft hat eine Fehler festgestellt und muss beendet werden!" Inzwischen bekomme ich diese Meldung nur noch beim verlassen der Datei. Jetzt geht es d.h. die Leerzeilen werden entfernt, nur leider geht die Formatierung der Spalte A verloren (123.4567 = 3 Stellen, Punkt, 4 Stellen) und alle Positionen in Spalte A die mit eine Buchstabe anfangen, wie z.B. I oder W werden nicht übertragen! gruß Steve

AW: Leerzeichen entfernen
16.06.2008 11:01:14
Luschi
Hallo Steve,
dann kannst Du diese Methode nicht verwenden, da der Datenbank-Treiber einheitliche Datenstrukturen
in den Datenfeldern (Spalten erwartet).
Hier wird dann wohl das Verfahren von Rudi sinnvoller sein, da hier die Daten nur zeilenweile gelesen und geschrieben werden.
Gruß von Luschi
aus klein-Paris

AW: Leerzeichen entfernen
16.06.2008 11:31:12
Steve
Hallo Luschi, OK, dann möchte ich mich nur noch bei dir herzlich bedanken für deine Hilfe über die letzten Tagen, Gruß Steve

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige