Office: Zeilenhöhe abhängig von Zellenwert XY skalieren

Helfe beim Thema Zeilenhöhe abhängig von Zellenwert XY skalieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich möchte gerne erreichen, dass Excel die Zeilenhöhe über einen bestimmten Zeilenbereich, von der Größe eines einzelnen Zellenwertes... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von eufrat, 2. Juli 2017.

  1. Zeilenhöhe abhängig von Zellenwert XY skalieren


    Hallo zusammen,

    ich möchte gerne erreichen, dass Excel die Zeilenhöhe über einen bestimmten Zeilenbereich, von der Größe eines einzelnen Zellenwertes abhängig, skaliert.

    Ich habe mir hier schon einen VBA-Code rausgesucht:


    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
    If Target.Value = 1 Then
    Rows("1:1").RowHeight = 30
    Else
    Rows("1:1").RowHeight = 12.75
    End If
    End If
    End Sub

    Nun möchte ich weitere Zeilenhöhen für weitere Werte über 1 hinaus festlegen. Also meinetwegen für Target-Value=2 eine Zeilenhöhe von 40, usw...

    Wie müsste ich das syntaktisch einfügen? Eine zusätzliche If Target.Value = 2 (...) Zeile mit anschließendem End If am Ende funktioniert nicht.

    Diese Frage ist sicher sehr trivial, ich bitte daher um Nachsicht, ich bin absoluter VBA-Anfänger.

    Noch eine vorsorgliche Frage: Ich möchte letztendlich für ca. 170 Werte eine bestimmte Skalierung der Zeilenhöhe festlegen. Ist das prinzipiell möglich oder ist VBA da in irgendeiner Weise begrenzt?

    Vielen Dank schonmal!

    Gruß

    eufrat

    :)
     
    eufrat, 2. Juli 2017
    #1
  2. Moin!
    Nö, prinzipiell nicht.
    Gibt es eine Logik im Verhältnis Zellenwert zu Höhe?
    (Kann man es mittels Formel errechnen?)

    Ansonsten entweder ellenlange Select Case Anweisung oder Zugriff auf Verweistabelle in einem ausgeblendeten Blatt.

    Gruß Ralf
     
    RPP63, 3. Juli 2017
    #2
  3. Kommando zurück, mit ein bisschen Tüftelei habe ich es hinbekommen:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$10" Then
    If Target.Value = 2 Then
    Rows("11:184").RowHeight = 240
    Else
    If Target.Value = 3 Then
    Rows("11:184").RowHeight = 160
    Else
    If Target.Value = 4 Then
    Rows("11:184").RowHeight = 120
    End If
    End If
    End If
    End If
    End Sub

    Falls es Einwände gibt, immer her damit!

    Gruß eufrat
     
    eufrat, 3. Juli 2017
    #3
  4. Zeilenhöhe abhängig von Zellenwert XY skalieren

    Ja, es gibt eine Logik: Der Wert für die Zeilenhöhe soll immer 480/Zellenwert(B10) sein.
     
    eufrat, 3. Juli 2017
    #4
  5. Na, dann dürfte folgendes einfacher sein.
    Ohne Fehlerbehandlung:
    Gruß Ralf
     
    RPP63, 3. Juli 2017
    #5
  6. Ralf, Du bist ein wahrer Engel. Vielen Dank!

    Ich möchte in der selben Tabelle noch ein weiteres Makro ausführen lassen:

    Dieses blendet, abhängig von einem anderen Zellenwert (hier bspw. A1), einen Zeilenbereich aus. Das ganze sieht im Ansatz so aus wie im beigefügten Anhang.

    Das ganze würde ich jetzt nach der erkennbaren Logik weiterführen bis zum Target Value "174". Für diesen Wert soll keine Zeile ausgeblendet werden, für 173 die Zeile 11, für 172 die Zeilen 11 und 12, für 171 die Zeilen 11, 12, 13 usw. bis runter auf den Wert "2", bei dem dann alle Zeilen von 11 bis 184 ausgeblendet werden sollen. Das mag jetzt etwas verwirrend sein, weil mein VBA-Code bei 2 anfängt und den Wertebereich von 2-174 somit aufsteigend abfragt - Ich hoffe es wird trotzdem klar, was ich meine.

    Fällt Dir auch hierfür ein einfacherer Code ein, als jetzt jeden Fall von "2" bis "174" aufzulisten? Grundsätzlich gilt hier ja die Regelmäßigkeit, dass angefangen bei Target.Value "2" für Zeilenausblendung (11:184) für jeden weiteren Wert Target.Value "3,4,5..." immer eine Zeile weniger ausgeblendet werden soll:

    Also Rows("11:183").Hidden=True für 3
    Rows ("11:182").Hidden=True für 4

    u.s.w.

    Mir fehlt einfach die notwendige Semantik um so eine Regelmäßigkeit in VBA auszudrücken.

    Gruß

    eufrat
     
    eufrat, 4. Juli 2017
    #6
  7. Im Grunde brauche ich ja sinngemäß(!) solch eine Formulierung:

    (Siehe Anhang)

    Das frisst VBA so natürlich nicht. Kann mir jemand dabei helfen, diesen Code VBA tauglich umzuschreiben?

    Gruß

    eufrat
     
    eufrat, 4. Juli 2017
    #7
  8. Zeilenhöhe abhängig von Zellenwert XY skalieren

    Wegen Deines Semantikdefizits *mrcool gibt es erst mal nur einen Teaser.
    Kannst Du damit etwas anfangen?
    Code:
    Gruß Ralf
     
    RPP63, 4. Juli 2017
    #8
  9. Oh je..

    Sub x() soll eine Funktion definieren... das & bedeutet eine Verkettung. Woher die 15 kommt, ist mir nicht klar.

    Zeile 3 des Codes ist soweit klar... Zeilen von 10 bis i werden ausgeblendet. Doch wie erhalte ich i?

    Wo würde ich hier meine Funktion, die mir i liefert, eingeben?

    Ich fürchte die Sache scheitert an meinem Unvermögen, die Zeile 2 richtig zu interpretieren. Was sagt diese konkret aus?

    Gruß

    eufrat
     
    eufrat, 4. Juli 2017
    #9
  10. Weil Du es bist und ich gerade Zeit und Lust habe. *wink.gif*
    Das & ist in dem Fall keine Verknüpfung, sondern ein Kurzzeichen, welches den Datentyp Long festlegt.
    Siehe: https://de.wikibooks.org/wiki/VBA_in...Variablentypen

    Ich wollte Dir mit diesem Snippet klarmachen, dass der String "11:184" in Rows("11:184") umgangen werden kann, indem man sich des Range-Objekts bedient:
    Range(Rows(11), Rows(184)) ist das Gleiche wie Dein Rows("11:184")

    Der Vorteil bei meiner Schreibweise ist, dass Du die 184 bei Rows(184) durch eine Variable setzen kannst!

    Und nun beginnt die simple Mathematik:
    Deine Startzeile ist immer die 11
    die Endzeile lässt sich anhand des Targets errechnen
    2->184
    3->183
    4->182

    100->86

    also: 186 - Target

    noch mal also: Range(Rows(11), Rows(186 - .Value)).Hidden = True

    Gruß Ralf
     
    RPP63, 4. Juli 2017
    #10
  11. Ok, verstehe..

    Leider funktioniert mein Code noch nicht (siehe Anhang). Ich habe Deinen ersten Code genommen und praktisch nur die Then - Zeile durch die neue Anweisung ersetzt. Rein logisch wirkt das für mich schlüssig, aber VBA scheint das anders zu sehen.

    Was mache ich falsch? Gewiss eine ganze Menge. Ich kann bei VBA praktisch gar nichts. Ich versuche mit zusammengesuchten Codeschnipseln und Hilfestellungen wie Deiner irgendwie, diese zwei Funktionen hinzukriegen. Die Zeit, mich in VBA einzuarbeiten, um das selbst hinzukriegen, habe ich leider nicht. Aus diesem Grund bin ich zum jetztigen Zeitpunkt auf Hilfe angewiesen. Bitte nicht übel nehmen.

    Um mein finales Anliegen schonmal vorneweg zu nehmen: Diese beiden Funktionen, also automatische Zeilenskalierung abhängig von Wert A und die automatische Zeilenausblendung abhängig von Wert B, sollen gleichzeitig in einer Tabelle angewendet werden. Ich hoffe, das ist prinzipiell machbar?

    Mit der Bitte um Nachsicht und Gruß

    eufrat
     
    eufrat, 4. Juli 2017
    #11
  12. Ein kurzes Update: Besagter Code funktioniert bedingt.

    Bei der Eingabe eines Wertes in A1, nennen wir ihn X, blendet der Code den entsprechenden Bereich brav aus. Bei der nachfolgenden Eingabe geringerer Werte aktualisiert er den Ausblendungsbereich entsprechend - Schön. Wird A1 jedoch mit Werten aktualisiert, die größer sind als der erste eingegebene Wert X, aktualisiert er den Ausblendungsbereich nicht.

    Woran könnte das liegen?

    Gruß

    eufrat
     
    eufrat, 6. Juli 2017
    #12
  13. Zeilenhöhe abhängig von Zellenwert XY skalieren

    Mir wurde geholfen, das Thema ist erledigt!

    Gruß

    eufrat
     
    eufrat, 6. Juli 2017
    #13
Thema:

Zeilenhöhe abhängig von Zellenwert XY skalieren

Die Seite wird geladen...
  1. Zeilenhöhe abhängig von Zellenwert XY skalieren - Similar Threads - Zeilenhöhe abhängig Zellenwert

  2. VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"

    in Microsoft Excel Hilfe
    VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst": Hallo Leute dieser Code für Zellenhöhe bei Verbundenen Zellen Funktioniert fast. Ich habe ein Code von jemand anderem bekommen der nicht in einem Forum ist. Ich kann gerade diese Person nicht...
  3. Zeilenhöhe in Pivot-Tabelle nach Aktualisierung beibehalten

    in Microsoft Excel Hilfe
    Zeilenhöhe in Pivot-Tabelle nach Aktualisierung beibehalten: Hallo zusammen, ich habe ein recht allgemeines Problem bei der Darstellung einer Pivot-Tabelle, wo ich mittlerweile nicht weiterkomme. Ich habe die gesamten Zeilen einer Arbeitsmappe im Bereich...
  4. Automatische Zeilenhöhe ohne VBA

    in Microsoft Excel Hilfe
    Automatische Zeilenhöhe ohne VBA: Hallo, ich arbeite aktuell an einer Excel-Tabelle, in der durch die Nutzer später unter anderem Freitextfelder für nähere Erläuterungen ausgefüllt werden müssen. Diese Freitextfelder müssen...
  5. Probleme beim Ändern der Zeilenhöhe

    in Microsoft Word Hilfe
    Probleme beim Ändern der Zeilenhöhe: Hallo, wir sind in der Firma gerade auf Office 2019 umgestiegen und nun habe ich folgendes Problem: Im Gegensatz zur vorherigen Wordversion wird beim Einfügen einer Tabelle automatisch eine sehr...
  6. Umrechnung Spaltenbreite und Zeilenhöhe in mm

    in Microsoft Excel Hilfe
    Umrechnung Spaltenbreite und Zeilenhöhe in mm: Hallo, Ich gestehe, dass meine Frage, wie ich diese Umrechnung durchführen muss, lächerlich klingt. Selbst nach ausführlicher Websuche weiß ich immer noch nicht, ob die bei der Formatbestimmung...
  7. Ändern der Spaltenbreite und Zeilenhöhe

    in Microsoft Excel Tutorials
    Ändern der Spaltenbreite und Zeilenhöhe: Ändern der Spaltenbreite und Zeilenhöhe Excel 2007 Mehr... Weniger Wenn Sie feststellen, dass Sie die Zeilenbreiten...
  8. Ändern der Spaltenbreite oder Zeilenhöhe

    in Microsoft Excel Tutorials
    Ändern der Spaltenbreite oder Zeilenhöhe: Ändern der Spaltenbreite oder Zeilenhöhe Excel für das Web Mehr... Weniger Wenn Sie nicht alle Daten in einer...
  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