Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
156to160
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
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Feste Zeichenlänge in Zellen für Export

Feste Zeichenlänge in Zellen für Export
12.09.2002 21:06:21
Rolf
Hallo again !

Möchte für Weiterverarbeitung eine Exceltabelle als txt oder csv exportieren. Das ist erstmal kein Problem. ABER: Auf dem anderen System (AIX) müssen die Felder in einer festen Länge eingelesen werden. D.h.: Excel Zelle hat z.B. 20 Zeichen(kann aber variabel oder leer sein) aber Feld muß 30 Zeichen lang sein. Auffüllen mit Leerzeichen funktioniert meines Wissens nicht bei txt oder csv, oder ? Mein Ansatz war: Benutzer definierte Formatierung, aber das hat leider nicht ganz hingehauen. :-(

Danke

Rolf

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makrolösung
12.09.2002 21:32:37
Ramses
Hallo Rolf,

Markiere den Bereich den du exportieren willst und lass dann das Makro laufen:

Sub Replace_to_30_Char()
Dim c As Range
Dim i As Integer, n As Integer
For Each c In Selection
    If c.HasFormula And Len(c.Value) < 31 Then
        temp = c.Value
        For i = Len(c.Value) To 30
            temp = temp & "."
        Next i
        c.Value = temp
    End If
    If Len(c.Value) < 31 Then
        temp = c.Value
        For i = Len(c.Value) To 30
            temp = temp & "."
        Next i
        c.Value = temp
    End If
    If Len(c) > 30 Then
        c.Value = Left(c, 30)
    End If
Next
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14

Das Makro füllt alle zellen mit einem Punkt auf bzw. kürzt die Einträge auf 30 Zeichen. Formeln werden separat behandelt, das heisst zuerst wird der Wert ermittelt anschliessend die Formel mit dem Wert überschrieben und mit Punkten aufgefüllt.

Gruss Rainer

Anzeige
Re: Makrolösung
12.09.2002 21:40:26
Rolf
Hallo Rainer,

kann "." auch " " sein ? Sonst habe alle "freien" Felder aufgefüllt durch "." Das darf nicht sein. Auch habe ich ca. 35 Spalten mit unterschiedlichen Feldlängen. Da müsste ich dein Makro 34 mal kopieren und dann jede Zelle überprüfen lassen. Hatte ich vielleicht nicht so deutlich formuliert.

Danke, so far

Rolf

Sollte schon gehen....
12.09.2002 22:02:37
Rames
Hallo Rolf,

markiere die Spalte die du formatieren willst und ruf das Makro auf. Du wirst vorher gefragt auf wieviel Zeichen du limitieren willst.

Sub Replace_to_30_Char()
Dim c As Range
Dim i As Integer, n As Integer
Dim Limit As Integer
Limit = Int(InputBox("Welche Zeichenlänge", "Limit prüfen", "30"))
For Each c In Selection
    'Wenn leere Zellen auch gefüllt werden sollen
    'von der nächsten Zeile das Kommentarzeichen entfernen
    'If Not IsEmpty(c) Then
        If c.HasFormula And Len(c.Value) < Limit + 1 Then
            temp = c.Value
            For i = Len(c.Value) To Limit
                temp = temp & "."
            Next i
            c.Value = temp
        End If
        If Len(c.Value) < Limit + 1 Then
            temp = c.Value
            For i = Len(c.Value) To Limit
                temp = temp & "."
            Next i
            c.Value = temp
        End If
        If Len(c) > Limit Then
            c.Value = Left(c, Limit)
        End If
    'Wenn oben das Kommentarzeichen entfernt wurde
    'auch hier entfernen
    'End If
Next
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Gruss Rainer

Anzeige
Geht gut, aber langsam ....
12.09.2002 23:01:05
Rolf
Hallo Rainer,

das Makro funktioniert gut, auch mit " " statt "." - Als txt Datei abgespeichert bleiben die "blanks" stehen. Auf AIX-Seite kann ich leider noch nicht prüfen, da mir die Doku noch fehlt. Aber das Makro läuft sehr langsam, bei ca 20 Zellen aufgehängt oder ist meine Büchse zu schlapp ? Das muss ich mal ohne extrem-Multitasking ausprobieren.

Danke Dir für Deine Mühe

Rolf

PS: Kennst du dich so richtig gut aus mit VB ? Hätte da nämlich noch ein etwas größeres Projekt

Zu schlapp :-)
12.09.2002 23:08:16
Ramses
Hallo Rolf,

Knapp 30000 Zellen in etwas 1 Minute :-)) ohne Probleme.
Mit VB habe ich kein Problem, aber für ein grösseres Projekt habe ich derzeit einfach keine Zeit.

Gruss Rainer

Anzeige
OK, Zu schlapp =:- O
12.09.2002 23:15:43
Rolf
Hallo Rainer,

dachte ich mir.

Naja, grosses Projekt ist immer eine Betrachtungsweise, wenn man etwas nicht beherrscht. Es dreht sich eigentlich um ein größeres Makro mit einlesen von Daten und Aufbereitung, hatte ich mal hier gepostet, hat aber keiner reagiert.

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige