IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Date inversée de USF à Feuille excel


Sujet :

Macros et VBA Excel

  1. #21
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    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

  2. #22
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    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
    Justement ! 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
    voici une toute petite classe qui va peut etre t'arranger


    code de la classe nommée ecran
    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
    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
    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
    normalement ton userform ne devrait plus avoir de caption et devrait prendre tout l'espace de l'ecran
    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
    Fichiers attachés Fichiers attachés
    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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2017, 22h57
  2. [XL-2003] date inversée sur ma feuille
    Par goldfinger13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2012, 20h00
  3. problème de date inversée!EXCEL 07
    Par bahman dans le forum Excel
    Réponses: 5
    Dernier message: 18/08/2008, 08h28
  4. Réponses: 9
    Dernier message: 19/02/2007, 20h33
  5. nommer une feuille excel par la date du jour.
    Par Bourezak dans le forum Access
    Réponses: 3
    Dernier message: 22/01/2007, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo