Hallo Excelgemeinde,
ich habe in Excel eine kleine Anwendung geschrieben. An meinem Rechner ( Bildschirm ) füllt die Userform den ganzen Bildschirm aus. Jetzt habe ich das Programm bei Kollegen mit grösserem Bildschirm installiert. Die Userform füllt hier nur einen Teil des Bildschirmes aus. Gibt es eine Möglichkeit die Userform ( incl. Steuerelemente ) automatisch dem jeweiligen Bildschirm anzupassen ??
Gruss und gute Nacht noch
Hallo Excelgemeinde,
Hi,
probier mal das aus:
Private Sub Anpassen()
Dim a As Control
Dim faktor\_h, faktor\_w As Integer
faktor\_h = Application.Height / UserForm1.Height
faktor\_w = Application.Height / UserForm1.Width
UserForm1.Width = Application.Width
UserForm1.Height = Application.Height
UserForm1.Left = 0
UserForm1.Top = 0
For Each a In Controls
a.Top = a.Top \* faktor\_h
a.Left = a.Left \* faktor\_w
a.Height = a.Height \* faktor\_h
a.Width = a.Width \* faktor\_w
Next
End Sub
Gruß.Timo
ich habe in Excel eine kleine Anwendung geschrieben. An meinem
Rechner ( Bildschirm ) füllt die Userform den ganzen
Bildschirm aus. Jetzt habe ich das Programm bei Kollegen mit
grösserem Bildschirm installiert. Die Userform füllt hier nur
einen Teil des Bildschirmes aus. Gibt es eine Möglichkeit die
Userform ( incl. Steuerelemente ) automatisch dem jeweiligen
Bildschirm anzupassen ??
Gruss und gute Nacht noch
Hallo Excelgemeinde,
Hi,
probier mal das aus:
Private Sub Anpassen()
Dim a As Control
Dim faktor_h, faktor_w As Integer
faktor_h = Application.Height / UserForm1.Height
faktor_w = Application.Height / UserForm1.Width
UserForm1.Width = Application.Width
UserForm1.Height = Application.Height
UserForm1.Left = 0
UserForm1.Top = 0
For Each a In Controls
a.Top = a.Top * faktor_h
a.Left = a.Left * faktor_w
a.Height = a.Height * faktor_h
a.Width = a.Width * faktor_w
Next
End Sub
Gruß.Timo
Hallo Timo,
vielen Dank schon mal. Es hat nicht ganz funktioniert. Der debugger steht bei :for each a … und vermisst das Object.
Muss vieleicht activworkbook angesprochen werden ?
Gruss
Jonas
Hallo Excelgemeinde,
Hi,
Hi,
probier mal das aus:
Private Sub Anpassen()
Dim a As Control
Dim faktor_h, faktor_w As Integer
faktor_h = Application.Height / UserForm1.Height
faktor_w = Application.Height / UserForm1.Width
UserForm1.Width = Application.Width
UserForm1.Height = Application.Height
UserForm1.Left = 0
UserForm1.Top = 0
For Each a In Controls
statt dessen:
For Each a In userform1.Controls
den Namen des Userform musst du evtl. noch anpassen.
Gruß.Timo
a.Top = a.Top * faktor_h
a.Left = a.Left * faktor_w
a.Height = a.Height * faktor_h
a.Width = a.Width * faktor_w
Next
End Sub
Gruß.Timo
Hallo Timo,
vielen Dank schon mal. Es hat nicht ganz funktioniert. Der
debugger steht bei :for each a … und vermisst das Object.
Muss vieleicht activworkbook angesprochen werden ?
Gruss
Jonas