Microsoft Excel

Herbers Excel/VBA-Archiv

Automatisch Zeilenhöhe anpassen mit VBA

Betrifft: Automatisch Zeilenhöhe anpassen mit VBA von: Michael
Geschrieben am: 15.08.2004 23:54:59

Hallo,

ich möchte per Makro die Zeilenhöhe automatisch anpassen, wenn der in der Zelle eingegebene Text z.B. über 3 Zeilenumbrüche hinaus geht. Die Zeilenumbrüche macht Excel ja tadellos, geht mein Text aber darüber hinaus, soll Excel mir automatisch die Zeilenhöhe anpassen, bzw. erweitern.
Ist das möglich ??

Private Sub Worksheet_Change(ByVal Target As Range)
    Rows("12:18").Select
    Selection.Rows.AutoFit
    Range("D7").Select
End Sub


mit dem Makro gehts schon mal nicht :-(

Gruß

Michael
  


Betrifft: AW: Automatisch Zeilenhöhe anpassen mit VBA von: sicci
Geschrieben am: 16.08.2004 02:11:56

Hallo Michael,

automatisch anpassen kannst Du die Zeilenhöhe zB so:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     Target.WrapText = True
   End Sub

Bei meinem Excel97 liegt die Zeilenhöhenbegrenzung aber bei 409,5 pt
schau mal in der Excel-Hilfe unter Zeilenhöhe - 'Angaben zur Arbeitsumgebung' o.ä. wie es bei Deinem OfficeXP ist.

Gruß sicci


  


Betrifft: AW: Automatisch Zeilenhöhe anpassen mit VBA von: Michael
Geschrieben am: 16.08.2004 10:09:06

Hallo Sicci,

das funktioniert leider auch nicht, mehr wie 3 Zeilen untereinander bekomme ich nicht in die Zelle, alles was darüber hinaus geht an Text oder z.B. per manuellem Zeilenumbruch ( Alt + Enter ) in Zeile 4 stehen müsste verschwindet in der Unsichtbarkeit.

Gruß

Micha


  


Betrifft: Automatisch Zeilenhöhe anpassen mit VBA von: Beate Schmitz
Geschrieben am: 16.08.2004 10:14:00

Hallo Mich,

dann probier mal das (Code ins Codefenster der Tabelle):

Public Zeile As Integer
Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If ActiveCell.Row > 11 And ActiveCell.Row < 19  Then
        Rows(Zeile).AutoFit
        Zeile = ActiveCell.Row
    End If
End Sub


Gruß,
Beate


  


Betrifft: AW: Automatisch Zeilenhöhe anpassen mit VBA von: Michael
Geschrieben am: 16.08.2004 11:34:49

Hi Beate,

das Makro funktioniert bei mir nur teilweise, wenn ich mehrere Zeilenumbrüche in Zelle A12 oder B12 habe, passt es mir automatisch die Zeilenhöhe an, soweit sogut, sobald ich aber in C12 mehrere Zeilenumbrüche habe, funktioniert das nicht mehr, er richtet sich immer nach dem Inhalt von Spalte A oder B. Muß allerdings dazu sagen, daß ich in den Zeilen 12 - 18 die Spalten C - K jeweils zu einer Zelle verbunden habe. Könnte es daran liegen ??

Danke schon mal

Gruß

Micha


  


Betrifft: Automatische Zeilenhöhe bei verbundenen Zellen von: Beate Schmitz
Geschrieben am: 16.08.2004 11:45:23

Hallo Micha,

die verbundenen Zellen verursachen das Problem. Dann nimm den Code (ins Codefenster der Tabelle):

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
    Dim CurrCell As Range
    Dim ActiveCellWidth As Single, PossNewRowHeight As Single
    If ActiveCell.MergeCells Then
      With ActiveCell.MergeArea
            If .Rows.Count = 1 And .WrapText = True Then
                Application.ScreenUpdating = False
                CurrentRowHeight = .RowHeight
                ActiveCellWidth = ActiveCell.ColumnWidth
                For Each CurrCell In Selection
                    MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
                Next
                .MergeCells = False
                .Cells(1).ColumnWidth = MergedCellRgWidth
                .EntireRow.AutoFit
                PossNewRowHeight = .RowHeight
                .Cells(1).ColumnWidth = ActiveCellWidth
                .MergeCells = True
                .RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
                  CurrentRowHeight, PossNewRowHeight)
            End If
        End With
    End If
Application.ScreenUpdating = True
End Sub


Gruß,
Beate


  


Betrifft: AW: Automatische Zeilenhöhe bei verbundenen Zellen von: Michael
Geschrieben am: 16.08.2004 12:13:50

Hi Beate,

hab das Makro reinkopiert, aber es klappt immer noch nicht...leider, bestimmt Bedienerfehler :-)

Aber erst mal Respekt, bei dem letzten Makro war mir ja noch so einigermaßen klar was da passiert, aber das hier übersteigt meine geringen VBA Kenntnisse bei weitem.
Kannst Du dir die Tabelle vielleicht mal anschauen, werde sie mal zu Herber hochladen, es geht um Tabelle 3 ( Montagebericht ) um die Zellen bei durchgeführte Arbeiten.
Das Ding hat sicherlich noch mehr Fehler, aber die sollte ich schon hinbekommen, die Sache mit der Automatischen Zeilenhöhe jedoch raubt mir noch den Verstand. :-(

https://www.herber.de/bbs/user/9690.xls

Vielen Dank

Gruß

Micha


  


Betrifft: Automatische Zeilenhöhe bei verbundenen Zellen von: Beate Schmitz
Geschrieben am: 16.08.2004 12:28:44

Hallo Micha,

mit dem Makro von eben lief es bei mir auch nicht, aber dann mit dieser Variante:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
    Dim CurrCell As Range
    Dim ActiveCellWidth As Single, PossNewRowHeight As Single
    If ActiveCell.Row > 11 And ActiveCell.Row < 19 Then
    If ActiveCell.MergeCells Then
      With ActiveCell.MergeArea
            If .Rows.Count = 1 And .WrapText = True Then
                Application.ScreenUpdating = False
                CurrentRowHeight = .RowHeight
                ActiveCellWidth = ActiveCell.ColumnWidth
                For Each CurrCell In Selection
                    MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
                Next
                .MergeCells = False
                .Cells(1).ColumnWidth = MergedCellRgWidth
                .EntireRow.AutoFit
                PossNewRowHeight = .RowHeight
                .Cells(1).ColumnWidth = ActiveCellWidth
                .MergeCells = True
                .RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
                  CurrentRowHeight, PossNewRowHeight)
            End If
        End With
    End If
    End If
Application.ScreenUpdating = True
End Sub


Gruß,
Beate


  


Betrifft: AW: Automatische Zeilenhöhe bei verbundenen Zellen von: Michael
Geschrieben am: 16.08.2004 12:42:22

Hallo Beate,

also langsam bekomme ich ein schlechtes Gewissen, weil Du dir meinetwegen soviel Arbeit machst, aber ich hab es immer noch nicht ans laufen gebracht :-(
Hast Du dir mal die Datei runtergeladen ??

Gruß

Micha


  


Betrifft: Automatische Zeilenhöhe bei verbundenen Zellen von: Beate Schmitz
Geschrieben am: 16.08.2004 12:58:31

Hallo Micha,

hatte ich und hier ist sie Retour:
https://www.herber.de/bbs/user/9698.xls

Gruß,
Beate

PS: es handelt sich nicht um eine Eigenentwicklung - die Arbeit beschränkt sich aufs Raussuchen des Codes und eventuell Anpassen.


  


Betrifft: AW: Automatische Zeilenhöhe bei verbundenen Zellen von: Michael
Geschrieben am: 16.08.2004 13:23:57

Hi Beate,

also langsam glaube ich es liegt an meinem Excel hier, hab die Datei von Dir runtergeladen und es klappt einfach nicht, in Spalte A & B klappts jetzt auch nicht mehr....(verzweifel) !! Kann es sein, daß ich da was falsch eingestellt hab im Excel ??

Schönen (verzweifelten) Gruß

Micha


  


Betrifft: AW: Automatische Zeilenhöhe bei verbundenen Zellen von: Beate Schmitz
Geschrieben am: 16.08.2004 15:10:06

Hallo Micha,

ist dein System scharf? (Damit Worksheet_Change überhaupt anspringt?)

Lass vor dem nächsten Test mal kurz dieses Makro ablaufen oder starte Excel neu:

Sub Reset()
    Application.EnableEvents = True
End Sub


Sonst fällt mir auch nichts mehr ein.

Gruß,
Beate


 

Beiträge aus den Excel-Beispielen zum Thema "Automatisch Zeilenhöhe anpassen mit VBA"