Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

UserForm auf Screenresolution anpassen

UserForm auf Screenresolution anpassen
16.10.2004 20:43:49
Drazen
Hi,
ich habe mir eine Mappe angelegt die ausschliesslich aus UserForms besteht, die Blätter sollen alle im Hintergrund bleiben, die Navigation zwischen den Forms geschieht ebenfalls über CommandButtons, jetzt mein Problem:
Da ich ja möchte dass die Forms die gesamte Anwendung abdecken, kann man die Forms per VBA-Code irgendwie so konfigutieren, dass sie immer der Bildschirmauflösung entsprechen, also immer den ganzen Bildschirm füllen wie Excel selbst ja auch. Geht das oder spinne ich wieder nur rum mit meinen Ideen?
Grüsse
Drazen

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm auf Screenresolution anpassen
Reinhard
Hi Drazen,
weiss nicht ob es die Lösung ist, schau mal nach "usablewidth" bzw "usableheight".
Dann ungetestet quasi Userform1.width=application.usablewidth
Gruß
Reinhard
AW: UserForm auf Screenresolution anpassen
17.10.2004 07:12:35
Nepumuk
Hi,
so geht's:


Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As LongAs Long
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Sub UserForm_Activate()
    With Me
        .StartUpPosition = 0
        .Top = 0
        .Left = 0
        .Width = GetSystemMetrics(SM_CXSCREEN) / 1.33
        .Height = GetSystemMetrics(SM_CYSCREEN) / 1.378
    End With
End Sub


Gruß
Nepumuk
Anzeige
AW: UserForm auf Screenresolution anpassen
K.Rola
Hallo, mein Lieblingsnepumuk,
fehlt da nicht noch eine Kleinigkeit? Die controls auf dem userform sollten auch angepasst werden, oder?
Gruß K.Rola
AW: UserForm auf Screenresolution anpassen
17.10.2004 15:14:05
Nepumuk
Geliebte K.Rola,
ooops, da hab ich gar nicht dran gedacht, da ich das mit einem leeren Form getestet habe. Aber solange sich der Verursacher der Antwort nicht meldet scheint es Ok zu sein.
Ich bin übrigens der globalen Lautstärkeeinstellung auf die Schliche gekommen. Wenn es ausgereift ist, dann gebe ich laut.
Hast du das After_Print zum laufen gebracht? Ich habe das bei VB-fun als Tipp angemeldet. Angie hat es auf Herz und Nieren getestet und für gut befunden. Ist zwar noch nicht aufgenommen, aber sie meldet sich wieder.
Mit dem Officeclipboard in XP habe ich noch keine Infos, da ich keine Zeit zum testen hatte. Muss auch manchmal arbeiten auf der Arbeit.
Momentan steh Mitarbeiterschulung auf dem Programm, kennst du eine Trick, mit der sich mit einem Mausklick alle Anzeigen einer Fremdanwendung von deutsch auf türkisch / griechisch / russisch und analphabetisch umschalten lässt? Gut wäre ein System, das erkennt wer vor der Kiste sitzt eventuell auszulesen daran, mit wie viel Kilogramm die Mausbuttons betätigt werden?
Glühendheiße Grüße
Nepumuk
Anzeige
AW: UserForm auf Screenresolution anpassen
17.10.2004 15:19:24
Drazen
Hallo,
nein das funktioniert so wie von Nepomuk geschildert doch nicht so ganz, bin aber trotzdem woanders fündig geworden, also es geht so:
StandardModule: basMain
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
ByVal hdc As Long) As Long
Const HORZRES = 8
Const VERTRES = 10
Function ScreenResolution()
Dim lRval As Long
Dim lDc As Long
Dim lHSize As Long
Dim lVSize As Long
lDc = GetDC(0&)
lHSize = GetDeviceCaps(lDc, HORZRES)
lVSize = GetDeviceCaps(lDc, VERTRES)
lRval = ReleaseDC(0, lDc)
ScreenResolution = lHSize & "x" & lVSize
End Function
Sub CallForm()
frmFullSize.Show
End Sub
ClassModule: frmFullSize

Private Sub CommandButton1_Click()
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim sSize As String
sSize = ScreenResolution
With Me
.Width = Left(sSize, InStr(sSize, "x") - 1)
.Height = Right(sSize, Len(sSize) - _
InStr(sSize, "x"))
.Left = 0
.Top = 0
End With
End Sub

Für alle die das Gleiche Problem haben, aber trotzdem vielen Dank.
Grüsse
Drazen
Anzeige
AW: UserForm auf Screenresolution anpassen
K.Rola
Hallo Nepumuk,
"Ich bin übrigens der globalen Lautstärkeeinstellung auf die Schliche gekommen"
Schön bin sehr gespannt.
"Hast du das After_Print zum laufen gebracht?"
Nö, muss aber zu meiner Schande gestehen, dass ich es auch mangels aktuellem Bedarf
nicht weiter verfolgt habe.
"Mit dem Officeclipboard in XP habe ich noch keine Infos..."
Ist für mich derzeit auch kein Thema, wenn es akut wird, gehe ich dir schon auf die Nerven.
Btw., hast du dich schon mal mit MIDI beschäftigt? Eine Frage hier im Forum hat mich
darauf gebracht, wieder eine Krabbelkiste mehr. Wenn du willst, lass ich dir mal das
erste Ergebnis zukommen.
Gruß K.Rola
Anzeige
AW: UserForm auf Screenresolution anpassen
17.10.2004 17:08:00
Nepumuk
Oh einzigartige,
MIDI, ist das nicht eine Rocklänge? Es würde mich natürlich freuen, wenn du mir darüber etwas zu kommen lässt.
Ääääääääää, kannst du dir vorstellen, warum das Rechnen mit Integerwerten zu einem Überlauf führt, wenn das Ergebnis der Berechnung den Maximalwert von Integer überschreitet, so wie in meinem gestern zugesandten Beispiel, obwohl das Ergebnis einem Single zugewiesen wird?
dein
Nepumuk
AW: UserForm auf Screenresolution anpassen
K.Rola
"so wie in meinem gestern zugesandten Beispiel"?
Lieber Nepumuk, nix da Post!
Passiert das denn auch, wenn alle Variablen deklariert sind? Ich kenn das nur, wenn ein
fixer Wert ohne Deklaration verwendet wird, der wird dann beim Kompilieren als Variant
mit Untertyp, der zu dem Wert passt angenommen, überschreitet er dann im Zuge der Berechnung den Wertebereich, kommt es zum Überlauf. Ich umgehe solche Probleme, indem
ich dann 200& * 30000& schreibe, zumal Long Variablen ohnehin etwas schneller berechnet
werden als Integer, warum auch immer.
Gruß K.Rola
Anzeige
AW: UserForm auf Screenresolution anpassen
17.10.2004 17:52:38
Nepumuk
Unerreichbare,
wo ist mein E-Mail hin verschwunden? Im Spamordner?
Das war das Beispiel:


Option Explicit
Public Sub test1()
    Dim intValue As Integer, sngValue As Single
    intValue = 2000
    sngValue = test2(intValue)
End Sub
Private Function test2(iValue As IntegerAs Single
    test2 = iValue * 500
End Function


Gruß
Nepumuk
Anzeige
AW: UserForm auf Screenresolution anpassen
K.Rola
Hallo Nepumuk,
deine mail ist wahrscheinlich dort, wo auch meine Millionen sind.
Mach einfach ein & hinter die 500
Gruß K.Rola
AW: UserForm auf Screenresolution anpassen
17.10.2004 18:14:37
Nepumuk
Hi K.Rola,
die Lösung ist mir, dank Dir, schon bekannt. Aber das WARUM schwebt noch unbeantwortet im Raum. Muss ich wirklich Bill (laut Langenscheidt heißt das Rechnung, die es zu bezahlen gilt) fragen?
Gruß
Nepumuk
AW: UserForm auf Screenresolution anpassen
K.Rola
Hallo Nepumuk,
das ist wohl ein generelles Problem in VB(A) zu sein, der Begriff wird als Ganzes ausgewertet, ähnlich IIF und bei If- Afragen mit And. In anderen Sprachen wird,
wenn der erste Teil der Abfrage schon eindeutig ist, der zweite gar nicht ausgewertet.
Gruß K.Rola
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige