# Von Excel in Textdatei schreiben!



## tYrEaL (18. Februar 2004)

hi!

Wie man am Betreff schon sehen kann, möchte ich in VB6 auf ein Exceldokument zugreifen und dann bestimmte Zellen in ein Textdokument schreiben....

wer kann mir helfen




Gruß
tYrEaL


----------



## DBoemler (19. Februar 2004)

*Excel als Textdatei speichern*

Hallo !

Mit dem beiliegenden Makro (frei nach Bernd Held VBA in 21 Tagen) müsste der Export  in eine Textdatei  klappen.

Sub InTextDatei()
Dim Bereich As Range
Dim Zelle As Range
Dim Zeile As Range
Dim s As String


'Aktives Tabellenblatt as Quelle auswählen
Set Bereich = ActiveSheet.UsedRange

'zur besseren Übersicht wird der benutzte Bereich markiert
Bereich.Select

'falls nur ein bestimmter Bereich der Tabelle übergeben werden soll
'muss der Bereich ausgewählt werden.  Beispiel
:'"set Bereich=nameworkbook.worksheets(name).range("a1:d4")"

s = ""

Open "c:\test.txt" For Output As #1

'Abarbeiten aller Zeilen im benutzten Bereich
For Each Zeile In Bereich.Rows

'Abarbeiten aller Spalten (Zellen) im benutzten Bereich
    For Each Zelle In Zeile.Cells

    'Übergabe in den Textstring s

       s = s & Zelle.Text & "," 'Komma als Trennzeichen


    Next

    'Beim letzten Wert das Trennzeichen entfernen

       s = Left(s, Len(s) - 1)

    'wenn s <>"" ist dann in die Textdatei schreiben
    If s <> "" Then
       Print #1, s
    End If

    's leeren
    s = ""

    Next

Close #1



End Sub

Viel Erfolg!

D. Bömler


----------



## tYrEaL (25. Februar 2004)

hallo, 

und schon einmal danke für deine antwort!
aber wo sag ich ihm welche datei er nehmen soll?



gruß,
tYrEaL


----------



## DBoemler (25. Februar 2004)

Hallo!

Bei dem Makro wird automatisch das jeweils aktive Blatt der Exceltabelle ausgewählt

"Set Bereich = ActiveSheet.UsedRange"

Den Code einfach in ein Modul der entsprechenden  Tabelle einfügen und über Makro starten oder den Code in die "personl.xls" im Ordner "XLStart" des Officeverzeichnises als Makro einfügen und ebenfalls über Makro starten.

Gruß 

D. Bömler


----------



## DBoemler (25. Februar 2004)

Hallo nochmal!

Wenn Du meinst, in welche Datei die Daten geschrieben werden sollen, ist die Zeile mit dem Open-Befehl wichtig. Hier wird der Name incl. Verzeichnis der entsprechenden Datei angegeben. Sofern die Datei noch nicht erstellt wurde,  erfolgt dies automatisch.

Gruß 

D. Bömler


----------



## tYrEaL (27. Februar 2004)

*huhu*

hi!

ok es klappt jetzt soweit schon einmal alles,ein Danke dafür!

Aber, 

ich krieg es nicht hin ,dass er bestimmte Spalten nimmt. wie krieg ich das hin?
Mit deinem Beispiel oben,klappt es irgednwie nicht?hast du oder wer anders ne Idee?



Gruß,
tYrEaL


----------



## DBoemler (27. Februar 2004)

Hallo!

Bestimmte Spalten kannst Du über den SET BEREICH = - Befehl auswählen

Beispiel:

Übertragung der Werte aus den Zellen A1 bis D5 des aktiven Tabellenblattes

Set Bereich=Activesheet.Range("A15")

Übertragung der Werte aus den Zellen A bis D des aktiven Tabellenblattes
Set Bereich=Activesheet.Range("A")

Gruß 

D. Bömler


----------

