Bonjour,
je ne crois pas avoir vu passer le tuto sur le sujet :
https://jpcheck.developpez.com/tutor...international/
et en particulier l'exemple :
https://jpcheck.developpez.com/tutor...ional/#LIV-5-i
Bonjour,
je ne crois pas avoir vu passer le tuto sur le sujet :
https://jpcheck.developpez.com/tutor...international/
et en particulier l'exemple :
https://jpcheck.developpez.com/tutor...ional/#LIV-5-i
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
bonjour dgeo10
concernant ma remarque sur le fait que tes userforms etait trop grand comme demontré dans une de mes reponses et que selon les ecrans connecté au pc qui utiliserait ton fichier ca serait problematique puisque les controls ne sont plus accessible
et donc suite a ta demande par MP
voici une toute petite classe qui va peut etre t'arrangerJustement ! Vu que je reprend tout depuis le début ... comment faire pour avoir une taille normal pour un USF (mais je préfère quand l'usf prend tout l'écran et pas avoir un petit cadre) ...
Car comme tu ma dit si je change de pc ou d'écran ... donc à tu des conseils ? Merci
code de la classe nommée ecran
code dans le activate du userform + declaration de la classe en haut de module
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Option Explicit #If win64 Then Private ptrsafe Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private ptrsafe Declare Function fwa Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private ptrsafe Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long Private ptrsafe Declare Function showw Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #Else Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function fwa Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function showw Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #End If Public WithEvents boutonclose As MSForms.Label 'Public form As UserForm Sub fullscreen(ByRef usf As Object, clas, Optional CaptionOn As Boolean = True, Optional AddButton As Boolean = False, Optional applyZooM As Boolean = False) Dim Handle&, newlong&, Uw&, Uh1&, Uh2&, B As MSForms.Control, z# Uh1 = usf.Height newlong = IIf(CaptionOn, &H94CF0080, &H94080080) Handle = fwa(vbNullString, usf.Caption) SetWindowLongA fwa(vbNullString, usf.Caption), -16, newlong: SetWindowLongA Handle, -20, &H0: ' sans caption DrawMenuBar Handle: usf.BorderStyle = 0: usf.SpecialEffect = 0: showw Handle, 3 Uw = usf.Width: Uh2 = usf.Height z = IIf(applyZooM, Uh2 / Uh1, 1) usf.Zoom = 100 * z ' on ajoute un bouton pour fermer si AddButton = true If AddButton Then Set B = usf.Controls.Add("Forms.Label.1", "x", True) With B: B.Caption = "": .BackStyle = 0: .BackColor = vbRed: .Width = 25 / z: .Height = 15 / z: .TextAlign = 2: .Font.Bold = True: .Left = (Uw - (.Width * z)) / z: .Font.Size = Application.RoundUp(11 / z, 0): .ZOrder 0 End With Set clas.boutonclose = B End If End Sub Private Sub boutonclose_Click(): Unload boutonclose.Parent: End Sub Private Sub boutonclose_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal y As Single) With boutonclose If X > .Width / 3 And y < .Height / 2 Then .BackStyle = 1: .Caption = "X" Else .BackStyle = 0: .Caption = "" End With End Sub
normalement ton userform ne devrait plus avoir de caption et devrait prendre tout l'espace de l'ecran
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim cl As New ecran Private Sub UserForm_Activate() 'userform sans caption et plein ecran '(un bouton invisible sera ajouté automatiquement en haut a droite il est visible lorsque que la souris passe dessus) cl.fullscreen Me, cl, False, True, True 'OU 'userform plein ecran avec caption et bouton reduire et agrandir dans la caption 'cl.fullscreen Me, cl End Sub
les arguments
me obligatoire!!!!
cl obligatoire!!!!!
le reste est facultif selon ce que tu souhaite
a savoir
argmts(3)=supprimer la caption ou les 3 bouton(CaptionOn false/true)
argmts(4) =ajout du bouton (AddButton false/true)
argmts(5) application du zoom ou pas pour recadrer le tout dans l'espace occupé par le userform en plein ecran (applyZooM false/true)
en mode plein ecran et sans caption un bouton créé dynamiquement ,il est visible que!!! lorsque la souris se promene dans le coin haut droite du userform sinon il est invisible
un modele en piece jointe avec un userform trop grand a la base qui va se redim automatiquement le zomm va donc reduire les controls
bien entendu si tu créé des userforms vraiment trop grands le zoom reduira trop et aura un impact sur la lisibilité des controls
voila
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager