Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Ö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?
Gruß Achim
Jeder Mensch macht Fehler. Die Kunst liegt darin, sie zu machen, wenn keiner zuschaut.
Antworten Top
#2
Hallo,

und wie weit sind die beiden UF´s vom oberen bzw. unteren Bildschirmrand entfernt positioniert?
Gruß Stefan
Win 10 / Office 2016
Antworten 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
Gruß Achim
Jeder Mensch macht Fehler. Die Kunst liegt darin, sie zu machen, wenn keiner zuschaut.
Antworten Top
#4
Hallo Achim,

könntest Du die Datei hier hochladen?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
Die ganze Datei hat 21MB.
Keine so gute Idee.
Gruß Achim
Jeder Mensch macht Fehler. Die Kunst liegt darin, sie zu machen, wenn keiner zuschaut.
Antworten 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, 13: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, 14: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
Antworten 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.
Gruß Achim
Jeder Mensch macht Fehler. Die Kunst liegt darin, sie zu machen, wenn keiner zuschaut.
Antworten 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)
Antworten 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.
Gruß Achim
Jeder Mensch macht Fehler. Die Kunst liegt darin, sie zu machen, wenn keiner zuschaut.
Antworten 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)
Antworten Top


Gehe zu:


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