Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA wechseln und glätten
#11
Danke Ralf. Das hatte ich übersehen. Habe den Code auch nur auf die Schnelle aufgezeichnet Wink
Gruß
Michael
Antworten Top
#12
Hallo zusammen,

zuerst mal ein herzliches Dankeschön an alle, die sich so aktiv an meinem Problem beteiligen.
Wenn ich meine anstehenden Prüfungen hinter mir habe, werde ich mich mal etwas mehr mit dem Thema VBA befassen.
Im Moment fehlt mir aber leider die Zeit dafür.

@Michael:
Dein Makro scheint super zu funktionieren. Das Ergebnis hatte ich zuvor über Suchen und Ersetzen und wechseln/glätten nicht gehabt.

Überzählige Leerzeichen wären meiner Meinung nach alle Leerzeichen am Anfang und Ende eines Textes und überall dort, wo mehr als ein Leerzeichen nacheinander steht (so wie manche Menschen Text in die nächste Zeile umbrechen, wenn sie nicht wissen, das man mit Alt+Enter einen Zeilenumbruch machen kann).

Ich habe nochmal ein kleine Beispieldatei angefügt.
In Zeile 1 befinden sich solche Leerzeichen, die überzählig sind.
In Zeile 2 und 6 bekomme ich die Zeilenhöhe auch nicht automatisch angepasst. Ich kann leider nicht erkenn, an was das liegen kann.

Ich freue mich riesig über Lösungsvorschläge.


Gibt es auch die Möglichkeit die Zeilenhöhe über ein Makro nur bei eingeblendeten Zeilen automatisch anzupassen? Normalerweise werden ja bei dem Befehl ActiveSheet.AutoFit auch alle ausgeblendeten Zeile wieder eingeblendet.

Gruß

Thomas


Angehängte Dateien
.xlsm   Beispieldatei 3.xlsm (Größe: 23,29 KB / Downloads: 4)
Antworten Top
#13
Um die Leerzeichen loszuwerden würde ich Worksheetfunction.Trim verwenden. Das beseitigt alle Leerzeichen (ob am Anfang, am Ende oder in der Mitte). Also z.B. die folgende Zeile im Code von Gast123:
Code:
AC.Value = Trim(AC)
so abändern
Code:
AC.Value = Worksheetfunction.Trim(AC)

Mit dem Trim aus VBA werden nur die Leerzeichen am Anfang und am Ende entfernt.

Zum Thema Zeilenhöhe wird nicht automatisch angepasst gab es schon einen Hinweis in #4.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • TomKra
Antworten Top
#14
Hallo Michael,

mit dem Code von Gast 123 hatte ich ja keinen ersichtlichen Erfolg.

Ich hatten den Code mit deine Infos folgendermaßen angepasst:
PHP-Code:
Sub Text_bereinigen()
Columns("E:E").Replace What:="" Chr(10) & ""Replacement:=""LookAt:=xlPart_
        SearchOrder
:=xlByRowsMatchCase:=FalseSearchFormat:=False_
        ReplaceFormat
:=False
        ActiveSheet
.Rows.AutoFit
End Sub 
Danach sah das Ergebnis schon mal ganz gut aus.

Wo soll ich deinen Code noch einfügen?
Code:
AC.Value = Worksheetfunction.Trim(AC)


Mit der Info aus #4 konnte ich leider erst mal nicht so viel anfangen.

Kann ich mit "Zeilenhöhe: =Standardhöhe*(Anzahl_harte_Umbrüche - 1)" evtl. meine leerern Zeilen wegbekommen und wo müsste ich diese Formel oder Code anwenden?

Ich hoffe, dass Ihr mit meine (noch) laienhaften Kenntnissen noch Geduld habt, bis mein Problem gelöst ist, oder bis vielleicht klar ist, dass es keine Lösung gibt.

Gruß

Thomas
Antworten Top
#15
Ich bin davon ausgegangen, dass Du das ganze selbst zusammenbauen kannst. Hier mein Vorschlag:
Code:
Sub Text_bereinigen()
'Zeilenumbruch (Zeichen 10) entfernen
Columns("E:E").Replace What:="" & Chr(10) & "", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
'Nicht druckbare Zeichen und mehrfache Leerzeichen entfernen
Dim A As Variant
Dim i As Long
Dim R As Range
Set R = Range("E1").Resize(Cells(Rows.Count, "E").End(xlUp).Row)
A = R
For i = 1 To UBound(A)
     A(i, 1) = WorksheetFunction.Trim(A(i, 1))
Next
R = A
'Zeielnhöhe automatisch anpassen
ActiveSheet.Rows.AutoFit
End Sub
Bezüglich der Zeilenhöhe in #4 habe ich mich auf diesen Teil bezogen:
Zitat:Nimm es hin. Das hat mit dem schlechten WYSIWYG von Office zu tun.
Da Du ja keine manuellen Zeilenumbrüche hast, kommt diese Lösung nicht in Frage. Die Berechnung funktioniert ja nur mit den "harten" Zeilenumrüchen.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • TomKra
Antworten Top
#16
Hallo Michael,

vielen Dank für Deinen ausführlichen Code.
Nun hat alles wunderbar geklappt und das Ergebnis sieht auch sehr gut aus.

Das, was sich jetzt nicht verbessert, nehme ich dann wirklich einfach in Kauf oder passe es bei Bedarf einfach manuell an.

Nochmal ein herzliches Dankeschön an alle, die sich an dem Thema beteiligt haben.

Viele Grüße

Thomas
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste