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.
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.
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
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.
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.