Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Öffnen der ComboBox steuern
#1
Ich habe ein merkwürdiges Verhalten einer Combobox.
2 exakt gleiche UF haben ein HEIGHT = 342.
In beiden ist eine Combobox auf TOP = 316 platziert.

In der UF1 öffnet sich die Combo nach oben, zeigt mir mit Bildlaufleiste 16 der 26 Elemente an.
Das ist okay.

In der UF2 öffnet sich die Combobox nach unten, zeigt mir mit Bildlaufleiste 16 der 26 Elemente an, aber verschwindet aus dem Bereich des Screens.
Das ist schlecht.

Kann man das Verhalten, sprich die Richtung, oder Position der sich öffnenden Combo steuern?
Vielleicht gibt es ja da Befehle, die in den Eigenschaften nicht drin stehen, sondern nur als reiner VBA Code existiert.

Kann mir da jemand sagen, was ich tun kann, damit die Combo nach oben aufgeht?
Oder gibt es einen Parameter, den ich übersehen habe, dass es bei der einen geht und bei der anderen nicht?
Top
#2
Hallo,

und wie weit sind die beiden UF´s vom oberen bzw. unteren Bildschirmrand entfernt positioniert?
Gruß Stefan
Win 10 / Office 2016
Top
#3
Hallo Stefan,

die UF werden alle auf Screen Max gezogen.
Der Zoomfaktor wird in einem separaten Blatt gespeichert, so dass der User die UF wieder auf seine screengröße hat.
Code:
Function UF_size(objUF As Object)
objUF.Height = Application.Height
objUF.Width = Application.Width
objUF.Left = 0
objUF.Top = 0
strBreite = Application.Width
UFZ = Workbooks(strTF).Sheets("Listen").Range("A25")
   If UFZ < 70 Then UFZ = 70
objUF.Zoom = UFZ
Workbooks(strTF).Sheets("Listen").Range("A25") = UFZ
End Function
Top
#4
Hallo Achim,

könntest Du die Datei hier hochladen?
Gruß Stefan
Win 10 / Office 2016
Top
#5
Die ganze Datei hat 21MB.
Keine so gute Idee.
Top
#6
Hallo Achim,

eine Datei in dieser Größenordnung hier hochzuladen ist in der Tat nicht sehr sinnvoll. Was mir aber auffiel: Hier schreibst Du von der UF-Größe
(04.07.2014, 14:24)maine-coon schrieb: 2 exakt gleiche UF haben ein HEIGHT = 342.
In beiden ist eine Combobox auf TOP = 316 platziert.

Für mich scheint es so, das dies eine feste Größe ist. Aber hier schreibst Du

(04.07.2014, 15:55)maine-coon schrieb: die UF werden alle auf Screen Max gezogen.
Der Zoomfaktor wird in einem separaten Blatt gespeichert, so dass der User die UF wieder auf seine screengröße hat.

das die UF-Größe auf die Bildschirmgröße des Anwenders angepaßt wird. Was gilt jetzt? Denn nicht jeder Anwender hat gleiche Bildschirmgröße wie zum Beispiel Du. Und wird die Größenanpassung bei beiden UF überhaupt durchlaufen?
Gruß Stefan
Win 10 / Office 2016
Top
#7
Aufgefallen ist mir das erst, als ich das auf meinem kleinen Netbook sah.
Der hat 1366x768. Mein Desktop Rechner hängt an einem Screen mit 2560 x 1440.
Dabei haben beide das gleiche Verhältnis.

Der User kann sich das anpassen. Und zwar so.
Code:
Sub CommandButton6_Click() ' UF Kleiner
    If UserForm2.Zoom >= 70 Then
        With UserForm2
            .Zoom = .Zoom - ZF
            .Height = .Height - 0
            .Width = .Width - 3
            Label16.Caption = "<<<  " & .Zoom & "%  >>>"
            UFZ = .Zoom
        End With
        Workbooks(strTF).Sheets("Listen").Range("A25") = UFZ
    Else
    UserForm10.CommandButton7.SetFocus
    End If
End Sub

Private Sub CommandButton7_Click() 'UF Grösser
      If UserForm2.Zoom <= 200 Then
        With UserForm2
            .Zoom = .Zoom + ZF
            .Height = .Height + 0
            .Width = .Width + 3
             Label16.Caption = "<<<  " & .Zoom & "%  >>>"
            UFZ = .Zoom
        End With
        Workbooks(strTF).Sheets("Listen").Range("A25") = UFZ
    Else
        UserForm10.CommandButton6.SetFocus
    End If
End Sub

Ich habe jetzt die eine Combobox auf einen kleineren Wert bei ListRows gesetzt. Dann ist zwar die Bildlaufleiste zu sehen, aber besser, als nicht sichtbare Teile zu haben.
Top
#8
Hallöchen,

Die UF werden auf die Größe der Application gezogen. Die haben mit dem geposteten code nur dann die Bildschirmgröße, wenn Excel auch entsprechend groß ist. Beim Test sollte Excel in beiden Szenarien also auch oben rechts das Vollbildsymbol anzeigen. Ich gehe davon aus, dass die Größe geprüft wurde.

Haben denn beide Combos auch ansonsten gleiche Eigenschaften wie z.B. Anzahl der angezeigten Zeilen, Anzahl der Einträge usw?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Da die UF auf Screen max geht, gibt es oben rechts auch nur das Kreuz der UF zu sehen.
Eine Prüfung der Größe? Da kann ich dir jetzt nicht folgen, was du damit meinst.

Die Combos haben beide die gleiche Größe, aber unterschiedliche Inhalte; also TextBoxen, Labels, Comboboxen.
Und beide UF werden gleich behandelt.

Das klingt jetzt etwas merkwürdig, aber das gesamte Programm besteht nur aus sichtbaren UF.
Es ist ein Programm zur Filterung eines Katalogs.

Das ganze ist wirklich nicht so dramatisch. Ich habe ja jetzt die ListRows verkleinert und alles ist gut.
Ist halt nur merkwürdig, dass die eine Combo es richtig darstellt, die andere nicht.
Top
#10
Hallo Achim,

irgendwoher musst Du die Höhe von 342 herbekommen haben - das meinte ich mit geprüft. Ich wäre dazu im VBA-Editor in beiden Fällen den ersten code schrittweise durchgegangen und hätte mir die Eigenschaft objUF.Height anzeigen lassen.
Wenn die Anzahl der angezeigten Zeilen der Comboboxen - also die ListRows - unterschiedlich sind, kann das eine Ursache für das unterschiedliche Verhalten in den beiden UserForms sein Wink Inzwischen hast Du geschrieben, dass die Auflösung unterschiedlich ist.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste