Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Excel-Liste in Textdateien aufspalten

Betrifft: Excel-Liste in Textdateien aufspalten von: Bernd
Geschrieben am: 23.06.2008 15:16:30

Hallo zusammen.

ich wuerde gerne Excel-Liste (Vokabeldatei) , die nur aus 2 Spalten besteht und ca. 3000 Datensaetze enthaelt, gerne automatisiert in 10 Textdateien a 300 Datensaetze exportieren. Das Format sollte Text mit Tabulatorschaltung sein, alternativ waere auch csv moeglich. Es waere natuerlich noch schoener, wenn man die Blockgroesse individuell bei Start des Makros abfragen koennte, also nicht starr auf 300 beschraenkt waere.

Viele Gruesse
Bernd

  

Betrifft: AW: Excel-Liste in Textdateien aufspalten von: fcs
Geschrieben am: 23.06.2008 17:47:46

Hallo Bernd,

hier mein Lösungsvorschlag.

Gruß
Franz

Sub TextExport()
  Dim lngZeile As Long, lngAnzZeilen As Long, lngSatz As Long
  Dim objWks As Worksheet
  Dim intFF As Integer
  Dim intCount As Integer, strDateiname As String, strDateinameTxt As String
  
  lngAnzZeilen = Application.InputBox(Prompt:="Anzahl Zeilen pro Textdatei", _
      Title:="Export Textdatei", Default:=300, Type:=1)
  If lngAnzZeilen <= 1 Then Exit Sub
  
  strDateiname = InputBox(Prompt:="Name der Textdatei " & vbLf & _
      "(Name wird um fortlaufende Nr ergänzt)", _
      Title:="Export Textdatei", _
      Default:=Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4))
  If strDateiname = "" Then Exit Sub
  
  Set objWks = ActiveSheet
  With objWks
    lngZeile = 2 'Startzeile zum Einlesen
    Do Until lngZeile > .Cells(.Rows.Count, 1).End(xlUp).Row
      intCount = intCount + 1 'Zähler für Dateinamen
      
      strDateinameTxt = ActiveWorkbook.Path & "\" & strDateiname & Format(intCount, "000") _
          & ".txt"
      
      intFF = FreeFile()
      Open strDateinameTxt For Output As #intFF
      lngSatz = 0
      Do Until lngSatz = lngAnzZeilen _
            Or lngZeile > .Cells(.Rows.Count, 1).End(xlUp).Row
        'Werte aus Spalte 1 und 2 in Textdatei schreiben, Trennzeichen: Tab
        Print #intFF, .Cells(lngZeile, 1) & vbTab & .Cells(lngZeile, 2)
        lngSatz = lngSatz + 1
        lngZeile = lngZeile + 1
      Loop
      Close #intFF
      
    Loop
  End With
  MsgBox "Fertig  mit Export"
End Sub




  

Betrifft: Vielen Dank! Klappt hervorragend! von: Bernd
Geschrieben am: 23.06.2008 22:07:30




 

Beiträge aus den Excel-Beispielen zum Thema "Excel-Liste in Textdateien aufspalten"