Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Zeilen in txt Dateien kopieren

Excel Zeilen in txt Dateien kopieren
25.05.2005 16:17:38
Daniel
Guten Tag Zusammen!
Ich habe in einem Ordner verschiedenste .txt Dateien. In diesen Dateien sind Aktienkurse enthalten für die letzten Tage.
Beispielhaft habe ich das Verzeichnis "Makro-Beispiele" angelegt. In diesem Ordner befinden sich 3 solcher txt Dateien. Sie haben die Namen ADSG.DE, FMEG.DE und ALVG.DE. Beispieldatei: https://www.herber.de/bbs/user/23213.txt
Zusätzlich dazu habe ich eine Datei die Tageskurse.xls heißt, in der die Kurse des aktuellen Tages stehen.
Was ich nun möchte ist folgendes:
In dieser Excel Datei (https://www.herber.de/bbs/user/23212.xls)
stehen die Tageskurse für die verschiedensten Aktien.
Die txt Dateien enthalten aber nur die Kurse bis zum letzten Handelstag.
Ich möchte nun, das ich per Knopfdruck die Kurse aus diesem Excel-Blatt in die jeweiligen txt Daten kopieren kann.
Und das soll folgendermaßen ablaufen:
In Spalte 1 stehen die Abkürzungen für die Aktien. Diese stimmen mit den Namen der txt Dateien überein. Im Beispiel steht da z.B. in A1 ADSG.DE. In Zeile 1 stehen von A1 bis E1 die Kurse für diese Aktie.
Diese Kurse sollen nun in die nächste Zeile der txt Datei ADSG.DE.txt kopiert werden.
Dabei müssen noch zusätzlich die Formate beachtet werden, denn es soll ein Punkt als Dezimaltrennung benutzt werden. Zur Spaltentrennung soll wie in der Beispieldatei Tab genutzt werden.
Zusätzlich muss das aktuelle Datum aus G1 in die erste Spalte der Zieldatei übernommen werden und zwar im Format m/d/yyyy.
Diese Prozedur soll nun für alle Zeilen im Excel-Sheet gemacht werden. Jede Zeile hat also eine entprechende txt-Datei.
So, ich hoffe es ist klar geworden was ich möchte.
Es ist sicher nicht einfach zu verstehen...
Vielen Dank für eure Mühe!
Daniel

30
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
25.05.2005 17:40:13
UweD
Hallo
Teillösung:

Sub Kurskopie()
Dim Pfad$, TB, LR%, I%, J%, File$, Strg$, Ganz, Rest
Pfad = "C:\Temp\" 'anpassen
Set TB = Workbooks("Tageskurse.xls").Sheets(1)
LR = TB.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der SpalteA
For I = 1 To LR
File = Cells(I, 1).Value
Strg = Chr(13) & Application.Substitute(Format(TB.Cells(1, 7).Value, "m/d/yyyy"), ".", "/")
For J = 2 To 5
Ganz = Int(TB.Cells(I, J).Value)
Rest = Format((TB.Cells(I, J).Value - Ganz) * 100000, "00000")
Strg = Strg & Chr(9) & Ganz & "." & Rest
Next J
Open File For Append As #1
Print #1, Strg
Close #1
Next I
End Sub


Bis auf den Zeilenumbruch vor anhängen der neuen Zeile klappt es. CHR(13) will er nicht....

Ich hab jetzt keine Zeit mehr und muß weg. Wer kann weiterhelfen??

Gruß UweD
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
25.05.2005 17:46:45
UweD
Hallo

Hab zu kompl. gedacht. das chr13 kann weg.

so klappt es.

Sub Kurskopie()
Dim Pfad$, TB1, LR1%, I%, J%, File$, Strg$, Ganz, Rest
Pfad = "C:\Temp\"
Set TB1 = Workbooks("Tageskurse.xls").Sheets(1)
LR1 = TB1.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der SpalteA
For I = 1 To LR1
File = Cells(I, 1).Value
Strg = Application.Substitute(Format(TB1.Cells(1, 7).Value, "m/d/yyyy"), ".", "/")
For J = 2 To 5
Ganz = Int(TB1.Cells(I, J).Value)
Rest = Format((TB1.Cells(I, J).Value - Ganz) * 100000, "00000")
Strg = Strg & Chr(9) & Ganz & "." & Rest
Next J
Open Pfad & File For Append As #1
Print #1, Strg
Close #1
Next I
MsgBox "Fertig"
End Sub


Wichtig: wenn die Dateien nicht da sind, werden diese neu erzeugt.

Gruß aus Siegen
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
25.05.2005 18:03:35
IngGi
Hallo Uwe,
war gerade auch schon am Tüfteln, aber zu langsam. Da sei mir die Bemerkung gestattet: Zeilenschaltung = chr(13) & chr(10)
Gruß Ingolf
AW: Excel Zeilen in txt Dateien kopieren
25.05.2005 19:15:31
Daniel
Danke,
ich werde mir das Morgen ansehen und testen!
Daniel
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 08:37:04
Daniel
Guten Morgen,
also irgendwie hat das nicht geklappt.
Die Messagebox "Fertig" kam aber.
Der Ordner befindet sich in Laufwerk U im Ordner Eigene Dateien.
Das habe ich aber umgeändert. Habe keine Ahnung wieso das nicht geklappt hat.
Grüße,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 10:07:34
MichaV
Hi,
die Dateien wurden wohl erzeugt, aber im Excel- Arbeitsverzeichnis.
Schreib Open Pfad & File For Append As #1, dann sollte es klappen, soweit Pfad mit "\"endet.
Gruss- Micha
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 10:30:10
Daniel
Danke,
anscheinend hatte ich ein "\" vergessen. Daran lag es.
Die Zeilen werden nun auch in die Dateien kopiert.
Allerdings nicht in die NÄCHSTE Zeile, sondern die Zeilen werden
einfach in die letzte Zeile in neuen "Spalten" angehängt.
Das müsste noch so geändert werden, dass die Kopie in der NÄCHSTEN
Zeile landet.
Vielen Dank für die freundliche Unterstützung!
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 11:13:16
MichaV
Hi,
das liegt wohl daran, daß in Deinen Dateien am Ende kein Zeilenumbruch steht. Mit Print #1, Strg wird diesere Umbruch am Ende eingefügt so daß beim wiederholten Ausführen des Makros eine neue Zeile angelegt werden sollte. Es ist also nur ein einmalige Vorgang, weil Deine vorhandenen Dateien nicht in einer neuen Zeile enden.
Wenn dem so ist, dann führe dieses Makro für alle Deine vorhandenen Dateien aus:

Sub NeueZeile()
'Fügt nur einen Zeilenumbruch ein!
Dim Pfad$, TB1, LR1%, I%, File$
Pfad = "C:\Temp\"
Set TB1 = Workbooks("Tageskurse.xls").Sheets(1)
LR1 = TB1.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der SpalteA
For I = 1 To LR1
File = Cells(I, 1).Value
Open Pfad & File For Append As #1
Print #1, "" 'Nur Zeilenumbruchzeichen schreiben
Close #1
Next I
MsgBox "Fertig"
End Sub

(Ungetestet, auf Grundlage der vorherigen Makros)
Nun kannst Du mit dem anderen Makro arbeiten.
Gruss- Micha
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 11:17:26
Daniel
Ok.
Was aber wenn das nicht in jeder Datei gleich ist?
Und wenn das ursprüngliche Makro ausgeführt wird, wird dann auch automatisch ein Zeilenumbruch gemacht, damit das dann am nächsten Tag auch wieder funktioniert?
Grüße,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 11:23:40
MichaV
Hi,
wie gesagt, Print #1 fürgt am Ende automatisch einen Umbruch ein, darum hat Uwe das Chr(13) wieder rausgenommen. Sonst hättest Du immer eine Leerzeile zwischen den Einträgen.
Wenn nicht alle Dateien am Ende den Umbruch haben brauchst Du natürlich ein anderes Makro... Ich meld mich.
Gruss- Micha
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 11:25:17
Daniel
Ich habe da noch ein kleines Problem, das man vielleicht gleich mit einem Makro mitlösen könnte:
Und zwar sollen meine Dateien so aussehen:
https://www.herber.de/bbs/user/23246.txt
Leider sind manche Dateien in meinem Verzeichnis nicht durchgehend mit Tab als Trennzeichen. Beispiel:

Die Datei https://www.herber.de/bbs/user/23247.txt wurde aus Datenschutzgründen gelöscht

Kann man das zusätzlich mit ändern, wenn ich das mit dem Zeilenumsprung ohnehin machen muss?
Grüße,
Daniel
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 11:53:26
MichaV
Hi,
zum ersten Problem. Führe das Makro für alle Dateien ein mal aus:

Sub NeueZeile()
'Fügt einen Zeilenumbruch am Ende ein, falls dieser nicht vorhanden!
Dim Pfad$, TB1, LR1%, I%, File$
Dim Zeichen As String * 2
Pfad = "C:\Temp\"
Set TB1 = Workbooks("Tageskurse.xls").Sheets(1)
LR1 = TB1.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der SpalteA
For I = 1 To LR1
File = Cells(I, 1).Value
Open Pfad & File For Binary As #1
If LOF(1) > 2 Then
Get #1, LOF(1) - 1, Zeichen
If Not Zeichen = vbCrLf Then Put #1, LOF(1), vbCrLf
End If
Close #1
Next I
MsgBox "Fertig"
End Sub

Zu Deinem zweiten Problem: Das ist nur eine Darstellungsfrage. Die Zahlen sind auch durch Tab getrennt, das siehst Du z.B. wenn Du die Datei in Word öffnest oder bei den kürzeren Zahlen ein Leerzeichen einfügst. Letzteres würde natürlich auch mit Makro gehen, Du müsstest Dich aber entscheiden, ob Leerzeichen davor oder dahinter. Die Frage ist auch, ob die Daten dann noch lesbar sind, weil dann keine reine Tab- getrennte Datei mehr vorliegt.
Gruss- Micha
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 12:20:20
Daniel
Vielen Dank.
Ja, das mit dem Tab scheint doch kein Problem zu sein. Das sah aber auf den ersten Blick so aus.
Der Rest funktioniert nun, wie gewollt.
Wie das aber so ist fällt einem im Nachhinein doch nocht etwas ein.
Und zwar:
Wenn ich z.B. jetzt die aktuellen Tageskurse kopiere, dann ist die Zeile ja drinnen.
Wenn ich das dann später nochmal mache, dann fügt er die Zeile nochmal an.
Kann man da eine Prüfung einbauen, ob das Datum in der letzten Zeile schon steht. Wenn das der Fall ist, dann soll die Zeiel ersetzt werden, anstatt in die neue Zeile zu kopieren.
Dann könnte ich mehrmals am Tag die Kurse aktualisieren. Geht das?
Grüße
Daniel
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 13:07:19
MichaV
Hi,
zwei Antworten geb ich Dir noch, danach muß ich mal wieder was schaffen ;o)
Hier die erste:
Ich schlage Dir vor, es über das Excel- Blatt zu machen. Überschrift in Spalte H z.B. "Exportiert am"

Sub Kurskopie()
Dim Pfad$, TB1, LR1%, I%, J%, File$, Strg$, Ganz, Rest
Pfad = "C:\Temp\"
Set TB1 = Workbooks("Tageskurse.xls").Sheets(1)
LR1 = TB1.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der SpalteA
For I = 1 To LR1
'wenn in Spalte H nicht das gleiche Datum steht wie heute
If Not Format(Cells(I,8),"dd.mm.yy") = Format(Now, "dd.mm.yy") Then
File = Cells(I, 1).Value
Strg = Application.Substitute(Format(TB1.Cells(1,7).Value, "m/d/yyyy"), ".", "/")
For J = 2 To 5
Ganz = Int(TB1.Cells(I, J).Value)
Rest = Format((TB1.Cells(I, J).Value - Ganz) * 100000, "00000")
Strg = Strg & Chr(9) & Ganz & "." & Rest
Next J
Open Pfad & File For Append As #1
Print #1, Strg
Close #1
Cells(I,8) = Now 'Datum und Zeit in Spalte H eintragen
End If
Next I
MsgBox "Fertig"
End Sub

Gruss- Micha
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 13:40:24
Daniel
Ok, dann eine Frage noch:
Dein letztes Posting verstehe ich nicht ganz.
Ich habe um 13:36 ein Update gemacht. Es hat neue Kurse gezogen.
Dann um 13:38 nochmal. Nun sind die Kurse von heute 2x in jeder Datei :-((
Und das soll nicht sein! Ich will Dich aber nicht von der Arbeit abhalten.
Grüße,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 13:50:12
MichaV
Hi,
dann wurde wohl der Inhalt der Spalte 8 beim Update überschrieben? Naja, ich bau Dir das so, daß der Inhalt der Datei abgefragt wird...
Außerdem wolltest Du ja die letzte Zeile ersetzen, da hab ich nicht aufgepasst.
Gruss- Micha
PS: das mit der Arbeit ist schon okay. Fahre zur Zeit 30% Leistung bei vollem Lohnausgleich ;o)
Anzeige
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 13:53:46
Daniel
Das wäre super. Ich hoffe wir reden nicht aneinander vorbei.
Ist auch nicht eilig, da ich den restlichen Tag eine Besprechung habe!
Grüße,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 13:55:44
MichaV
hast Du sonst noch einen einen Wunsch bzgl. Datenexport? Bau ich Dir gleich noch mit ein, weil die Sonne so schön scheint ;o)
Gruss- Micha
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 14:03:05
Daniel
Ja, ist mir gerade noch etwas aufgefallen.
Die Daten haben im Moment keine Endung.
Die heißen jetzt z.B. ADSG.DE und sonst nix.
Es soll aber ADSG.DE.txt heißen.
Kannst Du das noch mit ändern? Das wäre super!
Danke!
Daniel
AW: Excel Zeilen in txt Dateien kopieren
26.05.2005 20:11:03
MichaV
Hi Daniel,
hatten auf Arbeit Internet- Ausfall. Darum erst jetzt:


      
Private Sub Kurskopie()
'Auf Grundlage des Codes von UweD
'mit Daniels gesammelten Wünschen
    Dim Pfad$, TB1, LR1%, I%, J%, File$, Strg$, Ganz, Rest
    
Dim Daten$, Eintrag$(), Zeile$
    
Dim Alt As Boolean
    Pfad = "d:\micha\excel\tmp\" 
'anpassen, \ am Ende nicht vergessen
    Set TB1 = Workbooks("Tageskurse.xls").Sheets(1)
    LR1 = TB1.Cells(Rows.Count, 1).End(xlUp).Row 
'letzte Zeile der SpalteA
 
    
For I = 1 To LR1
        File = Cells(I, 1).Value & ".txt" 
'Dateiendung hinzufügen
        Strg = Application.Substitute(Format(TB1.Cells(1, 7).Value, "m/d/yyyy"), ".", "/")
        
        
If Not Dir(Pfad & File) = "" Then 'vorhandene Datei einlesen
          Open Pfad & File For Input As #1
          Zeile = ""
          
While Not EOF(1)
            
If Not Zeile = "" Then Daten = Daten & Zeile & vbCrLf
            Line 
Input #1, Zeile
          
Wend
          
Close #1
          Eintrag = Split(Zeile, vbTab) 
'letzte Zeile auswerten
          If UBound(Eintrag) = -1 Then 
            MsgBox "Datei " & File & " enthält eine Leerzeile am Ende.", vbCritical, "Abbruch"
            
Exit Sub
          
End If
          
If Eintrag(0) = Strg Then Alt = False Else Alt = True
        
End If
        
        
Open Pfad & File For Output As #1
        
If Not Daten = "" Then Print #1, Daten; 'alten Dateiinhalt wiederherstellen
        If Alt Then Print #1, Zeile 'ggf. letzte wieder Zeile anfügen
        For J = 2 To 5
            Ganz = Int(TB1.Cells(I, J).Value)
            Rest = Format((TB1.Cells(I, J).Value - Ganz) * 100000, "00000")
            Strg = Strg & Chr(9) & Ganz & "." & Rest
        
Next J
        
Print #1, Strg
        
Close #1
    
Next I
    MsgBox "Fertig"
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0

Bin gespannt, ob Dir noch was einfällt ;o)
Viele Grüße und viel Erfolg!- Micha
PS: Rückmeldung wäre nett
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 08:43:22
Daniel
Hi,
ich kann das komplett erst nach 9:00 Uhr testen.
In einem kleinen Test hat es genau das gemacht was ich wollte. Super!
Hmmm, bzgl. der Wünsche fällt mir noch etwas ein:
Mein Dateien sind nun in dem Format z.B. ADSG.DE.
Kannst du das obigen Makro, das den Zeilenumsprung machte so ändern, dass es mir die Dateien noch in die Endung z.B. ADSG.DE.txt ändert?
Das wäre super.
Grüße,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 09:07:14
Daniel
Hmm,
die Formattierung der alten Daten müsste noch vor dem großen Test gemacht werden.
Danke,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 09:22:30
MichaV
Hi,
das mit .txt ist eingebaut.
Natürlich musst Du die Daten vorher formatieren, wenn Du das Einfügen fehlender Zeilenumbrüche meinst. Dafür hast Du auch ein Makro.
Wo ist das Problem?
Micha
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 09:36:16
Daniel
Nein, ich meine das ich die Dateien umbennen muss von "ADSG.DE" nach "ADSG.DE.txt".
Und das muss ich bei zig Dateien machen. Geht natürlich auch per Hand. Ist aber etwas nervenaufreibend. Und dafür dachte ich an ein Makro.
Grüße
Daniel
Performance
27.05.2005 10:53:50
Daniel
Ich habe gerade noch ein erhebliches Problem entdeckt, als ich den "großen" Test gemacht habe. Das Makro braucht Minuten und war dann immernoch nicht fertig.
Ich habe im Moment ca. 100 Dateien (Tendenz steigend) mit teilweise 1000 Datenzeilen.
Lässt sich die Performance verbessern?
Vielleicht indem man einfach die letzte Zeile löscht, wenn heute schon ein Update war, und danach die neue einfügt. Also dann wäre es wieder so, als hätte man den ganzen Tag kein Update gemacht.
Grüße,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 12:47:02
MichaV
Hi,
Internet in Fa. läuft immernoch nicht, drum hab ich heut hitzefrei ;o)
Zur Performance: Um die letzte Zeile der Textdatei auszutauschen muß die Datei geöffnet und eingelesen werden, das geht nunmal nicht anders. Bei 100 langen Dateien dauert das natürlich eine Weile. Darum war ja mal mein Vorschlag, das Export- Datum auf den Excel- Blatt zu speichern, aber das hast Du ja irgendwie überflogen...
Eine etwas schnellere Methode ist, das Änderungsdatum der Datei zu prüfen. Wenn die Datei nicht bereits an dem Tag geändert wurde, der in Zelle G1 steht, dann wird nur eine Zeile angehangen ohne Prüfung, wann die letzte Zeile geschrieben wurde. Also Achtung! Wenn heute der 27.5. ist und in Zelle G1 der 25.5. steht, dann wird mit jedem Export eine Zeile angehangen! Wenn Du aber sicher bist, daß in G1 immer das aktuelle Datum steht, dann funzt es. Ich erwarte aber keine große Verbesserung, weil Du sicherlich fast alle Dateien mehrmals täglich aktualisieren willst. Dann kommst Du um das zeitaufwendige Einlesen des gesamten Dateiinhaltes nicht herum, denn nur so kan m.E. die letzte Zeile überschrieben werden. (Es geht auch schneller, aber nicht mit Deiner Datenstruktur -Problem der nicht einheitlichen Zahlenlänge, hatten wir mal angerissen)
Hier der Code mit Prüfung des Änderungsdatums


      
Private Sub Kurskopie()
'Auf Grundlage des Codes von UweD
'mit Daniels gesammelten Wünschen
    Dim Pfad$, TB1, LR1%, I%, J%, File$, Strg$, Ganz, Rest
    
Dim Daten$, Eintrag$(), Zeile$
    
Dim Alt As Boolean
    Pfad = "d:\micha\excel\tmp\" 
'anpassen, \ am Ende nicht vergessen
    Set TB1 = Workbooks("Tageskurse.xls").Sheets(1)
    LR1 = TB1.Cells(Rows.Count, 1).End(xlUp).Row 
'letzte Zeile der SpalteA
 
    
For I = 1 To LR1
        File = Cells(I, 1).Value & ".txt" 
'Dateiendung hinzufügen
        Strg = Application.Substitute(Format(TB1.Cells(1, 7).Value, "m/d/yyyy"), ".", "/")
        
'Wenn Datei- Änderungsdatum mit Datum in Zelle G1 übereinstimmt,
        'dann wird die letzte Zeile der Datei überschrieben
        'ansonsten wird eine Zeile angehagen.
        If Strg = Application.Substitute(Format(FileDateTime(Pfad & File), "m/d/yyyy"), ".", "/") Then
        
          
If Not Dir(Pfad & File) = "" Then 'vorhandene Datei einlesen
            Open Pfad & File For Input As #1
            Zeile = ""
            
While Not EOF(1)
              
If Not Zeile = "" Then Daten = Daten & Zeile & vbCrLf
              Line 
Input #1, Zeile
            
Wend
            
Close #1
          
End If
        
          
Open Pfad & File For Output As #1
          
If Not Daten = "" Then Print #1, Daten; 'alten Dateiinhalt wiederherstellen
        Else
          
Open Pfad & File For Append As #1
        
End If
        
For J = 2 To 5
            Ganz = Int(TB1.Cells(I, J).Value)
            Rest = Format((TB1.Cells(I, J).Value - Ganz) * 100000, "00000")
            Strg = Strg & Chr(9) & Ganz & "." & Rest
        
Next J
        
Print #1, Strg
        
Close #1
    
Next I
    MsgBox "Fertig"
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0


Und die Sache mit den Dateiendungen:


      
Private Sub TxtAnhängen()
'Hängt an jede Datei im Verzeichnis ein .txt, soweit nicht bereits vorhanden
Dim f
With Application.FileSearch
  .LookIn = "d:\micha\excel\tmp" 
'anpassen!
  .FileType = msoFileTypeAllFiles
  .Execute
  
For Each f In .FoundFiles
  MsgBox FileDateTime(f)
    
If Not Right(f, 4) = ".txt" Then
      
Name f As f & ".txt"
    
End If
  
Next
End With
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0


So, irgendwie hab ich das Gefühl, daß wir nie zu einem Ende kommen.
Gruß- Micha
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 13:04:04
Daniel
Hi Micha,
hmmm. Das mit dem Export-Datum auf Excel-Blatt habe ich dann nicht richtig verstanden.
Kannst Du mir das nochmal zeigen. Ich weiß, ich bin schwieirg. Bin aber leider noch nicht dazu gekommen, mir endlich ein VBA Buch zuzulegen und zu lesen.
Ich kann eigentlich immer sicherstellen, dass in G1 das heutige Datum steht.
Nun dauert das aber schonwieder ewig....
Gruß,
Daniel
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 19:15:04
MichaV
Hi,
also nochmal. Um die letzte Zeile in der Datei auszutauschen muss die Datei ganz eingelesen und dann wieder -bis auf die letzte Zeile- ausgelesen werden. Das dauert halt bei vielen großen Dateien etwas länger. Wenn Deine Zeilen immer gleich lang wären (was sie ja nicht sind, wie wir wissen), dann könnte man das Problem lösen und nur das Ende der Datei überschreiben. Was aber, wenn die neue Zeile kürzer ist als die Alte? Den übrigbleibenden Rest kann man nicht einfach löschen. Das ist jedenfalls mein Kentnisstand.
Überlege doch mal ob Du nicht in Excel sicherstellen kannst, daß die Daten pro Tag nur einmal in die Datei geschrieben werden. Aber da kann ich Dir nicht helfen, ich weiß ja nicht, was Du vor hast. Vielleicht als Idee: Beim Holen der Daten aus dem Internet werden die alten Daten in Excel überschrieben, wenn das Datum gleich ist. Wenn das Datum nicht gleich ist, dann werden die alten Daten in die dazugehörige Datei exportiert und dann mit den neuen Daten überschrieben. Damit reduzierst Du die Dateioperationen af ein Minimum.
Das ist dann aber einen neuen Threat wert.
Gruß und ein schönes Wochenende noch! Micha
AW: Excel Zeilen in txt Dateien kopieren
27.05.2005 21:59:47
Daniel
Hallo Micha,
ich habe einen neuen Thread aufgemacht! Wird alles zu lang hier.
Grüße,
Daniel
ich blinde Nuss
26.05.2005 13:13:14
MichaV
...das hat Uwe ja in der 2. Version schon eingebaut...
Gruss- Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige