Frage zur Sortierung einer Liste
#21
Hallo Achim,


teste einfach mal in der von mir eingestellten wie sich das verhält mit dem Zoom.

Ich denke, Du wirst wieder erstaunt sein. Wink
Gruß Atilla
Top
#22
Hallo Achim,

und ich kann dir eine Testmappe zur Verfügung stellen. Die Userform enthält eine Listbox und 2 CommandButtons. Die Userform wird in der ganzen Bildschirmgröße angezeigt. Ein Button schließt die UF und der andere vergrößert die Elemente in der Userform. Außerdem habe ich den Beispielcode von Attila eingefügt. Beim Mausklick auf die Listbox wird dir eine MsgBox angezeigt. Aber teste mal selber.

Nachtrag: Das vergrößern der Userform habe ich von hier.


Angehängte Dateien
.xlsm   UF_Achim.xlsm (Größe: 20,96 KB / Downloads: 2)
Gruß Stefan
Win 10 / Office 2016
Top
#23
Nach dem Klick auf den CommanButton wird die UF auf Screen max gezogen.
Ein Klick auf GRÖ?ER bringt einen Laufzeitfehler 380...Ungültiger Wert.....10...400.
Hier
Me.Zoom = Fix(WorksheetFunction.Min(Me.Width / sngWidth, Me.Height / sngHeight) * 100)

Aber ich habe schon gesehen, dass bei Klick auf die Überschrift und die erste Zeile der Listbox die MsgBox erscheint.
Ich werde jetzt mal versuchen mit den Zahlen zu jonglieren, um eine gute Treffergenauigkeit in die Überschriften hinzubekommen.

Vielen Dank erst mal für die Hinweise und den Beispielcodes.
Top
#24
Hallo Achim,

was für Werte haben da Me.Width, Me.Height, sngWidth und sngHeight?
Gruß Stefan
Win 10 / Office 2016
Top
#25
Hier die Werte Stefan,

Me.Height = 1080
Me.Width = 1920
sng.Heightz = 198,75
sng.Width = 284,25
Top
#26
Hallo Achim,

der Zoom geht bis maxmimal 400 Prozent und bei deinen Werten wäre es darüber. Habe das Makro mal geändert.

Code:
Private Sub CommandButton2_Click()
'    Dim sngWidth As Single, sngHeight As Single
    Dim sngProzent As Single
    Me.Left = 0
    Me.Top = 0
    Me.Width = GetSystemMetrics(SM_CXSCREEN) * 0.75
    Me.Height = GetSystemMetrics(SM_CYSCREEN) * 0.75
    sngProzent = Fix(WorksheetFunction.Min(Me.Width / sngWidth, Me.Height / sngHeight) * 100)
    If sngProzent > 400 Then
        Me.Zoom = 400
    Else
        Me.Zoom = Fix(WorksheetFunction.Min(Me.Width / sngWidth, Me.Height / sngHeight) * 100)
    End If
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#27
Ich habe den Code getauscht.
Jetzt keine Fehlermeldung mehr.

Es ist so wie ich schon sagte eine Art "Pseudo-Hyperlink".
Ein bestimmter eingerahmter Bereich löst das Click_Ereignis aus.
Bei großer UF passen die Klicks relativ genau auf die Überschriften.
Ist die UF klein, kann man auch das Click_Ereignis aufrufen bei Click auf die erste Zeile der Listbox.

Ich muss da mit den Zahlenwerten ein wenig spielen, bis ich es gut treffe.
Auf jeden Fall hast du mir sehr geholfen bei meinem Optimieren meines Programms.

Dafür ein großes Danke schön.....Wünsche noch einen schönen Sonntag.
Top
#28
Hallo zusammen,

so wie ich es sehe, braucht Achim seinen bisherigen Code
nicht zu ändern. Er braucht auch keine Anpassungen vornehmen.
Wenn er mein Beispiel nimmt, muss er nur seine Spaltenbreiten
der Listbox eintragen. Nach Änderung des Zooms erscheint alles
kleiner oder größer, man muss dann aber die Breiten der Listboxspalten
nicht anpassen.

Achim sollte mal meinen Code für das MousDown Ereignis nehmen,
und dann mal den Zoom verändern. Er wird sehen, dass alles wie gehabt
funktioniert. Die Grenzen, die angegeben sind, werden automatisch
mit dem Zoom angepasst.
Gruß Atilla
Top


Gehe zu:


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