Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

Range(C12:E30) als .txt speichern / exportieren ?

Range(C12:E30) als .txt speichern / exportieren ?
udo-d
Hallo Profis,
hat evt. Jemand von Euch einen Code, mit dem ich nur einen best. Zellenbereich
eines best. Tabellenblattes ( Name zB: "Auswertung" )
Bereich C12:E30 als Textdatei exportieren / speichern kann ?
im ges. Workbook sind mehrere Tab.Blätter - weis nicht ob das wichtig is dafür ?
Habt ihr da was, was man verwenden kann.
Im der online Datenbank hab ich lediglich einen sehr komplizierten ( zum. für mich )
Code gesehn, mit dem ich leider gar nicht klar komm,
evt. hat mir ja Jemand ein Beispiel, wär 1. Klasse.
Lieben Dank an alle Helfer
udo
Beispiel
12.10.2009 17:56:56
Backowe
Hi Udo,
Sub export_TXT()
Dim fileSaveName As String
Dim Trennzeichen As String, Text As String
Dim Zeile As Long, Spalte As Long
Close #1
fileSaveName = "C:\Test.txt"
Open fileSaveName For Output As #1
Trennzeichen = ","
With Sheets("Auswertung")
For Zeile = 12 To 30
Text = ""
For Spalte = 3 To 5
Text = Text & .Cells(Zeile, Spalte).Value & Trennzeichen
Next Spalte
Print #1, Text = Left(Text, Len(Text) - 1)
Next Zeile
End With
Close #1
End Sub
Gruß Jürgen
zunächst schon mal großen Dank, leider ...
12.10.2009 18:21:23
udo-d
passt es noch nicht ganz .
zum Beitrag von Backowe : schriebt lauter Falsch Falsch ... untereinander ?
zu NoNet : das Prob. dabei, ist dass die Datei später dann auf einem MAC Rechner laufen soll,
der kann wohl , so wurde mir versichert auch Exceldateien bewältigen, die haben da wohl so eine Art abgespecktes Excel das wohl auch von MS entwickelt wurde ?
nur haben bislang einige Anweisungen immer wieder geändert werden müssen.
Bzgl. deines Adins - ob das nachher dann da lauft ?
bei mir auf Windows best. aber ... ?
Ich habe eben zeitgleich noch folgendes gefunden in der Recherche:
funktioniert soweit schon prima ABER in spalte H stehen in dem Excelsheet Formeln, die
Spalten E F G addieren etc. und somit auch ein ergebnis in Zahlenform ( Geldbetrag ) anzeigen.
diese Formelergebnisse werden leider nicht mit exportiert ?
kennt Ihr euch da aus , und könnt evt. einsehen woran das liegen könnte ?
PS. hatte mich vorhin verschrieben der Exportbereich ist C12:H30
Dim intRow As Integer, intColCount As Integer, intCol As Integer
Dim strTmp, fileandpath As String
fileandpath = ActiveSheet.Parent.Path & "\" & Range("N25").Value & ".txt"
Danke Euch sehr , udo-d
Anzeige
AW: Range(C12:E30) als .txt speichern / exportieren ?
12.10.2009 18:13:41
Josef
Hallo Udo,
der Code exportiert den Tabellenbereich getrennt durch Semikolon.
Sub exportText()
  Dim strFile As String, strTmp As String
  Dim varTmp As Variant
  Dim lngRow As Long, lngCol As Long
  
  strFile = "E:\Temp\test.txt" 'Pfad und Name der Textdatei - Anpassen!
  
  varTmp = Sheets("Tabelle1").Range("C12:E30") 'Tabellenname und Bereich - Anpassen!
  
  For lngRow = 1 To UBound(varTmp, 1)
    For lngCol = 1 To UBound(varTmp, 2)
      strTmp = strTmp & varTmp(lngRow, lngCol) & ";"
    Next
    strTmp = Left(strTmp, Len(strTmp) - 1) & vbCrLf
  Next
  
  strTmp = Left(strTmp, Len(strTmp) - 1)
  
  
  Open strFile For Output As #1
  Print #1, strTmp;
  Close #1
  
End Sub


Gruß Sepp

Anzeige
der passt scheinbar perfekt ... ( m.T )
12.10.2009 18:31:30
udo-d
Hallo Sepp,
liebn Dank auch an dich , hab deinen Code an den entspr. Stellen angepasst
bei deinem Code werden auch die Formelergebnisse mit exportiert - super !!!
das hilft mir sehr ...
ganz herzlichen Dank an Euch alle, und an evt. noch folgende zwecks Überschneidung ;-)
Schönen Gruß udo
noch eine Variante...
12.10.2009 18:28:22
Tino
Hallo,
Du wirst nach dem Ziel gefragt.
Leere Zeilen werden übersprungen.
Zellebereich noch anpassen!
Trennzeichen anpassen!
Sub test()
Dim Dein_Bereich As Range
Dim sZiel As String, Ausgabe As String
Dim F As Integer

Const strTrennzeichen As String = ";" 'Trennzeichen festlegen 

Set Dein_Bereich = Sheets("Tabelle1").Range("C12:E30") 'Dein Bereich 

sZiel = Application.GetSaveAsFilename("MeinTextFile", "Textdateien (*.txt), *.txt")

If sZiel <> CStr(False) Then
  
  With Application
    For Each Dein_Bereich In Dein_Bereich.Rows
     If .WorksheetFunction.CountIf(Dein_Bereich, "") < Dein_Bereich.Columns.Count Then
      Ausgabe = Ausgabe & Join(.Transpose(.Transpose(Dein_Bereich)), strTrennzeichen) & vbCrLf
     End If
    Next Dein_Bereich
  End With
  
  If Ausgabe <> "" Then
    Ausgabe = Left$(Ausgabe, Len(Ausgabe) - 1)
     
    F = FreeFile
    Open sZiel For Output As #F
    Print #F, Ausgabe
    Close #F
  Else
    MsgBox "keine Daten"
  End If
End If
Gruß Tino
Anzeige
eine Frage hierzu ...
12.10.2009 18:37:07
udo-d
Hallo Tino,
kannst du mir evt. noch sagen wie er in dem Zellenbereich auch leere mit berücksichtigt.
da wär das Ergebniss schöner anzuschauen, sprich dann würden die jew, Spalten glaub auch untereinander stehen in derTextdatei, wenn da auch mal leere Stellen wären oder ?
Im Moment schiebt der ja alle Lücken zusammen ...
Auch herzlichen Dank an dich
udo
Gegenfrage
12.10.2009 18:41:57
Tino
Hallo,
was meinst Du, damit das Ergebnis nicht so aussieht?
Wert;Wert;;;;;Wert
Gruß Tino
AW: Gegenfrage
12.10.2009 18:51:56
udo-d
achso, entschuldige , ich vergas ... hab bei deiner Anweisung das ";" gegen " " eine leere Stelle getauscht.
Aber egal ob ich, nun ; oder " " verwende, wenn man per Code diesen Bereich exportiert, dann werden
wenn in einer der Zeilen, und Zellen dort nichts drinne steht, das in dem Fall nicht berücksichtigt.
Sodass er in der jew. zeile immer nur das " " exportiert.
Das hat zur Folge, das wenn man das TXT File sich anschaut , die Werte sich von Zeile zu Zeile " vertikal " versetzen bzw. verschieben.
schöner anzuschauen wäre in dem Fall , wenn sozusagen die Einträge in den Spalten ( von der Ausrichtung her ) untereinander blieben - auch im exportierten File , sprich er müsste glaub lediglich leere zellen auch berücksichtigen ?
Hatte anfangs das ganze Tab.Blatt als TXT. gespeichert, und da funktioniert das dann , allerdings ist eben auch der ganze restl. Bereich auch dabei ( ausserhalb C12:H30)
hoff ich konnt das verständl. erklären ,
Lieben Dank
udo
Anzeige
versuche es mal mit vbTab
12.10.2009 19:01:44
Tino
Hallo,
es kommt aber auf die länge Deines Daten an bei zu großem Unterschied gehts so nicht.
Const strTrennzeichen As String = vbTab
Gruß Tino
6 Richtige !!! großen Dank ... genau so
12.10.2009 19:12:29
udo-d
Danke Tino, funktioniert prima.
Und auch nochmals großen Dank an Alle ,
ihr habt mir sehr geholfen,
Gruß udo

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige