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 :

Maximiser une UserForm en VBA pour tout type d'écran


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 58
    Points : 56
    Points
    56
    Par défaut Maximiser une UserForm en VBA pour tout type d'écran
    bonsoir
    C'est mon premier apport dans ce forum , en fouillant dans le net pour une solution "maximiser une UserForm en VBA ( Excel)" pour n’importe quels type d’écran PC (19" 20" ou autre) , j'ai trouvé pas mal de codes plus au moins compliqués pour un débutant , alors j'ai eu une idée très simple que voulez partager avec vous ( les débutants bien sur) :
    l'idée est la suivante :
    Pour maximiser un UserForm en VBA , le plus simple est de maximiser au démarrage la fenêtre excel puis de retenir dans des variables les limites de cette fenêtre pour les utiliser dans votre userform , et comme ça quelque soit la taille d’écran :

    le code dans thisWorkbook:

    'lors de l'ouverture du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Workbook_Open()       
     
        'maximiser la fenattre excel et calculer les dimenssions
            ThisWorkbook.Application.WindowState = xlMaximized
        'calcules des domenssion de la fenettre excel max
            VarHeight = ThisWorkbook.Application.Height
            VarTop = ThisWorkbook.Application.Top
            VarWidth = ThisWorkbook.Application.Width
            VarLeft = ThisWorkbook.Application.Left
     
    End Sub
    le code dans l'userform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim dimenssion As Boolean
     
    ' intialisation  UserForm
    Sub UserForm_Initialize()
        'etat afichege userform( Min)        
            dimenssion = True   
    End Sub

    'calcule des dimenssion de l'userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub UserForm_Activate()
    'stocke les diemenssion dans une feuille    
        Range("Height").Value = Me.Height
        Range("Top").Value = Me.Top
        Range("Width").Value = Me.Width
        Range("Left").Value = Me.Left
    End Sub
    'Bouton Max Min dans l'userform
    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
    Sub BtMaxMin_Click()
        If dimenssion = True Then
            Me.Height = VarHeight
            Me.Top = VarTop 
            Me.Width = VarWidth 
            Me.Left = VarLeft 
            dimenssion = False
        Else
            Me.Height = Range("Height").Value
            Me.Top = Range("Top").Value
            Me.Width = Range("Width").Value
            Me.Left = Range("Left").Value
            dimenssion = True
        End If
    End Sub
    ci-joint un fichier exemple
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, commence par baliser ton code

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour amro, kiki, la forum
    d'accord 100% avec KIKI, balise ton code facilite la lecture
    Pour ta requête et si j'ai compris, tu cherche à afficher un USF plein écran? si c'est le cas il faut commencer par un bouton de commande qui te permet de quitter si non tu reste bloquer avec un USF plein écran
    donc ce bouton de commande tu insère un code qui te permet d'enregistrer et quitter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton2_Click()
    saveAndClose
    End Sub
    en suite et dans l’événement USERFORM ACTIVATE tu ajoute ce-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Activate()
    With Me
    .StartUpPosition = 3
    .Width = Application.Width
    .Height = Application.Height
    .Left = 0
    .Top = 0
    End With
    End Sub
    NB : Je suis débutant et autodidacte et grâce à ce site et ses SUPER membres je fais mes premiers pas en VBA :

    Bonne continuation
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Il n'a ni demande, ni demandeur.
    Il y a là un "apport" (d'une solution connue depuis kala kala).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour
    Il n'a ni demande, ni demandeur.
    Il y a là un "apport" (d'une solution connue depuis kala kala).
    Toujours il y a des débutants et toujours il y a des connaisseurs et des sages et modestes savants connue depuis KALA KALA
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Tu bas oublié ceci, BENNASR
    "et toujours (pour reprendre ton expression) on trouve des gens pour revenir inlassablement à des sujets déjà traités et que l'on retrouve par une simple utilisation du moteur de recherche dont dispose ce site"
    De toutes manières (bis repetita) : cette discussion n'a pas été ouverte pour demander une solution, mais ouverte (dans la section de demande ... et non celle des contributions ) pour exposer une solution maintes fois suggérée, tant ici qu'ailleurs.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 58
    Points : 56
    Points
    56
    Par défaut
    bonjour
    Merci a tous d'avoir porte attention , comme le disait BENNASR : Je suis débutant et autodidacte et grâce à ce site et ses SUPER membres je fais mes premiers pas en VBA
    désolé donc d'avoir déçu quelques un par ma solution connue depuis kala kala
    bonne continuation

Discussions similaires

  1. Tableau pour tout type ?
    Par Madon dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 24/05/2011, 08h49
  2. Install .dot en VBA pour tout les utilisateurs
    Par TSalm dans le forum VBA Word
    Réponses: 5
    Dernier message: 17/06/2008, 09h08
  3. Réponses: 1
    Dernier message: 15/11/2007, 07h04
  4. Formater une cellule en VBA pour recevoir une date
    Par *.Har(d)t dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/05/2007, 17h39
  5. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41

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