Sub export_ASCII()
'Daten im aktiven Tabelleblatt werden aufbereitet und in eine Textdatei ausgegeben
Dim lngZeile As Long, lngSpalte As Long
Dim varDatei
Dim wks As Worksheet
Dim intFF As Integer
Dim Spalte As Integer
Dim strDatensatz As String
'Dateinamen für ASCII-Datei wählen
varDatei = Application.GetSaveAsFilename( _
Initialfilename:=Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".TXT", _
FileFilter:="ASCII(*.TXT),*.TXT", _
Title:="Daten-Export - Bitte Namen der ASCII-Datei wählen/eingeben")
If varDatei = False Then Exit Sub
Set wks = ActiveSheet
'Datei für Datenausgabe öffnen
intFF = FreeFile()
Open varDatei For Output As #intFF
With wks
'Daten einlesen und in Datei schreiben
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
For Spalte = 1 To 39
If Spalte = 1 Then
'Persnummer
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 1).Text, _
Feldlaenge:=6, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 2 Then
'Status
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 2).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 3 Then
'Einsatztag
strDatensatz = strDatensatz & .Cells(lngZeile, 3).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 4 Then
'Fabrikkalender
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 4).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 5 Then
'Schichtkennzeichen1
strDatensatz = strDatensatz & .Cells(lngZeile, 5).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 6 Then
'Schichtkennzeichen2
strDatensatz = strDatensatz & .Cells(lngZeile, 6).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 7 Then
'Schichtkennzeichen3
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 7).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 8 Then
'Schichtkennzeichen4
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 8).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 9 Then
'Schichtkennzeichen5
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 9).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 10 Then
'Firma
strDatensatz = strDatensatz & .Cells(lngZeile, 10).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 11 Then
'Kostenstelle
strDatensatz = strDatensatz & .Cells(lngZeile, 11).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 12 Then
'Schicht von
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 12).Text, _
Feldlaenge:=4, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 13 Then
'Schicht bis
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 13).Text, _
Feldlaenge:=4, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 14 Then
'Name
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 14).Text, _
Feldlaenge:=25, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 15 Then
'Vorname
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 15).Text, _
Feldlaenge:=20, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 16 Then
'Ausweisnr
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 16).Text, _
Feldlaenge:=6, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 17 Then
'Arbeitsplatz
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 17).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 18 Then
'Arbeitsplatzinfo
strDatensatz = strDatensatz & .Cells(lngZeile, 18).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 19 Then
'Disposition
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 19).Text, _
Feldlaenge:=25, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 20 Then
'Vermittlungskennzeichen
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 20).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 21 Then
'Stammlohngruppe
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 21).Text, _
Feldlaenge:=3, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 22 Then
'StammTarifkennzeichen1
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 22).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 23 Then
'StammTarifkennzeichen2
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 23).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 24 Then
'Lohngruppe
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 24).Text, _
Feldlaenge:=3, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 25 Then
'Tarifkennzeichen1
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 25).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 26 Then
'Tarifkennzeichen2
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 26).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 27 Then
'Verrechnungssatz
strDatensatz = strDatensatz & .Cells(lngZeile, 27).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 28 Then
'nichtFunktion2
strDatensatz = strDatensatz & .Cells(lngZeile, 28).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 29 Then
'nichtLadung1
strDatensatz = strDatensatz & .Cells(lngZeile, 29).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 30 Then
'nichtLadung2
strDatensatz = strDatensatz & .Cells(lngZeile, 30).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 31 Then
'Körperbehinderung
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 31).Text, _
Feldlaenge:=1, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 32 Then
'Fahrgemeinschaft
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 32).Text, _
Feldlaenge:=3, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 33 Then
'Bestellort
strDatensatz = strDatensatz & .Cells(lngZeile, 33).Text
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 34 Then
'Quali1
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 34).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 35 Then
'Quali2
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 35).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 36 Then
'Quali3
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 36).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 37 Then
'Quali4
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 37).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
If Spalte = 38 Then
'zusatzfunktion20
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 38).Text, _
Feldlaenge:=2, Fuellzeichen:=" ", bolVor:=False)
strDatensatz = strDatensatz & Chr(59) 'Leerzeichen
Else
'Geschlecht
strDatensatz = strDatensatz & Datenfeld(Wert:=.Cells(lngZeile, 39).Text, _
Feldlaenge:=1, Fuellzeichen:="M", bolVor:=False)
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next Spalte
strDatensatz = Application.Clean(strDatensatz)
'Daten der Spalten einlesen und für Datensatz-String aufbereiten
'Datensatz in Datei schreiben
Print #intFF, strDatensatz
strDatensatz = "" 'Variable leeren
Next lngZeile
End With
'Datendatei schliessen
Close #intFF
End Sub