![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.06.2001
Beiträge: 1.611
|
![]() 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! |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() 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 |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 22.06.2001
Beiträge: 1.611
|
![]() 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 |
![]() |
![]() |
![]() |
#4 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() 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 |
![]() |
![]() |
![]() |
#5 |
Aussteiger
![]() |
![]() 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 ... ![]()
____________________________________
Praktizierender Eristiker No hace falta ser un genio para saber quién dijo eso. Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein. |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 22.06.2001
Beiträge: 1.611
|
![]() @pc.net
Aaaarrrg! Warum tu ich mir das an mit diesem Makro... ![]() Na dann muss ich einfach nur die Spaltenbreite festlegen vor'm Speichern - danke! @wbendl Danke für die Rückmeldung! |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|