VBA Code Zelleninhalt in txt Datei Speichern

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Petersilie.

    VBA Code Zelleninhalt in txt Datei Speichern

    Hallo,
    als absoluter VBA Anfänger suche ich einen Code für folgendes Problem.
    Ich möchte den Inhalt mehrer Zellen in einer txt Datei Speichern, diese soll immer weiter nach unten fortgeführt werden.
    Ich habe folgenden Zellinhalt...

    G
    "Nummer"
    "Nummer"
    "Nummer"

    H
    "Nummer"
    "Nummer"
    "Nummer"

    J
    "Name"
    "Name"
    "Name"

    BB
    "Datum"
    "Datum"
    "Datum"

    BE
    "Bewertung"
    "Bewertung"
    "Bewertung"


    Zeilen 11-500

    so soll der Eintrag in der txt Datei aussehen...
    Nummer;Nummer;Name;Datum;Bewertung

    Hoffe mir kann da jemand weiterhelfen. :)
    @waremaster6

    Hi, das könnte z.B. so aussehen:

    Visual Basic-Quellcode

    1. Private Sub CreateTextfile()
    2. Dim array_(), varItem As Variant
    3. Dim worksheet_ As Worksheet
    4. Dim path_ As String
    5. Dim file_ As Long
    6. path_ = "Pfad zur Txt Datei"
    7. Set worksheet_ = ThisWorkbook.Sheets(1)
    8. array_ = ValueArray(worksheet_)
    9. file_ = FreeFile
    10. Open path_ For Output As #file_
    11. For Each varItem In array_
    12. Print #file_, varItem
    13. Next varItem
    14. Close #file_
    15. End Sub
    16. Private Function ValueArray(ByVal ws As Worksheet) As Variant
    17. Dim array_() As Variant
    18. Dim i As Long
    19. ReDim array_(489)
    20. With ws
    21. For i = 11 To 500
    22. array_(i - 11) = .Cells(i, 7).Text & ";" & _
    23. .Cells(i, 8).Text & ";" & _
    24. .Cells(i, 10).Text & ";" & _
    25. .Cells(i, 54).Text & ";" & _
    26. .Cells(i, 57).Text
    27. Next i
    28. End With
    29. ValueArray = array_
    30. Erase array_
    31. End Function
    @waremaster6

    Drücke Alt+F11 und erstelle ein neues Modul, das kannst du nennen wie du möchtest. (Also ja richtig, in einem Modul)
    Ändere bitte noch "Private Sub CreateTextfile()" in "Public Sub CreateTextfile()" ,
    sonst ist das Makro von außen nicht erreichbar!

    Aus Excel heraus kannst du es mit Alt+F8 starten,
    aus dem Modul heraus mit F5 (Du musst dich im Code dafür befinden)

    Um das Worksheet zu ändern musst du folgendes machen:

    Visual Basic-Quellcode

    1. Set worksheet_ = ThisWorkbook.Sheets("Dein Worksheet Name")

    Wenn du das Worksheet mit seinem Namen referenzierst, musst du den Namen in Anführungszeichen in die Klammernsetzen,
    wenn du den Index des Worksheet zum referenzieren verwendest, dann einfach den Index (In meinem Code eben 1)