Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Ö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.
to top
#2
Hallo,

und wie weit sind die beiden UF´s vom oberen bzw. unteren Bildschirmrand entfernt positioniert?
Gruß Stefan
Win 7 / Office 2007
to 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.
to top
#4
Hallo Achim,

könntest Du die Datei hier hochladen?
Gruß Stefan
Win 7 / Office 2007
to 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.
to 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 7 / Office 2007
to 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.
to 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-2016)
to 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.
to 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 ;-) 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-2016)
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Combobox.listfillrange mit for Knocker 17 393 05.11.2016, 11:25
Letzter Beitrag: schauan
  Tabellenwechsel per Dropdown-ComboBox TimoK 28 775 13.09.2016, 10:14
Letzter Beitrag: TimoK
  ComboBox mit Teil einer Liste füllen Rabe 22 631 05.08.2016, 08:10
Letzter Beitrag: Rabe
  combobox und textbox will dazu lernen 2 270 01.05.2016, 20:01
Letzter Beitrag: will dazu lernen
  Steuern von Drittprogrammen BarCode erzeugen Frank BST 17 1.044 26.04.2016, 17:24
Letzter Beitrag: RPP63
  Combobox läßt sich nicht löschen MICA 14 1.000 16.04.2016, 17:54
Letzter Beitrag: MICA
  Experte gesucht: Monatswerte in einem Diagramm mit Steuerungselemente steuern sveninho11 9 1.092 16.12.2015, 13:36
Letzter Beitrag: Jockel
  VBA: Abhängige Combobox Joe 6 1.364 20.10.2015, 13:21
Letzter Beitrag: Joe
  Tabelle Kopieren mit Monatsabfrage Combobox Daniel Albert 15 2.002 06.10.2015, 21:49
Letzter Beitrag: Kuwer
  VBA Dropdown (ComboBox) Joe 11 1.685 04.10.2015, 21:02
Letzter Beitrag: snb

Gehe zu:


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