Autres Positionner mon userform en haut de l'écran

fenec

XLDnaute Impliqué
Bonjour le forum,
Comme le dit le titre je viens vers vous car je souhaiterais que mon userform se positionne en haut de l’écran et si possible sans bandeau.
Est ce possible?
Cordialement ,
Philippe.
 

Pièces jointes

  • essai userform.xls
    126 KB · Affichages: 13

Phil69970

XLDnaute Barbatruc
Bonjour fenec, le forum

Essaye ceci :

1598197674069.png


@Phil69970
 

Phil69970

XLDnaute Barbatruc
Et j'ai trouvé cela dans l’aide


StartUpPosition, propriété

Cette propriété renvoie ou définit une valeur qui spécifie la position d’un objet UserForm lorsqu’il s’affiche pour la première fois. Vous pouvez utiliser l’un des quatre paramètres pour StartUpPosition.

StartUpPosition, propriété
SettingValeurDescription
Manual0Aucun paramètre initial spécifié.
CenterOwner0,1Centré sur l’élément auquel UserForm appartient.
CenterScreenn°2Centré sur l’écran.
WindowsDefault3Dans l’angle supérieur gauche de l’écran.
 

Pièces jointes

  • 1598197939379.png
    1598197939379.png
    68 bytes · Affichages: 14

patricktoulon

XLDnaute Barbatruc
bonjour fenec
je reconnais a stupeur :eek: :eek: :eek: un hersats d'un de mes codes
apprenez a copier les codes tels qu'il sont sinon ça ne marche pas
comme tu a la sub "determine" dont je suis l'auteur et tu l'a trouvé surement sur DVP

j'en conclu que tu veux non seulement le userform en top sans bandeau (barre de caption) mais tu le veux aussi en plein ecran et que les controls soient redimensionnés en conséquences
est ce que c'est cela que tu veux ????
 

patricktoulon

XLDnaute Barbatruc
je te propose donc une version simplifiée
a mettre dans le module du userform !!!!!!!!!!!
a l'ouverture ton userform occupera tout l’écran et sans caption
VB:
Private Sub UserForm_Initialize()
    Dim Ecadre#, WsTate&, NewLarge#, NewHaut#, Mem, Ecaption#
    Ecadre = Me.Width - Me.InsideWidth:    Ecaption = Me.Height - Me.InsideHeight
    Me.Tag = Me.Width & ";" & Me.Height
    WsTate = Application.WindowState
    For Each ctrl In Me.Controls
        With ctrl
            .Tag = .Left & ";" & .Top & ";" & .Width & ";" & .Height
            On Error Resume Next: .Tag = .Tag & ";" & .Font.Size
            Err.Clear
        End With
    Next
    Application.WindowState = xlMaximized

    With Me
        .StartUpPosition = 0
        .Top = -(Ecaption - (Ecadre / 2))
        .Left = Application.Left + Ecadre
        .Height = Application.Height + (Ecadre * 2)
        .Width = Application.Width - Ecadre
    End With
    'DoEvents

    NewLarge = Me.Width / Split(Me.Tag, ";")(0)
    NewHaut = Me.Height / Split(Me.Tag, ";")(1)
    For Each ctrl In Me.Controls
        With ctrl
            Mem = Split(.Tag, ";")
            .Left = Mem(0) * NewLarge: .Width = Mem(2) * NewLarge
            .Top = Mem(1) * NewHaut: .Height = Mem(3) * NewHaut
            On Error Resume Next: .Font.Size = Mem(4) * NewHaut
            Err.Clear
        End With
    Next
    Application.WindowState = WsTate
End Sub
;)
voila simple et sans api windows !!!!
démo
au départ il est comme çà
au depart.JPG


a l'arrivée il est comme çà
a l'arrivée.JPG
 

fenec

XLDnaute Impliqué
Re,
Déjà merci pour votre réactivité

Phil69970 j’ai testé ca fonctionne mais je ne parviens pas à lire votre fichier joint message 4

Tof62 votre code fonctionne également

Patricktoulon j’utilise le code détermine depuis 2012 dans un ancien projet, il est donc possible que ce soit vous qui m’ayez aidé à l’époque je ne me rappelle plus,

Pour répondre à votre question la réponse est oui vous avez bien compris ma demande
 

fenec

XLDnaute Impliqué
Patricktoulon
venant de tester votre code celui ci ne correspond pas à ma demande je vous est mal compris
seul le fichier est en plein écran et mon userform je le veux en haut de l'écran et sans bandeau
j'espère avoir été plus clair.