Tabelle" />
Microsoft Excel

Herbers Excel/VBA-Archiv

Excel Tabelle

Thema: Excel Tabelle konvertieren
Excel-Version: 10.0 (Office XP)

Betrifft: Excel Tabelle konvertieren
von: Marco
Geschrieben am: 24.02.2003 - 10:30:20

Hallo,

ich habe folgendes Problem: in einer Excel Datei habe ich Artikelstammdaten mit 3 Spalten. Diese Daten müssen in ein Textfile exportiert werden, wobei aber die einzelnen Spalten eine bestimmte Längen haben müssen. So muss z.B. die 1. Spalte mit der Artikelnummer 15 Stellen haben, die 2. mit der Artikelbeschreibung soll 30 Stellen haben und die 3. Spalte mit der Warengruppe muss 3 Stellen haben. Die Textdatei sollte dann z.B. so aussehen:

0815...........Testartikel...................001
0816...........Testartikel2..................001
0817...........Testartikel3..................001

(die Punkte stehen für Leerzeichen)

Danke und Gruß
Marco





  

Re: Excel Tabelle konvertieren
von: Nike
Geschrieben am: 24.02.2003 - 10:51:05

Hi,
mal schaun ob`s so hinhaut:


Sub writtotest()
'alle daten in Spalte A und C in textfile schreiben
Dim actcell As Range
Open "C:\test.txt" For Append Access Write Lock Write As #1
For Each actcell In Range("A1:A100")
    If Not (IsEmpty(actcell.Value) Or actcell.Value = "") Then
        Dim strA As String
        Dim strB As String
        Dim strC As String
        strA = actcell.Value
        strB = actcell.Offset(0, 1).Value
        strC = actcell.Offset(0, 2).Value
        Do Until Len(strA) = 15
            strA = " " & strA
        Loop
        Do Until Len(strB) = 30
            strB = " " & strB
        Loop
        Do Until Len(strC) = 3
            strC = "0" & strC
        Loop
        
        Print #1, strA & "," & strB & "," & strC & vbCr
    End If
Next actcell
Close #1
End Sub

Bye

Nike

  

Re: Excel Tabelle konvertieren
von: Nepumuk
Geschrieben am: 24.02.2003 - 11:14:19

Hallo Marco,#
so geht's:


Option Explicit
Public Sub Export()
    Dim Dateinummer As Integer, Zeile As Long, Text As String
    Dateinummer = FreeFile()
    Open "C:\Exportdatei.txt" For Output Access Write Lock Read Write As Dateinummer
    For Zeile = 2 To Range("A65536").End(xlUp).Row
        If Trim(Cells(Zeile, 1)) <> "" Then
            Text = String(4 - Len(Trim(CStr(Val(Cells(Zeile, 1))))), "0") & CStr(Val(Cells(Zeile, 1))) & Space(15 - (Len(String(4 - Len(Trim(CStr(Val(Cells(Zeile, 1))))), "0")) + Len(CStr(Val(Cells(Zeile, 1))))))
            Text = Text & Trim(Cells(Zeile, 2)) & Space(30 - Len(Trim(Cells(Zeile, 2))))
            Text = Text & String(3 - Len(Trim(CStr(Val(Cells(Zeile, 3))))), "0") & CStr(Val(Cells(Zeile, 3)))
            Print #Dateinummer, Text
            Text = ""
        End If
    Next Zeile
    Close #Dateinummer
End Sub

Gruß
Nepumuk

  

Vielen Dank
von: Marco
Geschrieben am: 24.02.2003 - 14:05:19

Danke schön,

"writetotest" war genau das was ich gesucht habe.

Marco

 

Beiträge aus den Excel-Beispielen zum Thema "Excel Tabelle"