Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilenhöhe per VBA festlegen

Zeilenhöhe per VBA festlegen
Uppe
Hallo Experten,
ich möchte in meiner Tabelle einen Wert suchen und die Zeilenhöhe der nächsten Zeile auf 4 festlegen.
Dazu habe ich folgenden Code:
Sub Zeilenhöhe()
With Worksheets("Tabelle1")
Set c = .Range("B:B").Find("Text1", LookIn:=xlValues)
If Not c Is Nothing Then
.Rows(c.Row + 1).RowHeight = 4
End If
Set c = .Range("B:B").Find("Text2", LookIn:=xlValues)
If Not c Is Nothing Then
.Rows(c.Row + 1).RowHeight = 4
End If
End With
End Sub
Leider bleibt er immer bei .Rows(c.Row + 1).RowHeight = 4 mit der Fehlermeldung "Die RowHeight-Eigenschaft des Range-Objektes kann nicht festegelegt werden." hängen. Egal, ob er Text1, Text2 oder beides findet. Wenn ich den Code weiterlaufen lasse, dann funktioniert er. Warum bleibt er aber erst hängen?
Danke und Gruß
Uppe
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
funktioniert 1a
20.04.2010 11:05:08
Rudi
Hallo,
keine Probleme damit.
Gruß
Rudi
AW: Zeilenhöhe per VBA festlegen
20.04.2010 11:07:25
xr8k2
Hallo Uppe,
kann ich nicht nachvollziehen ... sollte so eigentlich funktionieren.
Was meinst du mit "wenn ich den Code weiterlaufen lasse" ?
Gruß,
xr8k2
AW: Zeilenhöhe per VBA festlegen
20.04.2010 11:15:10
Uppe
Hallo xr8k2,
ich geh mit "Debuggen" in den Code, um zu schauen, wo's klemmt und klicke dann einfach auf "Sub/Userform ausführen", um den Code weiter ausführen zu lassen. Und das klappt, komischerweise.
Gruß Uppe
Anzeige
AW: Zeilenhöhe per VBA festlegen
20.04.2010 11:49:38
xr8k2
Hallo Uppe,
sorry ... aber ich kann ein derartiges Verhalten anhand deines Codes einfach nicht nachstellen.
Oft treten derartige Fehler auf, wenn die betreffende Range nicht eindeutig bezeichnet ist. Gib zur Not vor dem Sheet mal noch einen Verweis auf die Arbeitsmappe mit an (Thisworkbook, Activeworkbook oder was auch immer).
Kannst du eine Beispieldatei hochladen?
Gruß,
xr8k2
Anzeige
ich hab's
20.04.2010 12:37:18
Uppe
Hallo,
ich habe den "Übeltäter" gefunden.
Vor dem Festlegen der Zeilenhöhe wird der Mailkopf (An, CC, Betreff etc.) eingeblendet und das verträgt sich scheinbar nicht. WEnn ich erst die Zeilenhöhe auf dem Blatt festlege und dann den Mailkopf einblende, funktioniert es.
Danke trotzdem an alle, die sich 'nen Kopf gemacht haben.
Gruß Uppe
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilenhöhe per VBA festlegen


Schritt-für-Schritt-Anleitung

Um die Zeilenhöhe in Excel per VBA zu ändern, kannst du folgenden Code verwenden. Dieser sucht nach bestimmten Werten in einer Spalte und ändert die Zeilenhöhe der nächsten Zeile. Hier ist ein einfaches Beispiel:

Sub Zeilenhöhe()
    With Worksheets("Tabelle1")
        Set c = .Range("B:B").Find("Text1", LookIn:=xlValues)
        If Not c Is Nothing Then
            .Rows(c.Row + 1).RowHeight = 4
        End If
        Set c = .Range("B:B").Find("Text2", LookIn:=xlValues)
        If Not c Is Nothing Then
            .Rows(c.Row + 1).RowHeight = 4
        End If
    End With
End Sub
  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul ein (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den obigen Code in das Modul.
  4. Passe die Werte "Text1" und "Text2" sowie den Arbeitsblattnamen an deine Bedürfnisse an.
  5. Führe das Skript aus (F5).

Häufige Fehler und Lösungen

  1. Fehlermeldung: "Die RowHeight-Eigenschaft des Range-Objektes kann nicht festegelegt werden."

    • Dies kann passieren, wenn eine Zeile bereits ausgeblendet ist oder ein Problem mit der Sichtbarkeit der Zeile vorliegt. Stelle sicher, dass die Zeilen, die du ändern möchtest, sichtbar sind.
  2. Code funktioniert nicht wie erwartet.

    • Wenn der Code im Debug-Modus funktioniert, aber nicht im regulären Modus, kann dies an anderen Aktivitäten im Excel liegen, wie z.B. dem Einblenden von Dialogen (z.B. Mailkopf). Versuche, die Zeilenhöhe zuerst zu ändern und danach andere Aktionen auszuführen.

Alternative Methoden

Eine andere Möglichkeit, die Zeilenhöhe zu ändern, besteht darin, die Zeilenhöhe direkt über die Excel-Oberfläche anzupassen:

  1. Wähle die Zeilen aus, deren Höhe du ändern möchtest.
  2. Klicke mit der rechten Maustaste und wähle "Zeilenhöhe".
  3. Gib die gewünschte Höhe ein und bestätige mit "OK".

Alternativ kannst du auch die Funktion "Format" im Ribbon verwenden, um die Zeilenhöhe schnell anzupassen.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Zeilenhöhe für eine bestimmte Zeile anpassen kannst:

Sub BeispielZeilenhöheAnpassen()
    Rows(3).RowHeight = 20 ' Setzt die Höhe der dritten Zeile auf 20
End Sub

In diesem Beispiel wird die Höhe der dritten Zeile auf 20 eingestellt. Dies ist nützlich, wenn du die Zeilenhöhe für bestimmte Zeilen in deiner Tabelle anpassen möchtest.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False am Anfang deines Codes, um den Bildschirm während der Ausführung nicht zu aktualisieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.
  • Vergiss nicht, am Ende deines Codes Application.ScreenUpdating = True wieder zu aktivieren.
  • Teste deinen Code immer mit einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Zeilenhöhe für mehrere Zeilen gleichzeitig ändern? Du kannst eine Schleife verwenden, um die Zeilenhöhe mehrerer Zeilen anzupassen. Beispiel:

For i = 1 To 10
    Rows(i).RowHeight = 15 ' Setzt die Höhe der Zeilen 1 bis 10 auf 15
Next i

2. Kann ich die Zeilenhöhe dynamisch basierend auf dem Inhalt anpassen? Ja, du kannst die Zeilenhöhe dynamisch anpassen, indem du die Höhe basierend auf dem Inhalt der Zellen berechnest:

Rows(1).AutoFit ' Passt die Höhe der ersten Zeile automatisch an den Inhalt an

Mit diesen Anleitungen und Tipps kannst du die Zeilenhöhe in Excel mit VBA effizient anpassen und Probleme lösen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige