WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   txt-Export mit fester Spaltenbreite aus Excel - mit Macro? (http://www.wcm.at/forum/showthread.php?t=116788)

row 26.11.2003 15:37

txt-Export mit fester Spaltenbreite aus Excel - mit Macro?
 
Hi Leute,

ich weiss zwar nicht ob ich da wirklich ein Makro programmieren muss, aber sicherheitshalber post ich mal in der Rubrik "Programmierung".

Ich möchte aus einer Excel Tabelle Zeicheneinträge mehrerer Spalten als ein txt-File exportieren. Die Zeicheneinträge sind unterschiedlich lang (zwischen 3 und z.B. 15 Zeichen) - beim Export möchte ich dass bei kürzeren Einträgen einfach soviele Leerzeichen eingefügt werden, so viele wie das längste Wort hat (Tabulator geht leider nicht). Damit erhalte ich dann txt-Spalten die genau untereinander sind (feste Spaltenbreite).

Hat jemand eine Ahnung wie man das macht?

P.S: Er muss mir das längste Wort nicht suchen - dass kann ich ruhig manuel ermitteln!

wbendl 26.11.2003 17:34

Hi!

Wenn du unbedingt mit Leerzeichen auffüllen mußt, wird es nicht ohne Makro gehen.
Dann kannst du den längsten Ausdruck auch automatisch suchen lassen.

mfg

WB

row 27.11.2003 09:38

Kann sich wer mal das folgende Makro anschauen?
Es soll in Spalte 8 die jeweilige Zellenlänge (von oben nach unten) bestimmen, die Differenz zu 15 Zeichen ermitteln und dann (wenn <15) mit Leerzeichen auf 15 Zeichen auffüllen:

Code:

Sub Auffuellen()
Dim Leerz As String
Dim i As Long, laR As Long
Dim aZ As Byte
    Leerz = "              "  '15 Leerzeichen
    laR = Cells(Rows.Count, 8).End(xlUp).Row
    MsgBox laR
    For i = 1 To laR
      aZ = Len(Cells(i, 8).Text)
     
      If aZ < 15 Then Cells(i, 8).Value = _
        Cells(i, 8).Value & Left(Leerz, 15 - aZ)
    MsgBox Cells(i, 8).Value
    Next i

End Sub


wbendl 27.11.2003 20:02

Hi!

Ich bin mit dem Objektmodell von Excel nicht so ganz vetraut. Aber ich gehe davon aus, daß dein Makro funktioniert.

Die If-Bedingung würde ich einfach weglassen. Falls der String schon vorher aus 15 Zeichen besteht, ändert sich ja nichts.

Eventuell müßte man prüfen, ob ein String mehr als 15 Zeichen hat.

mfg

WB

pc.net 27.11.2003 20:14

warum einfach, wenns kompliziert auch geht ;)

Datei | Speichern unter ... | Dateityp: Formatierter Text (Leerzeichen getrennt) (*.prn)

die spaltenbreite dient dann als referenz für die anzahl an zeichen auf die die einzelnen felder aufgefüllt werden ...

zumindest unter excel 2002 gehts so ...

;)

row 27.11.2003 21:51

@pc.net
Aaaarrrg! Warum tu ich mir das an mit diesem Makro... :eek:
Na dann muss ich einfach nur die Spaltenbreite festlegen vor'm Speichern - danke!

@wbendl
Danke für die Rückmeldung!


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:14 Uhr.

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