Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Problem mit ein Code für txt Datei!
#1
Hallo liebe Excelgemeinde,


ich habe ein Problem und ich finde einfach den Fehler nicht! :@

Mit folgenden Code kopiere ich die Spalte A in meine "Export" Blatt in eine temporäre Datei, diese speicher ich dann als txt-Datei.

Code:
Sub test2()
Dim letzteZeile As Long
Dim X As Workbook, Y As Worksheet, temp As Workbook
Set X = ActiveWorkbook
Set Y = X.Sheets(2)
Set temp = Workbooks.Add(xlWBATWorksheet)
letzteZeile = Y.Cells(Rows.Count, 1).End(xlUp).Row
Y.Range("A1:A" & letzteZeile).Copy temp.Sheets(1).Cells(1, 1)
Application.CutCopyMode = False
temp.SaveAs Filename:=ThisWorkbook.Path & "\spei_01.txt", _
FileFormat:=xlTextMSDOS, CreateBackup:=False
ActiveWorkbook.Close False
X.Activate
End Sub


IN der txt Datei werden mir jedoch vor manche Zeile ein "" eingefügt und ich weiß nicht warum, denn wenn ich das Ganze manuell kopiere und in der txt einfüge dann funktioniert alles perfekt!

Habt Ihr eine Idee woran das liegen kann?


Danke
VG
Alexandra
Antworten Top
#2
Hallo Alexandra,

schaue mal, was in den betroffenen Zellen anders ist als dort, wo es funktioniert.
Eventuell kannst Du die Zellinhalte korrigieren oder die Daten mit der Print-Anweisung ausgeben. Schaue dazu mal in die Hilfe zu Open, Output oder Print.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo Andre,


habe soeben festgestellt, dass wenn Kommas vorkommen das passiert! Kann ich das im Code irgendwie unterbinden den ich brauche die Kommas!?


Danke
VG
Alexandra
Antworten Top
#4
Hallo Alexandra,

wie schon gesagt, da musst Du wahrscheinlich mit Print arbeiten.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo Andre,


so habe ich das jetzt gelöst:

Code:
Sub Test()
    Dim FileName As String
    FileName = ThisWorkbook.Path & "\" & Range("H2").Text & ".txt"
    Var = MsgBox("Importdatei " & FileName & " erstellen? Achtung! Falls bereist ein Datei mit diesen Namen existiert, wird diese überschrieben! Sind Sie sicher?", vbYesNo)
     If Var = 7 Then
         Exit Sub
         Else
    Dim FileNo As Integer
    Dim x As Long
    FileNo = FreeFile
    Open FileName For Output As #FileNo
    With Worksheets("Export")
        For x = 1 To .Range("A1:A" & .Range("A65536").End(xlUp).Row).Count
            Print #FileNo, .Cells(x, 1).Value
        Next x
    End With
    End If
    Close #FileNo
    MsgBox "Importdatei " & FileName & " erfolgreich erstellt!"
End Sub

Problem! Ich habe in den Sheet "Export" in Spalte A Formeln drin von A1 bis A10000!

Mit For x = 1 To .Range("A1:A" & .Range("A65536").End(xlUp).Row).Count werden alle 10000 Zellen kopiert obwohl ab A508 kein Wert in der Zelle sondern nur die Formeln =wenn(Tabelle1!A508="";"";blablaba). Das heißt ich habe in meiner Textdatei ca. 9500 leere Zeilen!

Wie kann ich diesen Code:
For x = 1 To .Range("A1:A" & .Range("A65536").End(xlUp).Row).Count
dazu bringen, dass er wirklich nur bis zur letzten Zelle in A die auch tatsächlich einen Wert enthält geht???


Danke
VG
Alexandra
Antworten Top
#6
Hallo Alexandra,

Code:
Sub Test()
  Dim FileName As String
  Dim FileNo As Integer
  Dim x As Long
  FileName = ThisWorkbook.Path & "\" & Range("H2").Text & ".txt"
  If MsgBox("Importdatei " & FileName & " erstellen? Achtung! Falls bereist ein Datei mit diesen Namen existiert, wird diese überschrieben! Sind Sie sicher?", vbYesNo) = vbYes Then
    FileNo = FreeFile
    Open FileName For Output As #FileNo
    With Worksheets("Export")
      For x = 1 To Columns(1).Find(What:="*", After:=Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlPrevious, MatchCase:=False).Row
        Print #FileNo, .Cells(x, 1).Value
      Next x
    End With
    Close #FileNo
    MsgBox "Importdatei " & FileName & " erfolgreich erstellt!"
  End If
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • cysu11
Antworten Top
#7
Hi Alexandra,

(11.07.2014, 07:41)cysu11 schrieb: Mit For x = 1 To .Range("A1:A" & .Range("A65536").End(xlUp).Row).Count werden alle 10000 Zellen kopiert obwohl ab A508 kein Wert in der Zelle sondern nur die Formeln =wenn(Tabelle1!A508="";"";blablaba). Das heißt ich habe in meiner Textdatei ca. 9500 leere Zeilen!

Du könntest die Formeln in den Zeilen 508 bis 10.000 löschen und den Bereich Zeile 1 bis 507 in eine Tabelle umwandeln mit STRG-L oder STRG-T.
Wenn Du dann in z.B. B501 etwas einträgst, wird automatisch die Formel aus A507 nach A508 fortgeführt. Damit sind aber wirklich nur die benötigten Zeilen mit Formeln bestückt und es wird auch nur dieser Bereich kopiert.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • cysu11
Antworten Top
#8
Hallo Uwe,


funktioniert perfekt, genau so wollte ich es haben!
Vielen Dank dafür!!!

@Ralf, leider verstehe ich nicht ganz wie das funktionieren soll!?


Vielen Dank
VG
Alexandra
Antworten Top
#9
Hallo Alexandra,

(12.07.2014, 01:08)cysu11 schrieb: @Ralf, leider verstehe ich nicht ganz wie das funktionieren soll!?

Hier ist eine Beispiel-Datei:

.xlsb   Beispiel für Liste.xlsb (Größe: 9,7 KB / Downloads: 10)

Schaue Dir den Inhalt von A4 bis C4 an. (Tipp: sie sind leer)

Zum Test schreibe in Zelle B4 etwas rein und danach schau Dir die Zellen A4 und C4 an, dann siehst Du, was ich meine.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • cysu11
Antworten Top
#10
Hallo Ralf,


damit habe ich bis jetzt noch nie gearbeitet, aber das ist ja eine Supersache!!
Werde mal öfters wohl, damit arbeiten! :)


Vielen Dank
VG
Alexandra
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste