Anzeige
Archiv - Navigation
1704to1708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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
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

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige