Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

UF.CommandButton horizontal anordnen

Forumthread: UF.CommandButton horizontal anordnen

UF.CommandButton horizontal anordnen
19.11.2024 18:54:34
Sigifrm
Ich habe eine Userform mit 3 CommandButton horizontal angeordnet.
Ich möchte gerne das die Standard Breite von 70 erhalten bleibt.
Ändert sich der Caption Text soll sich auch die Breite des CommndButton ändern und die beiden dementsprechend nach rechts verschoben werden.
Mein Versuch klappt nicht
With UFMsg
' Mindestbreite für die Schaltflächen
Const MinButtonWidth As Single = 70
Dim MaxButtonWidth As Single
Dim TempWidth As Single

' Temporäres Label zum Messen der Textbreite
.LabelTemp.Visible = False
.LabelTemp.AutoSize = True

' Text der Schaltflächen in das temporäre Label setzen und die Breite messen
.LabelTemp.Caption = .cmd_Ja.Caption
TempWidth = .LabelTemp.Width
MaxButtonWidth = Application.WorksheetFunction.Max(TempWidth, MinButtonWidth)

.LabelTemp.Caption = .cmd_Nein.Caption
TempWidth = .LabelTemp.Width
MaxButtonWidth = Application.WorksheetFunction.Max(TempWidth, MaxButtonWidth)

.LabelTemp.Caption = .cmd_Abbrechen.Caption
TempWidth = .LabelTemp.Width
MaxButtonWidth = Application.WorksheetFunction.Max(TempWidth, MaxButtonWidth)

' Setze die Breite aller Schaltflächen auf die maximale Breite
.cmd_Ja.Width = MaxButtonWidth
.cmd_Nein.Width = MaxButtonWidth
.cmd_Abbrechen.Width = MaxButtonWidth

' Schaltflächen ausrichten
.cmd_Ja.Left = (UFMsg.Width - (3 * MaxButtonWidth + 10)) / 2
.cmd_Nein.Left = .cmd_Ja.Left + MaxButtonWidth + 5
.cmd_Abbrechen.Left = .cmd_Nein.Left + MaxButtonWidth + 5

' Höhe der Labels anpassen
.lblText.AutoSize = True
If .lblText.Height 39 Then
.lblText.Height = 39
.Height = 102
Else
.frmButton.Top = .lblText.Height + 35
.Height = UFMsg.lblText.Height + 72
End If
End With


Danke!
Gruß Sigi
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UF.CommandButton horizontal anordnen
19.11.2024 19:19:39
daniel
HI
wenn dein Versuch nicht klappt, musst du was anderes machen.

du solltest uns zumindest mal kurz beschreiben, was dein Makro denn macht (im Unterschied zu dem, was es machen soll).
Die Analyse von dem was das Makro macht, ist meistens der erste Schritt zur Problemlösung.
Wer mit der Feststellung "klappt nicht" sofort die Flinte ins Korn wirft und jegliche Aktivität einstellt, wird nie etwas zustande bringen.
also: was macht denn dein Makro? gibts es eine Fehlermeldung? werden die Buttons zwar angeordnet, aber nicht so wie du dir das vorstellst?

wenn du dir Hilfe von Fremden (also uns) erhoffst, ist es immer hilfreich, wenn du uns die Datei zur Verfügung stellst, damit wir das selber auch mal ausprobieren können.
das ist viel einfacher, als sich alles theoretisch aus dem Code und deinen Beschreibungen abzuleiten.

Gruß Daniel
Anzeige
AW: UF.CommandButton horizontal anordnen
19.11.2024 22:59:20
Sigifrm
Hallo Daniel,

da ich neu bin kenne ich mich nicht so aus.
Ich weiß auch nicht ob Du die Datei öffnen kannst.
Im Prinzip gibst Du in den Zellen C1 - C4 Texte ein.
C1 = Haupttext
C2 = Hinweis
C3 = Button für ja (hier soll sich der Button an die textlänge anpassen. Jedoch mit Autosize kommt ein Wert heraus mit dem ich nicht anfangen kann)
C4 = Button für nein ( soll nach rechts verschoben werden wenn ja > 70 ist.
Ich hoffe ich habe mich verständlich ausgedrückt.
Danke für Deine Hilfe.
Gruß, Sigi

Datei
173719.xlsm
Anzeige
AW: UF.CommandButton horizontal anordnen
19.11.2024 23:11:30
Alwin Weisangler
Hallo Sigi,

du musst den vollständigen Pfad der hochgeladenen Datei kopieren und in deinen Text an passender Stelle einfügen.

Gruß Uwe
AW: UF.CommandButton horizontal anordnen
20.11.2024 00:45:49
ralf_b
bring doch erstmal Ordnung in deine Textzuweisungen.

Zum Zeitpunkt der Breitemessung hast du nur die Defaultwerte aus dem Editor "ja " und "nein" in deinen Buttonbezeichnungen drin. Die Textzuweisung aus dem Tabellenblatt erfolgt später.
Wenn du im Schaltfläche1_Klicken UFMsg aufrufst, wird das initialize der Userform durchlaufen. Und erst danach, wenn die Userform existiert, werden deine Texte in die Button-Controls geschrieben.

Du könntest die Breitebestimmung ins Activate verlagern. Das wird durchlaufen kurz vor dem Anzeigen der Userform.
.LabelTemp.Caption = .cmd_Ja.Caption Hier steht noch kein Text aus dem Tabellenblatt im Ja-Button.

Für mehr Text benötigst du mehr Platz. So einfach ist das. Man könnte zwar den Zeilenumbruch "Wordwarp" noch nutzen aber dann wirds oben und unten bei deinen Buttons eng. Die Möglichkeit der Fontgrößenänderung, um mehr Text unterzubringen, macht die Userform dann wahrscheinlich schwierig zu lesen.
Anzeige
AW: UF.CommandButton horizontal anordnen
20.11.2024 12:13:24
daniel
Hi
in dieser Reihenfolgefür beide Buttons

1. Text zuweisen
2. Autosize aktivieren
3. Spaltenbreite prüfen und wenn kleiner 70, auf 70 setzen

den zweiten Button dann am ersten ausrichten:


Sub Schaltfläche1_Klicken()


sFrage = Sheets("Tabelle1").Range("C1").Value
sTitel = Sheets("Tabelle1").Range("C2").Value

With UFMsg.cmd_Ja
.Caption = Sheets("Tabelle1").Range("C3").Value
.AutoSize = True
If .Width 70 Then .Width = 70
End With

With UFMsg.cmd_Nein
.Caption = Sheets("Tabelle1").Range("C4").Value
.AutoSize = True
.Visible = True
If .Width 70 Then .Width = 70
.Left = UFMsg.cmd_Ja.Left + UFMsg.cmd_Ja.Width + 5
.SetFocus
End With

UFMsg.Show
End Sub


und lass den Quatsch mit dem Doppelpunkt und den mehreren Befehlen in einer Zeile.
da verlierst du schnell die übersicht. Das ist nur in wenigen Fällen sinnvoll.
Gruß Daniel
Anzeige
AW: UF.CommandButton horizontal anordnen
20.11.2024 18:35:56
daniel
warum die Datei?
ich hab dir doch die Lösung schon gezeigt.
du musst das halt noch einbauen.
das kannst du selber.

Anzeige
AW: UF.CommandButton horizontal anordnen
23.11.2024 01:24:48
Siegfried Freimann
Hallo Daniel,
Danke für Deine Hilfe. Es funktioniert.
Gruß Sigi
AW: UF.CommandButton horizontal anordnen
20.11.2024 09:37:05
daniel
Hi
du müsstest den kompletten Link kopieren und hier einstellen, damit ich die Datei öffnen kann.
Gruß Daniel
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18