Office: Individuelle Zeilenumbrüche ggf. per Makro???

Helfe beim Thema Individuelle Zeilenumbrüche ggf. per Makro??? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich habe mal wieder eine Problem, welches ich selber leider nicht lösen kann. Ich habe manchmal Texte, die in Spalte A und B passen,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von hexlein, 24. Juli 2013.

  1. hexlein Erfahrener User

    Individuelle Zeilenumbrüche ggf. per Makro???


    Hallo Zusammen,

    ich habe mal wieder eine Problem, welches ich selber leider nicht lösen kann.

    Ich habe manchmal Texte, die
    in Spalte A und B passen,
    manchmal ist der Text auch nur so lang, wie Spalte A breit ist
    Und dann gibt es leider Texte, die auch bei einer Verbindung von A und B nicht reichen und deshalb ein Zeilenumbruch mit entsprechender Zeilenhöhe angepasst werden soll.

    Der Text steht immer wieder in einer anderen Zeile, die Spalte bleibt jedoch.

    Ist so etwas per Makro überhaupt möglich, dass es individuell entscheidet, welche Variante nun genommen werden soll?
    Für eure Hilfe oder eine Antwort wäre ich Euch echt dankbar.
    hexlein
     
    hexlein, 24. Juli 2013
    #1
  2. maninweb
    maninweb MVP für Microsoft Excel
    Hallo hexlein,

    eine Berechnung per Makro der Weite des Textes wäre extrem aufwendig und nur per Windows API zu machen. Liegt
    z.B. daran, dass i.d.R. eine proportionale Schrift genommen wird, die unterschiedliche Breiten pro Zeichen hat.
    Excel VBA hat dafür keine Funktionen.

    Du könntest per Formel versuchen ein Nährung zu erreichen, in etwa: den breitesten Buchstaben nehmen, i.d.R = W
    und schauen wieviele da rein passen. Dann per Formel eine maximale Länge bestimmen, das Leerzeichen davor
    finden und ein ZEICHEN(10) einfügen.

    Gruß
     
    maninweb, 24. Juli 2013
    #2
  3. Exl121150 Erfahrener User
    Hallo,

    es stimmt zwar, dass Excel keine direkte Funktion zur Ermittlung der angezeigten Länge von Texten besitzt, aber mit etwas Trick geht es doch.
    Man benötigt dazu eine völlig leere Spalte. In der beiliegenden Datei habe ich dazu Spalte G verwendet. Sollte in dieser doch etwas enthalten sein, so wird es von meinem Makro gelöscht. Diese Leerspalte kann man auch in eine andere Spalte verlegen. Man muss dies nur im Makro umstellen (die Stelle im Makro habe ich durch Kommentar kenntlich gemacht).

    Anwendung des Makros:
    1) So wie das Makro momentan programmiert ist, muss man zuerst den Spaltenbereich mit den Texten markieren (beim aktuellen Beispiel wäre das der Bereich A1:A3).
    2) Dann drückt man die Tastenkombination Alt+F8 und führt dann das in der Liste angezeigte Makro "Textumbruch_Spalte1u2" aus.
    Die Texte/Zellen sind danach entsprechend formatiert (im Beispiel im Bereich A1:B3).

    Der Trick ist ganz simpel:
    a) Es werden einfach die Texte der 1. Spalte der Reihe nach in die Zelle G1 kopiert.
    b) Daraufhin wird auf die Spalte G die .Autofit-Methode angewendet
    c) Dann werden die Spaltenbreiten (.Width-Eigenschaften) der 1.+2. Spalte und der Spalte G miteinander verglichen
    d) An Hand dieses Vergleiches werden die Zellen der 1.+2.Spalte entsprechend eingestellt.

    Allerdings ist das Makro momentan so programmiert, dass beim Textumbruch nicht mehr als 2 sichtbare Textzeilen produziert werden.
    Auf mehr Umbruchszeilen wollte ich nicht gehen, da aufgrund der unterschiedlichen Wortlängen die automatischen Zeilenumbrüche recht unterschiedlich ausfallen können. Wenn man 3 und mehr Textzeilen pro Excel-Zeile produzieren wollte, müsste man sich doch auf eine entschieden aufwändigere Programmierung einlassen. Wie es dann mit der Geschwindigkeit des Makros aussieht, weiß ich nicht - ich habe es nicht getestet.
     
    Exl121150, 25. Juli 2013
    #3
  4. fette Elfe Erfahrener User

    Individuelle Zeilenumbrüche ggf. per Makro???

    Hallo hexlein,

    was ich mich von Anfang an gefragt habe ist:
    Müssen unbedingt zwei Zellen verbunden werden? Reicht es nicht eventuell aus die Spaltenbreite anzupassen, und wenn das nicht reicht auch noch die Zeilenhöhe?

    Wenn möglich sollte es eigentlich vermieden werden Zellen zu verbinden. Das kann (muss nicht) ansonsten später zu Problemen führen.

    Für ein anderes Projekt (mit Zelltexten von weit über 1000 Zeichen) hatte ich mal einen Code entwickelt, den ich hier jetzt mal reduziert und angepasst habe. Ist zwar immernoch "mit Kanonen auf Spatzen geschossen", aber vielleicht hilfts ja weiter.
    Das Makro macht also immernoch mehr, als Du verlangt hast.
    Und natürlich könnte man den Code noch effektiver gestalten, denn ich habe damals bewusst auf Methoden wie "Trim" oder "Replace" verzichtet, da dies bei sehr langen Texten, und vor allem auch bei unterschiedlichen Excel-Versionen und unterschiedlichen PCs Probleme verursacht hatte.


    Nun zu meiner beigefügten Datei:
    - mit "ALT & F11" öffnest Du bitte den VBA-Editor
    - dort kannst Du die folgenden Werte vorgeben:
    loFirstRow = 1 ' erste Zeilennummer des Bereiches, wo der Text eingepasst werden soll
    loMaxHeight = 30 ' maximale Höhe einer Zeile
    loMaxWidth = 30 ' maximale Breite einer Spalte
    Set rgColumns = Me.Range("A:A") ' zusammenhängender Bereich von Spalten, für die das Makro gelten soll
    (ich hoffe das ist soweit selbsterklärend?)
    - zum Blatt wechseln welches bearbeitet werden soll
    - dann mit "ALT & F8" das Makro "ZellgrösseAnTextAnpassen" starten

    Das Makro arbeitet wie folgt:
    - alle "nichtdruckbaren Zeichen" (TABs, Zeilenumbrüche etc.) werden aus allen Texten des vorgegebenen Bereiches entfernt
    - alle doppelten Leerzeichen, sowie Leerzeichen am Anfang und am Ende werden entfernt
    - die vorgegebenen Spalten werden Formatiert (automatische Breite, automatischer Zeilenumbruch, Textausrichtung oben & links)
    - sind Spalten breiter als die vorgegebene Maximalbreite, werden sie jetzt auf die vorgegebene Maximalbreite angepasst
    - alle benutzten Zeilen des vorgegebenen Bereiches werden auf automatische Zeilenhöhe gesetzt
    - analog zur Spaltenbreite wird jetzt noch die Zeilenhöhe mit dem vorgegebenen Maximalwert verglichen und angepasst

    Wichtig ist noch, dass das Makro im VBA-Modul des Blattes ist, in dem es auch arbeiten soll, ansonsten stimmt die Referenzierung nicht und muss angepasst werden.

    Wenn noch Fragen sind.. frag halt.
    Ich hoffe geholfen zu haben.

    Den Anhang Entwurf zu Zeilenumbruch.xlsm betrachten
     
    fette Elfe, 25. Juli 2013
    #4
Thema:

Individuelle Zeilenumbrüche ggf. per Makro???

Die Seite wird geladen...
  1. Individuelle Zeilenumbrüche ggf. per Makro??? - Similar Threads - Individuelle Zeilenumbrüche Makro

  2. Tabellenverzeichnis erstellen - individuelle Formatierung

    in Microsoft Word Hilfe
    Tabellenverzeichnis erstellen - individuelle Formatierung: Hallo zusammen, ich suche nach einer Möglichkeit, mein Tabellenverzeichnis individuell und damit unabhängig von der Formatierung des Abbildungsverzeichnisses zu formatieren. Ich habe das...
  3. Individuelle Datumsberechnung

    in Microsoft Excel Hilfe
    Individuelle Datumsberechnung: Hallo zusammen, in meinem Job muss ich den Arbeitszeitraum anderer Personen berechnen. Dafür haben wir einen bestimmten Tagessatz pro Monat den wir dann mit einer bestimmten Stundenanzahl (i.d.R....
  4. Individuelle Farbpallette lässt sich nicht integrieren

    in Microsoft Outlook Hilfe
    Individuelle Farbpallette lässt sich nicht integrieren: Hallo zusammen, wir haben im Unternehmen vor einigen Tagen auf Outlook umgestellt. Betriebssystem ausschließlich macOS. Ich wurde mit der Aufgabe betraut, die individuellen Firmenfarben zu...
  5. Gitternetzlinien individuell beschriften

    in Microsoft Excel Hilfe
    Gitternetzlinien individuell beschriften: Hallo! Wie kann ich in EXCEL eine Achse so beschriften, dass z.B. die Hauptstriche jeweils nach 1 Einheit erscheinen, allerdings nicht jeder Hauptstrich beschriftet ist (sondern z.B. nur jeder...
  6. Mailversand per VBA mit individuellem Link

    in Microsoft Access Hilfe
    Mailversand per VBA mit individuellem Link: Hallo zusammen, ich finde leider keine Antwort auf meine Frage und hoffe, ihr könnt mir weiterhelfen. Per VBA versende ich zur Zeit Mails mit Anhang. Dieser Anhang wird mit dem Befehl Path1 =...
  7. individuelles Bild anhand von sverweis einfügen

    in Microsoft Excel Hilfe
    individuelles Bild anhand von sverweis einfügen: Hallo, liebe Community. Ich hätte da mal wieder eine Frage: Ich würde gerne anhand eines sVerweises ein Bild automatisiert in einer Zelle ausgeben. In Blatt 1 stehen in Spalte A die...
  8. Hilfe!! Keine individuelle Größe der Bild Beschriftung möglich

    in Microsoft Word Hilfe
    Hilfe!! Keine individuelle Größe der Bild Beschriftung möglich: Huhu... ich habe ein Problem, das ich einfach nicht beheben kann. Ich habe gerade meine Masterarbeit vollendet, jedoch kam jetzt ein Problem beim Formatieren auf! Meine Abbildungs- und...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden