Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Markierten Bereich als Text Datei speichern

Markierten Bereich als Text Datei speichern
08.08.2019 12:35:48
Jürgen
Einen schönen Guten Tag wünsche ich euch allen.
Da ich neu in diesem Forum bin, möchte ich mich kurz bei euch vorstellen.
Mein Name ist Jürgen, bin knapp über 50 Jahre alt, wohne auf der Schwäbischen Alb und bin von Beruf Mechaniker.
Mit Excel habe ich mal mehr, mal weniger zu tun.
Ich kann in Excel Tabellen erstellen und fertige VBA-Codes einbringen.
Anpassen kann ich nur die einfachsten Sachen in VBA-Codes, da mir einfach die
Zeit fehlt, mich richtig in VBA einzuarbeiten.
Über dieses Forum: Hier sind wirkliche Profis am Werk! Einfach Klasse!
Bisher habe ich schon viele Lösung in diesem Forum gefunden. Danke!
Doch nun komme ich ohne Hilfeleistung von eurer Seite nicht mehr weiter.
Ich habe den nachfolgenden VBA-Code. Ich markiere vorab bestimmte Zellen und lasse diese mit dem Code in eine Textdatei schreiben. Dies funktioniert soweit auch wunderbar.
Bis auf Zellen, die ein Formelergebnis beinhalten. Hier bekomme ich z.B. anstatt dem Wert 0,001 diese Ausgabe in der Textdatei: -1,00000000000033E-03
Müsste man hier eventuell den Inhalt der Zelle auslesen und nicht das Ergebnis der Formel?
Leider komme ich hier selbst nicht mehr weiter.
Kann mir bitte jemand den Code anpassen?
Sub SelInText2()
Dim rngZ As Range, arrV, strE As String, kk As Integer, ss As Long
Const strDel As String = " "                    ' Trennzeichen
For Each rngZ In Selection.Rows
arrV = Application.Transpose(Application.Transpose(rngZ.Value))
For ss = 1 To UBound(arrV)
arrV(ss) = Replace(arrV(ss), ",", ".")
Next ss
If strE  "" Then strE = strE & vbCrLf
strE = strE & Join(arrV, strDel)
Next rngZ
kk = FreeFile(1)
Open "c:\temp\SelInText.txt" For Output As kk   ' Ausgabedatei - anpassen
Print #kk, strE
Close kk
End Sub

Mit freundlichem Gruß
Jürgen
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierten Bereich als Text Datei speichern
08.08.2019 12:39:51
peterk
Hallo
Nimm rngZ.Text statt rngZ.Value dann wird auch die Formatierung berücksichtigt
AW: Markierten Bereich als Text Datei speichern
08.08.2019 13:10:03
Jürgen
Hallo Peter,
danke für Deine schnelle Antwort.
Ich habe "rngZ.Text" eingegeben.
...
...
For Each rngZ In Selection.Rows
arrV = Application.Transpose(Application.Transpose(rngZ.Text))
If strE "" Then strE = strE & vbCrLf
...
...
leider bekomme ich folgende Fehlermeldung.
Laufzeitfehler '1004':
Ungültige Anzahl von Argumenten.
Muss ich sonst noch etwas anpassen?
Gruß
Jürgen
Anzeige
AW: Markierten Bereich als Text Datei speichern
08.08.2019 14:03:50
peterk
Hallo Jürgen
Probier folgenden Code
Sub SelInText2()
    Dim rngZ As Range
    Dim celZ As Range
    Dim strE As String

    Const strDel As String = " "                    ' Trennzeichen 
    strE = ""

    For Each rngZ In Selection.Rows
        If strE <> "" Then strE = strE & vbCrLf
        For Each celZ In rngZ.Cells
            strE = strE & Replace(celZ.Text, ",", ".") & strDel
        Next celZ
    Next rngZ
    
    kk = FreeFile(1)
    Open "c:\temp\SelInText.txt" For Output As kk   ' Ausgabedatei - anpassen 
    Print #kk, strE
    Close kk
End Sub

Anzeige
AW: Markierten Bereich als Text Datei speichern
08.08.2019 14:39:40
Jürgen
Hallo Peter,
funktioniert.
Vielen Dank für Deine Mühe.
Natürlich auch an Daniel.
Ich wünsche Euch eine Gute und Gesunde Zeit.
Gruß
Jürgen
AW: Markierten Bereich als Text Datei speichern
08.08.2019 13:36:07
Daniel
HI
das Problem ist, dass Computer nicht immer ganz genau rechnen und du hier eine minimale Abweichung in den allerletzten möglichen Stellen hast.
Da du das Umwandeln der Zahl in Text der Automatik überlässt, wird hier natürlich die Darstellungsform verwendet, mit der sich der Zellwert am besten darstellen lässt.
eine Möglichkeit wär, dass du erstmal rundest, bevor du in Text wandelst:
for ss = 1 to ubound(arrV)
if Vartype(arrV(ss)) = vbDouble then arrV(ss) = Round(arrV(ss), 10)
arrV(ss) = Replace(arrV(ss), ",", ".")
Next
Gruß Daniel
Anzeige
AW: Markierten Bereich als Text Datei speichern
08.08.2019 14:19:45
Jürgen
Hallo Daniel,
danke für Deine Antwort.
Ich bring es leider nicht zum laufen.
Kannst Du mir bitte den kompletten, richtiggestellten Code senden,
ich bring es einfach nicht zusammengefügt, dass es funktioniert.
Gruß Jürgen
AW: Markierten Bereich als Text Datei speichern
08.08.2019 14:38:37
Daniel
du musst doch nur diese eine Zeile einfügen.
Gruß Daniel
Anzeige
AW: Markierten Bereich als Text Datei speichern
08.08.2019 14:48:26
Jürgen
Hi Daniel,
funktioniert!
Vielen Dank noch einmal für Deine Mühe.
Gruß
Jürgen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Markierten Bereich als Textdatei speichern


Schritt-für-Schritt-Anleitung

  1. Markieren des Bereichs: Wähle die Zellen in Excel aus, die du als Textdatei speichern möchtest.

  2. Öffnen des VBA-Editors: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. VBA-Code einfügen: Kopiere den folgenden angepassten VBA-Code in das Modul:

    Sub SelInText2()
        Dim rngZ As Range, celZ As Range
        Dim strE As String
        Const strDel As String = " " ' Trennzeichen
        strE = ""
    
        For Each rngZ In Selection.Rows
            If strE <> "" Then strE = strE & vbCrLf
            For Each celZ In rngZ.Cells
                strE = strE & Replace(celZ.Text, ",", ".") & strDel
            Next celZ
        Next rngZ
    
        Dim kk As Long
        kk = FreeFile(1)
        Open "c:\temp\SelInText.txt" For Output As kk ' Ausgabedatei - anpassen
        Print #kk, strE
        Close kk
    End Sub
  5. Code ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle das Makro SelInText2 aus und klicke auf Ausführen.

  6. Textdatei prüfen: Überprüfe den Ordner c:\temp\ auf die erstellte Textdatei SelInText.txt.


Häufige Fehler und Lösungen

  • Laufzeitfehler '1004': Wenn du den Fehler "Ungültige Anzahl von Argumenten" bekommst, stelle sicher, dass du celZ.Text korrekt verwendest. Überprüfe auch die Syntax im Code.

  • Falsches Format: Wenn die Zahlen in der Textdatei nicht korrekt dargestellt werden, füge eine Rundung hinzu, bevor die Werte gespeichert werden. Nutze dafür folgenden Codeausschnitt:

    For ss = 1 To UBound(arrV)
        If Vartype(arrV(ss)) = vbDouble Then arrV(ss) = Round(arrV(ss), 10)
        arrV(ss) = Replace(arrV(ss), ",", ".")
    Next

Alternative Methoden

  • Excel als PDF speichern: Wenn du den markierten Bereich als PDF speichern möchtest, kannst du dies über Datei > Speichern unter und dann das Format PDF auswählen.

  • Direktes Speichern ohne VBA: Eine schnelle Methode ist, den markierten Bereich zu kopieren (Strg + C), in einen Texteditor (z.B. Notepad) einzufügen und dort zu speichern.


Praktische Beispiele

  1. Speichern von Notizen: Du kannst den markierten Bereich mit Notizen oder Kommentaren als Textdatei speichern, um diese einfach weiterzugeben oder zu archivieren.

  2. Datenexport für Datenbanken: Wenn du Daten für Datenbankanwendungen exportieren möchtest, ist das Speichern als Textdatei eine oft genutzte Methode.


Tipps für Profis

  • Anpassen des Trennzeichens: Du kannst das Trennzeichen in der Konstante strDel ändern, um die Ausgabe deinen Bedürfnissen anzupassen, z.B. zu "," für CSV-Dateien.

  • Automatisierung: Überlege, den Prozess zu automatisieren, indem du das Makro an einen Button oder ein Ereignis in Excel bindest.


FAQ: Häufige Fragen

1. Wie speichere ich Excel-Daten als TXT-Datei?
Du kannst die oben beschriebenen VBA-Methoden verwenden oder die Daten manuell in einen Texteditor kopieren und dort speichern.

2. Kann ich den markierten Bereich auch als PDF speichern?
Ja, du kannst den markierten Bereich über Datei > Speichern unter und das Format PDF auswählen, um die Daten als PDF zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige