Zeile einfügen

Bild

Betrifft: Zeile einfügen
von: Holger Meinert
Geschrieben am: 25.04.2005 10:48:25
Hallo Experten
Folgendes Makro fügt in der Datei "tabelle1.csv" am ENDE eine Zeile ein.
Wie kann das Makro umgeschrieben werden damit diese Zeile am Anfang
eingefügt wird.


Sub zeile_einfügen()
Dim sFile As String
Dim F As Integer
sFile = ThisWorkbook.Path & "\tabelle1.csv"
F = FreeFile
Open sFile For Append As #F
Print #F, "Dein Text"
Close #F
End Sub

Vielen Dank für die Hilfe !!
Holger
Bild

Betrifft: AW: Zeile einfügen
von: MichaV
Geschrieben am: 25.04.2005 11:56:35
Hi,
nur als Beispiel. Du legst eine neue Datei an, schreibst die erste Zeile rein und dahinter die Zeilen der alten Datei. Danach benennst Du die neue Datei in alte Datei um.


      
Dim sFile As String
Dim sTmp As String
Dim F1 As Integer
Dim F2 As Integer
Dim sZeile As String
sFile = ThisWorkbook.Path & "    elle1.csv" 
'alte Datei
sTmp = "tmp.tmp" 'neue Datei - temporär

F1 = FreeFile
On Error Resume Next 'Falls Datei noch nicht vorhanden- Brechstangenvariante!
Open sFile For Input As #F1
On Error GoTo 0
F2 = FreeFile
Open sTmp For Output As #F2
Print #F2, Range("A1").Value 'erste Zeile in neue Datei
While Not EOF(F1)
  Line 
Input #F1, sZeile     'Zeilen der alten Datei ranhängen
  Print #F2, sZeile
Wend
Close #F2, #F1
FileCopy sTmp, sFile 
'alte Datei mit neuer Datei überschreiben
Kill sTmp            'neue Datei löschen, weil temporär 

     Code eingefügt mit Syntaxhighlighter 3.0


Gruß- Micha
PS: Rückmeldung wäre nett.
Bild

Betrifft: AW: Zeile einfügen
von: Holger Meinert
Geschrieben am: 26.04.2005 08:25:37
Hallo Micha
habe eine Datei (sTmp = "tmp.csv" 'neue Datei - temporär) angelegt und einen Text reingeschrieben.
Die Datei wird auch später gelöscht, aber die alte Datei (Tabelle1.csv) hat sich nicht
verändert.
Habe ich es vielleicht falsch verstanden, bitte erkläre es mir nomal etwas genauer.
Danke !!
Gruss
Holger
Bild

Betrifft: AW: Zeile einfügen
von: MichaV
Geschrieben am: 26.04.2005 08:40:49
Moin,
na das funktioniert wie Dein Beispiel, nur das die Zeile am Anfang eingefügt wird. Und anstatt "Dein Text" wird der Wert aus Zelle A1 des aktuellen Tabellenblattes genommen. Du brauchst keine Dateien anlegen oder so, das macht alles das Makro. Wollt nur die Arbeitsweise des Makros erläutern, Deine Arbeitsweise bleibt wie gehabt. Schreibe den neuen Text in Zelle A1 des Tabellenblattes, führe den Code aus, und der Text steht in der Datei Tabelle1.csv ganz oben.
Gruß- Micha
Bild

Betrifft: AW: Zeile einfügen
von: Holger Meinert
Geschrieben am: 26.04.2005 10:23:33
Hallo Micha
Habe es soweit verstanden.
Habe die Neue Datei gefunden.
Diese hat den Namen: _xlsTabelle1.csv und befindet sich nicht im Verzeichnis der aktiven Arbeitmappe sondern in einem Verzeichnis vor dem aktuellen.
Der Name der neuen Datei setzt sich aus dem Namen des Verzeichnisses (_xls)und dem
Tabellenblatt zusammen. Warum ?
In der Datei steht nur der Text aus A1 ?
Gruss
Holger
Bild

Betrifft: AW: Zeile einfügen
von: MichaV
Geschrieben am: 26.04.2005 10:49:31
Hi,
erste Frage: der Syntaxhighlighter hat ein paar Zeichen verschluckt. Ändere
sFile = ThisWorkbook.Path & " elle1.csv" so, wie Du es in Deinem ersten Beitrag geschrieben hast.
zweite Frage: auch hier wieder der Hinweis auf Deinen ersten Beitrag. Du wolltest wissen, ob man eine Zeile auch am Anfang einer Datei einfügen kann. Das geht, siehe Code. Die einzufügende Zeile nimmt das Makro aus A1. Das musst Du natürlich für Deine Bedürfnisse anpassen, wobei ich Dir gerne helfe, aber da brauch ich mehr Informationen.
Zum Testen und ausprobieren des Makros reicht, die Zeile in A1 zu ändern, den Code auszuführen, die Zeile zu ändern, und den Code nochmal ausführen. In der Datei hast Du nun die zweite Änderung vor der Ersten. Das wäre nicht gegangen, wenn da sZeile="Dein Text" im Code gestanden hätte. Denn in einer Datei mit dem Inhalt
Dein Text
Dein Text
Dein Text
weiß man nicht, welcher Eintrag zuerst geschrieben wurde.
Hoffe, nun ist es wieder ein bischen klarer.
Viele Grüße- Micha
Bild

Betrifft: AW: Zeile einfügen
von: Holger Meinert
Geschrieben am: 26.04.2005 11:06:25
Hallo Micha
Hier noch einige Eckdaten zu meinem Problem.
In der Datei Tabelle1.csv steht folgender Auszug:
01.01.2005,00:15,0,1072.42
01.01.2005,00:30,0,1072.48
01.01.2005,00:45,0,1055.31
01.01.2005,01:00,0,1035.93
Wende ich mein Makro an sieht es wie folgt aus:
01.01.2005,00:15,0,1072.42
01.01.2005,00:30,0,1072.48
01.01.2005,00:45,0,1055.31
01.01.2005,01:00,0,1035.93
Dein Text
Ich brauche den Text "Dein Text" aber am Anfang der Daten:
Dein Text
01.01.2005,00:15,0,1072.42
01.01.2005,00:30,0,1072.48
01.01.2005,00:45,0,1055.31
01.01.2005,01:00,0,1035.93
Gruss
Holger
Bild

Betrifft: AW: Zeile einfügen
von: MichaV
Geschrieben am: 26.04.2005 11:25:53
Hi,
wir kriegen das noch hin, da bin ich mir sicher.
Also.
Du sagts: "Wende ich mein Makro an sieht es wie folgt aus:
01.01.2005,00:15,0,1072.42
01.01.2005,00:30,0,1072.48
01.01.2005,00:45,0,1055.31
01.01.2005,01:00,0,1035.93"
Das steht ja nun in der Datei Tabelle1.csv.
Nun schreibe in Zelle A1 "Dein Text" und wende MEIN Makro an. Dann steht in der Datei:
Dein Text
01.01.2005,00:15,0,1072.42
01.01.2005,00:30,0,1072.48
01.01.2005,00:45,0,1055.31
01.01.2005,01:00,0,1035.93
Bitte die Datei nicht vorher löschen, verschieben oder umbenennen. Und bitte die Änderung übernehmen, siehe voriger Beitrag zum Frage 1.
Wenn Du nun in Zelle A1 "Mein zweiter Text" schreibst und mein Makro nochmal anwendest, steht in der Datei:
Mein zweiter Text
Dein Text
01.01.2005,00:15,0,1072.42
01.01.2005,00:30,0,1072.48
01.01.2005,00:45,0,1055.31
01.01.2005,01:00,0,1035.93
Ich glaube, so sollte es sein. Wenn Du den Text nicht in Zelle A1 schreiben möchtest, dann ändere die Zeile Print #F2, Range("A1").Value ganz nach belieben, vielleicht auch wieder in Print #F2, "Dein Text".
Viele Grüße- Micha
Bild

Betrifft: AW: Zeile einfügen
von: Holger Meinert
Geschrieben am: 26.04.2005 12:08:38
Hallo Micha
meinst Du wirklich !
Glaube das ich mich jetzt verzettelt habe, fange nochmal neu und Ausführlich an.
Ich habe folgende Arbeitsmappe: C:\A144_1\_xls\Argos_Summe M.xls
Im Tabellenblatt (Tabelle1) sehen folgende Daten:
Spalte A/B/C/D, ab Zeile 2
01.01.2005/00:15/0/1072.42
01.01.2005/00:30/0/1072.48
01.01.2005/00:45/0/1055.31
Mit folgendem Makro wird das Tabellenblatt "Tabelle 1" mit den Daten eines definierten Bereiches als "Tabelle1.csv" im Verzeichnis "_xls" gespeichert.

Sub cvs_datei_exportieren()
Dim zeile As Integer
Dim spalte As Integer
Dim text As String
Dim rng As Range
'Bereich festlegen
Set rng = Sheets("tabelle1").Range("A2:D5")
Close #1
'Öffnen der Textdatei
Open ThisWorkbook.Path & "\tabelle1.csv" For Output As 1
With rng
'Schleife fürZeilen
For zeile = 1 To .Rows.Count
text = ""
'Schleife für Spalten
For spalte = 1 To .Columns.Count
text = text & CVar(.Cells(zeile, spalte))
If spalte < .Columns.Count Then text = text & "," 'Trennzeichen = ;
Next
Print #1, text
Next
End With
'Schließen der Textdatei
Close #1
End Sub

Soweit so gut !
Jetzt soll in der Datei "Tabelle1.csv" als erstes der Eintrag aus A1 > der Arbeitmappe "Argos_Summe M.xls" eingetragen werden.
Hoffe es ist jetzt verständlicher geworden !
ps. schicke Dir auch gern die Datei als Test!
Gruss
Holger
Bild

Betrifft: AW: Zeile einfügen
von: MichaV
Geschrieben am: 26.04.2005 12:43:34
Hi,
also wenn ich dieses Problem mit Deinem ersten Beitrag vergleiche, sehe ich da nicht viel Gemeinsamkeiten. Zu diesem Beitrag hier würde ich Dir antworten:
Wenn Du den Inhalt der Zelle A1 am Anfang der Datei haben willst, dann füge eine Zeile ein und schreibe:
...
Open ThisWorkbook.Path & "\tabelle1.csv" For Output As 1
Print #1,Range("A1").Value
With rng
...
Bin gespannt, obs das schon war ;o)
Gruß- Micha
Bild

Betrifft: AW: Zeile einfügen
von: Holger Meinert
Geschrieben am: 26.04.2005 13:04:08
Hallo Micha
Super das wars !!!!!!!!!!!!!
Sorry das ich Deine Zeit so sehr in Anspruch genommen habe.
Man sollte es gleich richtig beschreiben.
Viele Grüsse aus dem schönsten Bundesland der Welt (S.-H.)
Holger
Bild

Betrifft: AW: Zeile einfügen
von: MichaV
Geschrieben am: 26.04.2005 13:22:09
Na fein,
da bin ich aber froh ;o) Langweilig war es jedenfalls nicht.
Gruß zurück aus der Stadt des nächsten Fußball- Bundesliga- Vizemeisters (HBSC)!
Micha
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen in Rot, wenn ....."