WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Excel Zelle in Textdatei (txt) rausschreiben/exportieren (http://www.wcm.at/forum/showthread.php?t=243587)

J@ck 23.12.2011 11:35

Excel Zelle in Textdatei (txt) rausschreiben/exportieren
 
Liebe Kenner,

ich suche einen Code, mit dem ich bestimmte Zellen eines Excel Sheets in eine txt Datei exportieren kann.
Wichtig ist dabei, dass die Zellen untereinander mit Semikolon ( ; ) getrennt sind und an diese Datei immer unten angehängt (also nicht überschrieben) wird.

Es gibt zwar im www weitgehend viel Material dazu, aber mit meinem zweiten Anliegen stehe ich meist an.

Danke & LG
Jack

pc.net 23.12.2011 11:40

das schreit nach einem makro ;)

ZombyKillah 23.12.2011 15:14

Ich denke hier wird das Thema recht ausführlich behandelt:
http://stackoverflow.com/questions/1...n-command-line

Oder hier:
http://www.softinterface.com/Convert...XLS-To-CSV.htm

J@ck 23.12.2011 16:01

@pc.net: Dass es ein Makro wird, war mir schon klar ;)

@ZombyKillah: Ich wollte eigentlich nicht das ganze xls in was anderes umwandeln, sondern nur den Inhalt einzelner Zellen wegschreiben lassen.

ZombyKillah 23.12.2011 16:14

Willst du die Zeilen manuell auswählen oder anhand des Inhaltes automatisch anhängen lassen?
Für mich sieht es nach einen Fall für umwandeln, suchen, anhängen aus.

Oder man baut im VB Skript von Link1 eine entsprechende Suche ein.

pc.net 23.12.2011 22:13

Jack, mach eine detailliertere Anforderungsbeschreibung, ev. mit Beispieltabelle, dann kann dir eher geholfen werden ;) ...

J@ck 24.12.2011 13:59

Beispiel:
In einem Excel Sheet werden verschiedene Informationen eingetragen wie z.B. Name, Adresse, Geburtsdatum, Telefonnummer und E-Mail Adresse. Jede Information in einer eigenen Zelle (eh klar). In diesem Sheet sind eine ganze Menge mehr Informationen drinnen.

Ein Script/Makro/Automatismus soll 3 dieser 50 verschiedenen Zellen in ein (txt) File exportieren: Vorname, Nachname und E-Mail Adresse. Getrennt mit einem Semikolon und fortlaufend mit nächster Zeile.

pc.net 25.12.2011 00:03

sind die spalten immer an der gleichen position?

J@ck 25.12.2011 09:15

Die Zellen sind immer gleich, hoffe Du meintest diese :hallo:

wbendl 17.01.2012 00:33

Hi!

Dieser Code sollte den gewünschten Effekt bringen.

Code:

Private Sub Export()
  Dim cnn As New ADODB.Connection
  Dim rst As New ADODB.Recordset
  Dim strSQL As String
 
  Dim intFilehandle As Integer
  Dim strFilename As String
 
  Dim fld As Field
  Dim strLine As String
 
  cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
      & "Extended Properties=""Excel 8.0;HDR=YES;"";" _
      & "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";"
 
  strSQL = "SELECT [Vorname], [Nachname], [E-Mal Adresse] FROM [Tabelle1$A:E]"
 
  cnn.Open
  rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
 
  strFilename = ThisWorkbook.Path & "\" & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 3) & "txt"
 
  intFilehandle = FreeFile()
  Open strFilename For Output As intFilehandle
 
  Do While Not rst.EOF
    For Each fld In rst.Fields
      strLine = strLine & fld.Value & ";"
    Next
      strLine = Left(strLine, Len(strLine) - 1)
      Print #intFilehandle, strLine
      strLine = vbNullString
    rst.MoveNext
  Loop
  Close #intFilehandle
 
End Sub

Ein Verweis auf ADO muß gesetzt werden.
Einige Parameter müssen angepaßt werden

Name und Pfad der txt werden aus der xls übernommen.


mfg

WB

Karl99 17.01.2012 09:23

Also ich wäre auf die primitivste Form umgestiegen:

1.) Neues Tabellenblatt
2.) Kopiere von einem Tabellenblatt auf das Neue - aber nur die entsprechenden Spalten
3.) Abspeichern als csv-Datei (TRennzeichen-getrennt). Es gibt zwar bei mir 2 Abfragen (mit OK und JA bestätigt), die aber dahingehend positiv ist, als dass mir Excel u.a. mitgeteilt hat, dass es nur das aktuelle Tabellenblatt als txt-Datei abspeichert.
4.) Renamen von CSV nach TXT - und Du hast das, was Du haben möchtest.

Der Vorteilo liegt darin, dass Du Dir immer etwas zusammenstellen kannst (ohne jetzt wild Makros zu schreiben).

TheltAlpha 24.03.2014 23:44

Hallo!

Ich möchte so etwas ähnliches bewerkstelligen, weiß aber nicht wie. Angenommen, ich habe eine Textdatei mit einem statischen Text. An bestimmten Stellen im Text möchte ich Inhalte aus Zellen einfügen. Beispiel:
Code:

Dies hier ist ein $1 Beispiel für $2 einen statischen Text. $3 Er ist als Textdatei gepseichert.
Überall, wo jetzt $x steht, soll jeweils ein Wert aus einer Excel-Tabelle eingefügt werden. Also es wird beispielsweise definiert, dass $1 dem Inhalt der Zelle A1 entspricht, $2 dem Inhalt der Zelle B1 usw.

Beim ganzen handelt es sich nicht um eine Zeile, sondern um mehrere. Es soll immer der selbe statische Text mit den Zelleninhalten je einer Excelzeile ergänzt werden und in einer Datei in Zeilen gespeichert werden. Wie kann ist das bewerkstelligen?


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag