Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• cysu11
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Alexandra, (11.07.2014, 08: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:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• cysu11
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
12.07.2014, 20:38
(Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2014, 20:39 von Rabe.)
Hallo Alexandra, (12.07.2014, 02:08)cysu11 schrieb: @Ralf, leider verstehe ich nicht ganz wie das funktionieren soll!? Hier ist eine Beispiel-Datei:
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:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• cysu11
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
|