Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


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


ich habe ein Problem und ich finde einfach den Fehler nicht! Angry

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
to 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-2016)
to 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
to 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-2016)
to 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
to 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 Benutzer sagt Danke an Kuwer für diesen Beitrag:
cysu11
to 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.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
[-] Folgende(r) 1 Benutzer sagt Danke an Rabe für diesen Beitrag:
cysu11
to 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
to 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.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
[-] Folgende(r) 1 Benutzer sagt Danke an Rabe für diesen Beitrag:
cysu11
to top
#10
Hallo Ralf,


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


Vielen Dank
VG
Alexandra
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Daten aus anderer Excel Datei selektiert in neue Datei übernehmen Casual 3 35 Vor 1 Stunde
Letzter Beitrag: WillWissen
  Excel Datei exportieren zu einer XML Datei FaDos 4 281 15.09.2016, 15:56
Letzter Beitrag: FaDos
  VBA Code > Daten aus vielen EXEL-Dateien in einer Datei vereinen Brinkhoff 12 901 04.03.2016, 12:51
Letzter Beitrag: Rabe
  Neue Excel Datei in 2. Arbeitsmappse / Datei öffnen trance-master 3 868 17.10.2015, 22:03
Letzter Beitrag: Käpt'n Blaubär
  Excel Datei exportieren nach eine XML Datei FaDos 16 2.841 26.06.2015, 14:26
Letzter Beitrag: FaDos
  Worksheet_BeforeRightClick [geteilt] VBA Code der direkt Seite in einer PDF Datei öff Schülerin 7 1.070 14.06.2015, 17:52
Letzter Beitrag: Käpt'n Blaubär
  VBA Code der direkt Seite in einer PDF Datei öffnet sotaros 2 713 13.06.2015, 21:53
Letzter Beitrag: sotaros
  Code vorübergehend per Code ändern! cysu11 9 1.683 11.12.2014, 19:06
Letzter Beitrag: cysu11
  Problem mit VBA Code - Werte aus Zellen in andere Zeilen übertragen Mike4711 6 1.522 22.11.2014, 19:59
Letzter Beitrag: schauan

Gehe zu:


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