Clever-Excel-Forum

Normale Version: Zeilenhöhe automatisch anpassen, Komplex
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

Ausgangsstellung: 
Feld A1: 3 Werte die mit Alt+Enter untereinander stehen
Feld A2: Hier soll Feld A1 wiedergegeben werden mit den 3 Werten untereinander.

Start/Format/Zeilenhöhe automatisch anpassen funktioniert wenn ich es jetzt ausführe

Problem:

Ich füge jetzt in A1 noch 2 weitere Werte (immer mit alt+Enter) dazu, die Höhe in A2 wird aber nicht automatisch höher und ich hab somit einen optischen Datenverlust.

Über eure Hilfe würde ich mich sehr freuen, wenn man sucht findet man immer nur die manuellen Sachen.

Gruß Epson
Hallo Epson,

folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblatts:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then Range("A2").Rows.AutoFit
End Sub

Gruß Uwe
da war schon einer schneller.
Vielen Dank dafür, leider hab ich noch Fragen dazu

1) kann man das auch ohne VBA lösen?

2) kann man den Code automatisch mit kopieren wenn ich Zelle A2 nach A3 vervielfältige? (Original Tabelle ist groß und ziemlich verschachtelt, kann ich leider nicht uploaden)

-Die Formatierung soll auf Zellen angewendet werden die mit einem Sverweis und Verknüpfen belegt sind

Hab vorher leider noch nie mit VBA gearbeitet und bin wirklich Dankbar für die Hilfe
1) Nein (bzw. ja, wenn Du den Umbruch im Menü aktivierst, aber das ist je nach Version nicht immer genau)

2) Rechtsklick Tabellenreiter - Code Anzeigen - nun füge ein

Private Sub Worksheet_Change(ByVal T As Range)
  If T.Column = 1 Then T.Rows.AutoFit
End Sub

Damit wird jede Eingabe in Spalte 1 höhenangepasst. Formelzellen allerdings, deren Inhalt sich ändert, passen sich so nicht an.

EDIT: Der Code ist nicht zutreffend, denn er wirkt auch bei Eingabe in anderen Spalten.
Hi,

dieser Code funktioniert:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Target, Range("A:A"))
If Not Bereich Is Nothing Then
    On Error Resume Next
        'Bereich.Dependents.WrapText = True
        Bereich.Dependents.EntireRow.AutoFit
    On Error GoTo 0
End If
End Sub

Der Bereich der Ausgangszellen (also die Zellen, in die etwas eingegeben wird), wird mit dem Ausdruck Range("A:A") (also hier die ganze Spalte A) festgelegt. Mit Range("A1:A10,C3:F3,Q10") werden die entsprechenden Zellen festgelegt. Zu beachten ist, dass man die amerikanische Notation ("," statt ";") verwenden muss. Die Zellen, die davon abhängen (also die, bei denen die Höhe angepasst werden muss) werden automatisch ermittelt. Natürlich muss in jenen Zellen der Textumbruch gesetzt sein. Falls dies nicht garantiert ist, kann man auch die auskommentierte Zeile aktivieren. Dann wird das automatisch erledigt.