![]() |
Betrifft: Abstand von Textbox bis zum unter. Rand ermitteln
von: TomTom
Hi,
ich habe auf meinem Sheet eine Textbox1, die mit Inhalt gefüllt wird und dann unterschiedlich gross ausfallen kann.
Nun habe ich zwei weitere textboxen die soll in der Grösse (Höhe) so gross sein, dass sie sich den Rest des Sheets bis zum unteren Rand teilen. Also, je grösser meine erste Textbox ist, um so kleiner muss die zweite und dritte werden.
Wie kann ich ermitteln, wieviel Höhe mir von meiner textbox1 bis zum unteren Rand des Sheet noch zur Verfügung stehen, um den nacher durch zwei zu teilen und den beiden anderen textboxen in der Höhe zuweisen kann.
Danke mal
Gruss
Tom
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: Daniel
Geschrieben am: 04.08.2008 11:23:03
Hi
mal so als Ansatz:
mit den Funktionen:
activewindow.VisibleRange.Top
activewindow.VisibleRange.Height
kannst du die Pixel-Positon und die Höhe des aktiven Fensters ermitteln.
gleiches geht hauch für die Textboxen mit
Textbox1.Top
Textbox1.Height
der Code dazu könnte dann so aussehen:
Sub test()
Dim a As Double
a = ActiveWindow.VisibleRange.Height - (TextBox1.Top - ActiveWindow.VisibleRange.Top) - TextBox1.Height
a = a / 2
TextBox2.Top = TextBox1.Top + TextBox1.Height
TextBox2.Height = a
TextBox3.Top = TextBox2.Top + TextBox2.Height
TextBox3.Height = a
End Sub
Gruß, Daniel
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: TomTom
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: Daniel
Geschrieben am: 04.08.2008 12:01:28
Hi
die grösse der Textboxen ändert sich immer nur dann, wenn das Makro läuft.
Änderst du die Fenstergrösse ohne hinterher das Makro laufen zu lassen, ändern sich die Textboxen nicht.
Gruß, Daniel
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: TomTom
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: Daniel
Geschrieben am: 04.08.2008 12:38:15
Hi
von einem Ausdruck auf ein DinA4-Blatt war in deiner Anfrage ja auch keine Rede, da bin ich halt von der Bildschrimanzeige ausgegangen.
Sorry, wenn die Frage nicht präzise gestellt wird, dann ist die Anwort eben 42.
du kannst die position des ersten Zeilenumbruchs so feststellen:
activesheet.HPageBreaks(1).Location.top
damit das präzise funktioniert, solltest du vorher mal kurz die Seitenansicht aktivieren und der Druckbreich muss grösser als eine Seite sein.
Gruß, Daniel
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: TomTom
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitteln
von: Daniel
Geschrieben am: 04.08.2008 13:25:46
Hi
sorry, meinte nicht Zeilenumbruch, sondern Seitenumbruch.
das ist die stelle, wo der Drucker ein neues Blatt anfängt.
über "activesheet.HPageBreaks(1).Location" bekommst du die Zelle, wo der erste horizontale Seitenumbruch sitzt und über "activesheet.HPageBreaks(1).Location.Top" eben die Pixel-Position dieser Stelle
ist im Prinzip das gleiche wie VisibleRange, nur halt nicht für den Bildschirm, sondern für den Drucker
Gruß, Daniel
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitt
von: TomTom
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitt
von: Daniel
Geschrieben am: 04.08.2008 15:39:38
Hi
Hpagebreaks(1).Location.Top ist quasi der Platz, den du auf deinem ersten Blatt zu verfügung hast.
bei der Berechnung des freien Platzes unterhalb der Texbox1 musst du immer Höhe (.Height) und Startposition (.Top) der Textbox1 berücksichtigen.
Gruß, Daniel
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitt
von: TomTom
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitt
von: Daniel
Geschrieben am: 04.08.2008 18:29:40
Hi
wie sagt man bei uns in der Firma so schön: Versuch macht kluch(g)
aber ein sei dir gesagt, die Startposition der Textbox2 hängt nur dann vom Hpagebreaks(1).Location.Top ab, wenn die Textboxen auf der 2. Seite erscheinen sollen.
Gruß, Daniel
![]() |
Betrifft: AW: Abstand von Textbox bis zum unter. Rand ermitt
von: TomTom
![]() |