Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilenhöhe automatisch anpassen per VBA

Zeilenhöhe automatisch anpassen per VBA
Kris
Liebe alle,
ich suche eine Lösung (ein Makro), damit mir innerhalb eines Exceltools automatisch die passende Zeilenhöhe einstellt wird.
Ich habe dieses Stück gefunden, weiß aber nicht wie ich es sinnvoll anwenden kann:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveSheet.Rows.AutoFit
End Sub
Allerdings handelt es sich um verbundene Zellen und um mehrere Zeilen pro Arbeitsmappe (und um mehrere Arbeitsmappen).
Ich möchte nicht jedes mal jede Zellhöhe einzeln anpassen, das soll z.B. passieren, wenn man den Text der Zelle zuende geschrieben hat und z.B. Enter drückt.
Außerdem sollte die Zelle eine Mindesthöhe (bei leerer Zelle)von 36,75 haben.
Im Tool ist alles außer die Zellen, die mit Text zu befüllen sind, mit Blattschutz belegt.
Das Tool wird mehrfach angewandt und jedesmal wird ein anderer Text in die jeweilige Zelle geschrieben. Dieser Text soll immer sichtbar sein, also Zeilenumbrüche machen und die Zeilenhöhe soll sich automatisch anpassen.
Kann mir bitte jemand helfen?
DANKE!
Kris
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilenhöhe automatisch anpassen per VBA
18.05.2011 17:08:00
Hajo_Zi
bei verbundenen Zellen gibt es keine automatische Zeilenhöhe.

AW: Zeilenhöhe automatisch anpassen per VBA
19.05.2011 14:32:11
Kris
Wie würde das für unverbundene Zellen aussehen?
AW: Zeilenhöhe automatisch anpassen per VBA
19.05.2011 17:30:47
Hajo_Zi
Rows(3).AutoFit
Gruß Hajo
Anzeige
AW: Zeilenhöhe automatisch anpassen per VBA
19.05.2011 20:07:57
Kris
Erstmal Danke für deine Beiträge.
Aber um dieses Makro laufen zu lassen, muss ich jedes mal manuell auf "play" drücken, oder? Ich kenn mich nicht allzu gut mit VBA aus.
Wo muss ich das genau einfügen, damit z.B. alle 10 Zellen, in denen ich die Zeilenhöhe automatisch anpassen will, auf einen Schlag angepasst sind? Und das auf allen 10 Arbeitsmappen/Tabellenblättern?
VG Kris
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilenhöhe automatisch anpassen mit VBA


Schritt-für-Schritt-Anleitung

Um die Zeilenhöhe automatisch anzupassen, wenn Du den Text in eine Zelle eingibst, kannst Du folgendes VBA-Makro verwenden:

  1. Öffne Deine Excel-Arbeitsmappe.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code ein:

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
       If Not Intersect(Target, Sh.Range("A1:A10")) Is Nothing Then 'Ändere den Bereich nach Bedarf
           Target.Rows.AutoFit
           If Target.Rows.Height < 36.75 Then
               Target.Rows.RowHeight = 36.75 ' Mindesthöhe festlegen
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und speichere Deine Arbeitsmappe als Excel-Makro-aktivierte Arbeitsmappe (*.xlsm).

Dieses Makro passt die Zeilenhöhe automatisch an, wenn Du den Text in den Zellen A1 bis A10 änderst. Du kannst den Zellbereich anpassen, um ihn auf andere Zellen auszuweiten.


Häufige Fehler und Lösungen

  • Problem: Excel passt die Zeilenhöhe nicht automatisch an.

    • Lösung: Stelle sicher, dass Du das Makro in das richtige Modul eingefügt hast und dass die Zellen, die Du anpassen möchtest, nicht verbunden sind.
  • Problem: Die Zeilenhöhe wird nicht korrekt angezeigt.

    • Lösung: Überprüfe, ob Du den Textumbruch in den Zellen aktiviert hast. Dies kannst Du unter dem Menüpunkt Start > Ausrichten > Textumbruch einstellen.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du die Zeilenhöhe auch manuell anpassen:

  1. Wähle die Zellen aus, deren Höhe Du anpassen möchtest.
  2. Klicke mit der rechten Maustaste und wähle Zeilenhöhe.
  3. Gib die gewünschte Höhe ein oder wähle AutoAnpassen.

Für eine automatisierte Lösung ohne VBA kannst Du die Funktion =Höhe(A1) verwenden, um die Höhe basierend auf dem Inhalt einer Zelle zu berechnen.


Praktische Beispiele

  1. Mindestzeilenhöhe für Textumbruch: Wenn Du in einer Zelle Text mit Umbrüchen hast, kannst Du das oben genannte VBA-Makro verwenden, um sicherzustellen, dass die Zeilenhöhe mindestens 36,75 beträgt.

  2. Anpassung für mehrere Arbeitsblätter: Um die Zeilenhöhe in mehreren Arbeitsmappen gleichzeitig anzupassen, kannst Du das Makro in jedes Arbeitsblattmodul einfügen oder eine Schleife verwenden, um alle Blätter zu durchlaufen.


Tipps für Profis

  • Nutze die Funktion AutoFit nicht nur für Zeilen, sondern auch für Spalten, um die Zellen optimal anzupassen.
  • Experimentiere mit dem Code, um spezifische Bereiche oder Bedingungen für die Zeilenhöhenanpassung festzulegen.
  • Setze Kommentare in Deinen VBA-Code, um die Funktionsweise zu dokumentieren, falls Du später Änderungen vornehmen möchtest.

FAQ: Häufige Fragen

1. Wie kann ich das Makro für unverbundene Zellen anpassen? Du kannst das Makro unverändert verwenden, da es automatisch die Höhe der Zellen anpasst, unabhängig von deren Zustand.

2. Muss ich das Makro jedes Mal manuell starten? Nein, das Makro wird automatisch ausgeführt, wenn Du Änderungen an den definierten Zellen vornimmst.

3. Wie kann ich die Mindestzeilenhöhe ändern? Ändere einfach den Wert 36.75 im Code zu der gewünschten Mindesthöhe.

4. Funktioniert das auch in Excel 365? Ja, dieses VBA-Skript funktioniert ebenso in Excel 365. Stelle sicher, dass Du Makros in Deinen Sicherheitseinstellungen aktivierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige