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 :

forcer emplacement userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut forcer emplacement userform
    Bonjour,

    J 'utilise 2 écrans en mode extension et je souhaite afficher un userform aligner sur la partie gauche (ecran droite) du classeur 2cm en dessous de la barre de formule. Actuellement l'userform s'affiche sur l'écran de gauche et le fichier excel se trouve sur celui de droite.

    Comment fait-on pour verrouiller l'userform à gauche du fichier si ce dernier se trouve sur écran de gauche ou écran de droite ?

    Où est-ce qu'il faut inscrire le code vba ?

    En vous remerciant

    Stéphanie

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Je ne dispose pas de deux écrans, aussi je ne peux pas t'aider pour leur gestion. D'un autre côté, VBA ne les gère pas non plus, à ma connaissance. Tu peux trouver comment placer le userform sur l'écran ici :

    http://silkyroad.developpez.com/VBA/UserForm/#LIII-D

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut heu...!!!
    bonjour

    il y a une solution tres simple

    ton écran principal a une dimension en largeur bien précise que tu peut déterminer avec l'api getsystemmetric

    dans les contributions tu a une de mes vielles contributions dans la quelle tu a quelques exemple


    ensuite si ton écran mesure par exemple "1024" et que ton userform mesure 300 et bien c'est tout simple tu fais l'addition
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    userform1.show 0
    userform1.left=1304+15  '1304 ou la variable obtenu avec getsystemmetric
    tu va te retrouver avec le userform dans l'autre écran a gauche

    un truc bien important cela dit c'est de bien déterminé le quel ecran est a gauche et le quel est a droite
    tu peut regler ce problème dans le clic droit sur l'écran et -->résolution
    avec la souris tu place les écran a ton gré
    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

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Bonsoir,

    Merci à Patricktoulon et Daniel.C pour vos réponses, je vais essayer.

    Stéphanie

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    bonjour,

    ton écran principal a une dimension en largeur bien précise que tu peut déterminer avec l'api getsystemmetric
    en faisant un clic droit sur ton écran pour cliquer sur résolution, tu peux t'en tirer aussi

    Sinon, en partant de la base :

    Dans le fenêtre propriété de ton Userform, tu en as une qui se nomme : StartUpPosition, elle peut prendre 4 valeurs qui sont explicitées dans l'aide VBA, en la mettant sur 0-Manual et en réglant les propriétés Top et Left, tu dois obtenir ce que tu veux

    cordialement,

    Didiier

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir

    allez une macro toute simple générique

    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
     
    Declare Function GetSystemMetrics% Lib "user32" (ByVal nIndex%)
     
    Sub userform_sur_l_autre_ecran()
     
    'ici on determine la resolution en pixel de ton ecran principal quelqu'il soit
    largeur = GetSystemMetrics%(0) ' te donne la largeur
    hauteur = GetSystemMetrics%(1) ' te donne la hauteur
     
    'on affiche le userform
    userform1.Show 0
     
    'si dans la resolution ton ecran secondaire est a droite de l'autre
    'on le replace instantanément en haut a gauche de l'ecran 2
    userform1.Left = largeur + 15
    userform1.Top = 10
     
    'si dans la resolution ton ecran secondaire est a gauche de l'autre
    'on le replace instantanément en haut a droite de l'ecran 2
     
    userform1.Left = -(15+userform1.width)
    userform1.Top = 10
     
    'ainsi meme si tu te sert de ton fichier sur plusieurs ecran
    'tu n 'a pas besoins de modifier ta macro
     
    End Sub
    voili voilou

    au plaisir
    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: 2
    Dernier message: 20/01/2012, 09h58
  2. Réponses: 4
    Dernier message: 24/05/2009, 16h24
  3. VB EXCEL USERFORM: demander l'emplacement d'un fichier
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/01/2006, 21h20
  4. Forcer l'affichage des dizaines...
    Par pataluc dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2002, 19h38

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