Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Steuerelemente automatisch platzieren

Steuerelemente automatisch platzieren
19.07.2008 15:42:00
TomTom
Hi,
ich habe auf meinem Tabellenblatt 3 Textboxen und ein Listenfeld untereinender stehen. Sie haben beim Start alle die gleiche Höhe (108) , den gleichen Abstand zur linken Seite (140) und sind gleich lang. (500)
Nachdem das erste Textfeld beschrieben wurde, kann es sein, dass es sich in der Höhe auch verändert hat, weil evt. mehr informationen reinkopiert wurden.
Mein Ziel soll es sein, das zweite Steuerelement (Textbox2) der Eigenschaft TOP so anzuordnen, dass es sich mit einem Abstand von zB 20 unterhalb von textbox 1 platziert. Dabei sollte LEFT und WIDTH gleich bleiben nur der Abstand zur textbox 1 soll angepasst werden.
Dementsprechend sollte sich dann natürlich das 3. und 4. Steuerelement (Textbox3 und Listenfeld4) mit einem Abstand von 20 wieder an das Textfeld 2 bzw 3 anpassen. usw
Also kurz gesagt, die Abstände der einzelnen steuerelement sollte sich automatisch anpassen, wenn sich die Höhe eines Steuerelements geändert hat.
Wie kann man sowas machen ? (geht das überhaupt im laufenden Betrieb )
Dank Euch mal
Tom

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Steuerelemente automatisch platzieren
19.07.2008 19:42:47
Tino
Hallo,
Rückfrage, wie verändert sich die Höhe deiner TextBox?
Gruß Tino

www.VBA-Excel.de


AW: Steuerelemente automatisch platzieren
19.07.2008 20:58:26
TomTom
Hi,
nach dem Beispiel von Daniel :

Private Sub TextBox1_LostFocus()
With TextBox1
.Height = (.LineCount + 1) * (.Font.Size + 2)
End With
End Sub


Gruss
Tom

AW: Steuerelemente automatisch platzieren
19.07.2008 21:19:38
Daniel
HI
im gleichen Makro musst du die Plazierungen der unterhalb liegenden Textboxen anpassen:

Private Sub TextBox1_LostFocus()
With TextBox1
.Height = (.LineCount + 1) * (.Font.Size + 2)
End With
Textbox2.Top = Textbox1.top + Textbox1.height + 20
Textbox3.top = Textbox2.top + Textbox2.Height + 20
' ... usw
End Sub


Gruß, Daniel

Anzeige
AW: Steuerelemente automatisch platzieren
19.07.2008 21:50:15
TomTom
Hi Daniel,
zu Deine Beispiel an Joachim vorhin, das ich auch gerne nutzen würde, habe ich eine Frage:
Wenn ich auf einem Tabellenblatt mehrere Textboxen habe und diese gleichzeitig beschreibe, dann kann ich aber nicht alle Textboxen in der Grösse anpassen, weil das wohl nur geht, wenn die entsprechnende Textbox auch den Focus besitzt.
Wenn ich die zB Grösse der Textbox1 anpassen will, der Focus siztz aber auf der Textbox 3, dann funktioniert der Code nicht, es kommt eine Fehlermeldung, das Textbox 1 den Focus braucht.
Es kann also immer nur eine Textbox der Grösse angepasst werden.
Mache ich da was falsch ?
Ist es nicht möglich alle Steuerelemente gleichzeitig zu ändern ?
russ
Tom

Anzeige
AW: Steuerelemente automatisch platzieren
19.07.2008 22:48:12
Daniel
Hi
so ganz verstehe ich dein Problem nicht
ich kann immer nur eine Textbox gleichzeitig beschreiben
außerdem funktioniert das Makro in meinem letzten Beispiel so, wie ich es geschrieben habe.
(allerdings hat da keine der Textboxen einen Focus)
wenn du noch während dem Schreiben die anderen Textboxen verschieben willst, und das aber nicht funktioniert, weil sie keinen Focus haben, dann muss man ihn ihnen geben mit dem Befehl: TextboxXY.SetFocus
Gruß, Daniel

hier mal mein Beispiel, was mache ich bloss falsch
19.07.2008 23:00:43
TomTom
Hi Daniel,
schau mal bitte auf mein Beispiel , weiss nicht, was ich falsch mache, funktioniert einfach nicht:

Die Datei https://www.herber.de/bbs/user/53980.xls wurde aus Datenschutzgründen gelöscht


Danke.
Gruss
Tom

Anzeige
AW: hier mal mein Beispiel, was mache ich bloss falsch
19.07.2008 23:57:00
Daniel
HI
mit so ner Beispieldatei kann man natürlich gleich viel mehr anfangen.
entgegen der Fehlermeldung funktioniert "Textbox1.SetFocus" nicht, aber mit dem Befehl "Textbox1.Activate" gehts.

With TextBox1
.Activate
.Height = (.LineCount + 1) * (.Font.Size + 2)
End With


bei Excel-VBA muss man manchmal ein bisschen rumprobieren und vorallem den Intellisense nutzen, um rauszufinden, ob es einen für das Problem passenden Befehl geben könnte.
Gruß, Daniel

AW: hier mal mein Beispiel, was mache ich bloss fa
20.07.2008 00:34:00
TomTom
Hallo Daniel,
Danke, jetzt sieht das schon viel besser aus. Kannst Du in dem Beispiel erkennen , warum ich den Text in der Textbox 2 und 3 nach ausführen des Makros manuell nach unten scrollen muss ?
Die Grösse der Textbox wird zwar sofort neu berechnet und auch dargestellt, aber der Text springt nicht mit nach unten, den muss man erst manuell runterscrollen, wenn man den Anfang lesen will.
Bei der Textbox1 funktioniert es ohne Probleme.
Gruss
Tom
Hier noch mal mein Beispiel:
https://www.herber.de/bbs/user/53983.xls

Anzeige
AW: nö, da bin ich überfragt
20.07.2008 01:04:00
Daniel
Hi
sorry, keine Ahnung wie man das hinbekommt
da musst du selber noch ein bisschen rumprobieren und mal in der Hilfe nachschauen, ob es ne passende Funktion gibt.
Gruß, Daniel

Trotzdem Danke, Daniel :-) oT
20.07.2008 20:00:00
TomTom

.SelStart = 0
20.07.2008 09:24:13
Matthias
Hallo
bau mal ein SelStart=0 mit ein.
With TextBox1
.Activate
.Height = (.LineCount + 1) * (.Font.Size + 1)
.SelStart = 0
End With
With TextBox2
.Activate
.Height = (.LineCount + 1) * (.Font.Size + 1)
.SelStart = 0
End With
With TextBox3
.Activate
.Height = (.LineCount + 1) * (.Font.Size + 1)
.SelStart = 0
End With
Hilfts?
Gruß Matthias

Anzeige
Danke, hat weiter geholfen oT
20.07.2008 20:01:00
TomTom

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige