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 :

expression utiliser pour demander la resolution de l'ecran [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut expression utiliser pour demander la resolution de l'ecran
    bonjour a tous .et oui je reviens apres quelque temps because beaucoup de travail
    alors voila je continu d'ameliorer mon petit devis facturier et pour cela j'ai besoin d'un petit coup de main
    mon probleme est le suivant:
    je travail sur 3 ordinateurs
    le 1 er 16//9 en 19 pouce

    le2 eme en 17 pouce 1024*768

    le 3 eme le tout dernier mon pc portable en 15 .4 pouce

    vous imaginez facilement que mes userforms concu avec le 1 er me pose probleme sur les 2 autres ordis alors j'e voudrai faire un userform suplementaire qui me poserai la question sur quel ordi je travail

    et pour cela dans cet userform je metrais un text box qui m'afficherais la resolution actuel de l'ecran sur le quel je travaille a partir de la je pense que j'arriverais a me debrouiller il me faut juste l'expression qui designe la resolution de l'ecran
    si quelqu'un a la solution sa serait sympa de me la donner

    merci d'avance a tous

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    VBA ne connaît malheureusement pas l'objet Screen (que connaît VB6).
    Qu'à cela ne tienne... ===>> l'utilisation de fonctions de l'Api de Windows (plusieurs possibilités) te permet d'obtenir ces renseignements...
    Celle-ci, par exemple et entre autres manières :
    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
    40
    41
    42
    43
     
    Option Explicit
     
    Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
     
    Const ENUM_CURRENT_SETTINGS As Long = -1&
    Const CCDEVICENAME = 32
    Const CCFORMNAME = 32
    Private Type DEVMODE
        dmDeviceName As String * CCDEVICENAME
        dmSpecVersion As Integer
        dmDriverVersion As Integer
        dmSize As Integer
        dmDriverExtra As Integer
        dmFields As Long
        dmOrientation As Integer
        dmPaperSize As Integer
        dmPaperLength As Integer
        dmPaperWidth As Integer
        dmScale As Integer
        dmCopies As Integer
        dmDefaultSource As Integer
        dmPrintQuality As Integer
        dmColor As Integer
        dmDuplex As Integer
        dmYResolution As Integer
        dmTTOption As Integer
        dmCollate As Integer
        dmFormName As String * CCFORMNAME
        dmUnusedPadding As Integer
        dmBitsPerPel As Integer
        dmPelsWidth As Long
        dmPelsHeight As Long
        dmDisplayFlags As Long
        dmDisplayFrequency As Long
    End Type
     
     
    Private Sub Command1_Click()
        Dim DevM As DEVMODE, msg As String
        Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
        MsgBox "ton écran a " & DevM.dmPelsWidth & " pixels en largeur et " & DevM.dmPelsHeight & " pixels en hauteur"
    End Sub
    EDIT :
    ceci étant dit, ta "précaution" à l'aide de la seule résolution n'est pas parfaite, dans ce sens que, selon la personnalisation du PC final, la "surface de travail" pourra différer d'un PC à l'autre, même s'ils ont la même résolution.
    La vraie surface disponible doit en effet tenir compte des ajustements de la barre des tâches (escamotable, invisible ou fixe) et de sa hauteur. Et si cette barre est affichée verticalement, kif-kif, mais en tenant alors compte de sa largeur.
    Le composant sysinfo (à voir dans ton aide en ligne) te retourne les positions et dimensions de cette "surface de travail". Les valeurs sont toutefois retournées en twips et il te faudra les convertir en pixels (en général en diviisant par 15 sur la plupart des écrans, mais pas toujours ...et il te faudrait alors, également par utilisation de fonctions de l'Api de Windows, extraire, pour les appliquer, les nombres horizointal et vertical de Twips par pixel sur la machine finale).

  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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re:
    bonjour ucfoutu
    merci encore a toi decidement je ne sais pas ce que je ferais sans toi
    je vais essayer ca et je donne des nouvelles
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] [source]2 variantes pour connaitre la resolution de l'ecran
    Par patricktoulon dans le forum Contribuez
    Réponses: 12
    Dernier message: 11/05/2017, 16h06
  2. Réponses: 7
    Dernier message: 30/05/2012, 14h36
  3. [RegEx] utiliser une expression régulière pour modifier un texte
    Par zerros dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2010, 23h06
  4. [XL-2007] l 'expression utilisée pour déterminer le nom
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/09/2009, 20h51
  5. [VBA-E2003] Syntaxe pour changer la resolution de l ecran
    Par Slumpy dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/04/2006, 16h20

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