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

Contribuez Discussion :

Insertion de menus dynamiques dans un formulaire Excel


Sujet :

Contribuez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Robot Forum
    Avatar de forum
    Inscrit en
    Novembre 1999
    Messages
    3 029
    Détails du profil
    Informations forums :
    Inscription : Novembre 1999
    Messages : 3 029
    Par défaut Insertion de menus dynamiques dans un formulaire Excel
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Insertion de menus dynamiques dans un formulaire Excel

    En me basant sur les travaux de Michel Pierron trouvés dans un classeur sur https://www.developpez.net/forums/d7...ubar-userform/, j'ai développé des classes d'objets permettant de bénéficier des fonctionnalités suivantes :



    - Aucune limite sur l'insertion d'éléments dans les menus et sous menus

    - Aucune limite dans la profondeur de l'arborescence des sous menus d'un menu

    - Aucune contrainte de nom des contrôles

    - Possibilité d'assigner n'importe quelle procédure à n'importe quelle commande

    - Possibilité de réorganiser dynamiquement tout ou partie des menus.



    Dans le classeur joint, voici ce qu'il se passe lorsque l'on clique sur le bouton [Modifier les menus]



    On s'amuse à réagencer les menus de la manière suivante:

    - Le menu Application récupère le menu Aide

    - Le menu Commandes correspond au menu Fichiers avant changement

    - Toutes les icônes du menu Fichiers changent

    - La procédure associée à ce menu devient Aurevoir

    - Le sous menu Articles contient tous les autres sous menus



    Qu'en pensez-vous ?

  2. #2
    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
    bonjour forum
    intéressant cette méthode
    j'avais proposé quelque chose dans le genre
    https://www.developpez.net/forums/d1...lbar-userform/
    j'ai pas tout regardé dans tes modules je vais regarder cela je comptais justement accroitre l'arborescence en terme de descendant (msocontrolpopup)
    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

  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 re
    re
    bonjour forum
    il y a un soucis de placement du menu lors de son affichage
    Nom : demo2.gif
Affichages : 1810
Taille : 126,0 Ko
    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 éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    Bonjour,
    Comment utilise-t-on ce genre de téléchargement ? (Celui de forum)
    Nom : droledefich.jpg
Affichages : 1550
Taille : 16,5 Ko
    Merci.

  5. #5
    Membre averti

    Homme Profil pro
    Ingénieur études et développements
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur études et développements

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut Comment récupérer le classeur
    Citation Envoyé par galopin01 Voir le message
    Bonjour,
    Comment utilise-t-on ce genre de téléchargement ? (Celui de forum)
    Nom : droledefich.jpg
Affichages : 1550
Taille : 16,5 Ko
    Merci.
    Pour une raison qui m'échappe, le classeur télétransmis perd son nom et son extension.

    Pour le récupérer, il faut suivre la procédure suivante :

    - Télécharger "Menu"
    - Renommer ce fichier en y ajoutant l'extension .xlsm

  6. #6
    Membre averti

    Homme Profil pro
    Ingénieur études et développements
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur études et développements

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    bonjour forum
    il y a un soucis de placement du menu lors de son affichage
    Nom : demo2.gif
Affichages : 1810
Taille : 126,0 Ko
    Je n'ai pas réussi à reproduire ton bug.

    Pourrais-tu, s'il te plaît, décrire les actions que tu effectues et me communiquer la résolution de ton écran pour que je tente de le reproduire ?

  7. #7
    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
    re
    bonjour
    ben j'ouvre simplement son fichier et ouvre l'UserForm et test c'est tout
    ma résolution 1920X1080(écran 82 cm)

    en fait l'erreur vien de la "4/3) " qui correspond a 1.333333333333333 pour un dpi de de 96 (dpi 100% classique) en fait il faudrait que ce calcul se fasse avec le dpi du pc de l'utilisateur dynamiquement
    dans ma contrib je montre comment je fait sans api

    le model de forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CtrlLabel_Click()
    Dim OffsetX As Double, OffsetY As Double, CoordX As Double, CoordY As Double
    With Form
        OffsetX = (.Width - .InsideWidth) / 2
        OffsetY = .Height - .InsideHeight - OffsetX + CtrlLabel.Height + CtrlLabel.Top
        CoordX = (.Left + OffsetX + CtrlLabel.Left) * 4 / 3
        CoordY = (.Top + OffsetY) * 4 / 3
    End With
    With CtrlLabel
        .SpecialEffect = fmSpecialEffectRaised
        CommandBars(Id).ShowPopup CoordX, CoordY
    End With
    End Sub
    et voila mon model :je fait sans API dans ma contrib
    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
    Private Sub CtrlLabel_Click()
        Dim OffsetX As Double, OffsetY As Double, CoordX As Double, CoordY As Double, PPX As Double
        With ActiveWindow.ActivePane
            PPX = (.PointsToScreenPixelsX(Cells.Width) - .PointsToScreenPixelsX(0)) / Cells.Width
        End With
        With Form
            OffsetX = (.Width - .InsideWidth) / 2
            OffsetY = .Height - .InsideHeight - OffsetX + CtrlLabel.Height + CtrlLabel.Top
            CoordX = (.Left + OffsetX + CtrlLabel.Left) * PPX
            CoordY = (.Top + OffsetY) * PPX
        End With
        With CtrlLabel
            .SpecialEffect = fmSpecialEffectRaised
            CommandBars(Id).ShowPopup CoordX, CoordY
        End With
    End Sub
    demo avec mon astuce sans API

    Nom : demo2.gif
Affichages : 1583
Taille : 114,4 Ko
    il y a aussi le registre pour capter le coeff pointToPixel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PtoPX= CreateObject("WScript.Shell").RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI") / 72
    sinon tu a l' api gdi"GetDeviceCaps"
    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

  8. #8
    Membre averti

    Homme Profil pro
    Ingénieur études et développements
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur études et développements

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut Débug effectué
    Bonjour patricktoulon

    En me basant sur ta méthode de détermination des coordonnées par API présente dans https://www.developpez.net/forums/d1...lbar-userform/, j'ai consolidé ta méthode dans la fonction RenvoieCoords du module API.

    Le classeur à télécharger tient compte de ces changements.

    En te remerciant pour tes travaux et pour avoir détecter le bug,
    je te souhaite une bonne journée.

  9. #9
    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
    re
    c'est pas tout a fait bon encore
    il faut absolument que dans tes calculs il n'y ai pas d'operateur en dur du genre (-3)
    il faut que tu sache aussi que getsystemmetric donne les même valeurs dans tout les Windows alors que c'est faux
    il faut aussi prendre en considération pour W7 le theme aero qui modifie encore la chose ainsi que pour W10 qui n'a pas aero mais autre chose
    donc
    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
    Public Function RenvoieCoordEcran(Ctrl As Control, Optional PrendEnCpteHauteur As Boolean = True) As Double()
    'Cette fonction renvoie les coordonnées du pixel située en haut et à gauche du contrôle Ctrl.
    'Elle renvoie un tableau contenant en premier indice l'abscisse (x), en deuxième l'ordonnée (y), et en troisième l'abscisse correspondant à l'extrémité droite du contrôle.
    'Si PrendEnCpteHauteur est Vrai, alors l'ordonnée sera celle du coin inférieur gauche du contrôle.
    Dim DimCtrl As RECT, XX As Long, YY As Long, ZZ As Long, YiN As Long, HdC As Long, EpS As Long, lpppX As Long, lpppy As Long
    Dim Coords(2) As Double
    ReDim RenvoieCoordEcran(1)
    HdC = GetDC(0): lpppX = GetDeviceCaps(HdC, LOGPIXELSX): lpppy = GetDeviceCaps(HdC, LOGPIXELSY)
    GetWindowRect GetActiveWindow, DimCtrl    ' coordonnées rectangle de l'userform
    With Ctrl
        XX = .Left * lpppX / 72 'Position Gauche du contrôle cliqué en pixel
        YY = (.Top + IIf(PrendEnCpteHauteur, .Height, 0)) * lpppy / 72 'Position Haut du contrôle cliqué en pixel
        ZZ = (.Left + .Width) * lpppX / 72 'Position du bord droit du contrôle
     
        'les api c'est bien sauf que pour W7 il faut prendre en compte l'aero qui modifie encore la chose
        'en effet selon les versions de W (xp,7,8,10)getsystemmetric donne pareil sauf qu'en réalité ca ne l'ai pas
     
        'YiN = (.Parent.Height - .Parent.InsideHeight - 3) * lpppy / 72  'Epaisseur de la caption du userform en pixel 3 c'est arbitraire
         'EpS = GetSystemMetrics(5) 'Epaisseur des bordures de l' userform en pixel
     
         YiN = (.Parent.Height - .Parent.InsideHeight - ((.Parent.Width - .Parent.InsideWidth))) * lpppy / 72 'Epaisseur de la caption du userform en pixel
         EpS = (.Parent.Width - .Parent.InsideWidth)  'Epaisseur des bordures de l' userform en pixel'on ne divise pas par 2 la logique pourtant le voudrait!!!
       'eps donnera pas la meme chose selon le windows(xp,7,8,10)
        Coords(0) = DimCtrl.Left + EpS + XX
        Coords(1) = DimCtrl.Top + YiN + EpS + YY
        Coords(2) = DimCtrl.Left + EpS + ZZ
    End With
    RenvoieCoordEcran = Coords
    End Function
    fait le test en bloquant mes lignes et en débloquant les tiennes et vis et versa et regarde bien les positions left et top des menus
    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

  10. #10
    Membre averti

    Homme Profil pro
    Ingénieur études et développements
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur études et développements

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut
    Je vais me pencher sur ton dernier message, mais je tiens à précisez que les lignes suivantes proviennent de ton propre code
    (https://www.developpez.net/forums/d1...lbar-userform/)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        If mode = "usf" Then
            GetWindowRect GetActiveWindow, r    ' coordonnées rectangle de l'userform
            XX = bt.Left * lpppX / 72    'position left du label cliqué en pixel
            YY = (bt.Top + bt.Height) * lpppy / 72    ' position top du label cliqué en pixel
            YiN = (bt.Parent.Height - bt.Parent.InsideHeight - 3) * lpppy / 72    ' epaisseur de la caption du userform en pixel
            'YiN = GetSystemMetrics(15) ' autre methode epaisseur de la caption du userform en pixel mais moins precise
            EpS = GetSystemMetrics(5)     ' epaisseur des bordures de l' userform en pixel
            Barre.ShowPopup r.Left + EpS + XX, r.Top + YiN + EpS + YY    ' affichage de la popup au cordonnéees calculées
        Else
            Barre.ShowPopup
        End If

  11. #11
    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
    re
    oui j' ai reconnu mes anciens codes

    mais tu devrais regarder dans la contrib la version sans api il me semble pas que j'utilise des nombres en dur si c'est le cas c'est que je n'ai pas mis ma contrib a jours ,je corrigerais
    c'est vrai que très souvent quand je met a jour mes modules, je ne le fait pas tout le temps dans les contrib 3 coup de fouet !!!! pour moi
    en ce qui me concerne, les apis dans cet exercice(popup in UserForm) sont superflues on a tout ce dont on a besoins sans ce qui me dégage de multiple déclaration d'api 32/64 etc....
    ca m'a donné envie de le refaire avec une arborescence plus grande pour ne pas dire illimité (en terme d'etage dans l'arborescence) j'ai tout ce qu'il faut je viens de créer la fonction qui me manquait
    je ferait un model version 2019 (ET SANS API !!!!!)
    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

  12. #12
    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
    bonjour 8Tnerolf8
    voila un exemple pour positionner ton popup au niveau de ton control

    dans la sub pour afficher le popup
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pos = position(label, Usf)
            CommandBars("MenuUSF").ShowPopup pos(1), pos(2)

    la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function position(label As Object, Usf as Object )
        Dim PPX#, HcapTion#, LcaDre#, tbl(1 To 2)
        With ActiveWindow.ActivePane: PPX = (.PointsToScreenPixelsX(Cells.Width) - .PointsToScreenPixelsX(0)) / Cells.Width: End With
        HcapTion# = Usf.Height - Usf.InsideHeight
        LcaDre = Usf.Width - Usf.InsideWidth
        tbl(1) = (Usf.Left + LcaDre + label.Left) * PPX
        tbl(2) = (Usf.Top + HcapTion + label.Top + label.Height - LcaDre) * PPX
        position = tbl
    End Function
    voila aucune api il suffit de lui injecter le control et l'UserForm
    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

  13. #13
    Membre averti

    Homme Profil pro
    Ingénieur études et développements
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur études et développements

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut Dernière version et pourquoi j'utilise les API
    Bonjour patricktoulon

    Si je souhaite privilégier les API, c'est dans l'optique de pouvoir potentiellement transposer cette fonctionnalité dans d'autres applications.

    Or, si l'objet ActiveWindow.ActivePane existe bien pour Excel et Word, il n'en est rien concernant Access.

    Je te remercie pour ta proposition, mais j'ai décidé de gérer différemment le problème du placement du menu, testé avec succès en Windows 7 et 10, comme suit :

    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
    Public Function RenvoieCoordEcran(Ctrl As Control, Optional PrendEnCpteHauteur As Boolean = True) As Double()
    'Cette fonction renvoie les coordonnées du pixel située en haut et à gauche du contrôle Ctrl.
    'Elle renvoie un tableau contenant en premier indice l'abscisse (x), en deuxième l'ordonnée (y), et en troisième l'abscisse correspondant à l'extrémité droite du contrôle.
    'Si PrendEnCpteHauteur est Vrai, alors l'ordonnée sera celle du coin inférieur gauche du contrôle.
    Dim DimCtrl As RECT, XX As Long, YY As Long, ZZ As Long, YiN As Long, HdC As Long, EpS As Long, lpppX As Long, lpppy As Long
    Dim Coords(2) As Double, TareX As Single, TareY As Single
     
    Static VersionWindows As String
     
    If VersionWindows = vbNullString Then VersionWindows = GetWindowsVersion
     
    ReDim RenvoieCoordEcran(1)
     
    HdC = GetDC(0): lpppX = GetDeviceCaps(HdC, LOGPIXELSX): lpppy = GetDeviceCaps(HdC, LOGPIXELSY)
     
    GetWindowRect GetActiveWindow, DimCtrl    ' coordonnées rectangle de l'userform
     
    With Ctrl
        XX = .Left * lpppX / 72 'Position Gauche du contrôle cliqué en pixel
        YY = (.Top + IIf(PrendEnCpteHauteur, .Height, 0)) * lpppy / 72 'Position Haut du contrôle cliqué en pixel
        ZZ = (.Left + .Width) * lpppX / 72 'Position du bord droit du contrôle
     
        YiN = (.Parent.Height - .Parent.InsideHeight) * lpppy / 72  'Epaisseur de la caption du userform en pixel
        EpS = GetSystemMetrics(5) 'Epaisseur des bordures de l' userform en pixel
     
        'On détermine les tares de placements en fonction du Windows installé
        Select Case VersionWindows
            Case "Windows 7/Server 2008 R2"
                TareX = 2.4: TareY = -3.9
            Case "Windows 10"
                TareX = 5.6: TareY = -8.8
        End Select
     
        Coords(0) = DimCtrl.Left + EpS + XX + TareX
        Coords(1) = DimCtrl.Top + YiN + EpS + YY + TareY
        Coords(2) = DimCtrl.Left + EpS + ZZ + TareX
    End With
     
    RenvoieCoordEcran = Coords
    End Function
    Dans la fonction RenvoieCoordEcran, j'ai implémenté deux variables, TareX et TareY

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'On détermine les tares de placements en fonction du Windows installé
        Select Case VersionWindows
            Case "Windows 7/Server 2008 R2"
                TareX = 2.4: TareY = -3.9
            Case "Windows 10"
                TareX = 5.6: TareY = -8.8
        End Select
    C'est ici que l'on peut effectuer les réglages en fonction de la version de Windows.

    Pour d'autre versions non répertoriées, il faut suivre la procédure suivante dans le module API :

    - Mettre éventuellement à jour la fonction GetWindowsVersion si la version de Windows n'est pas répertoriée
    - Mettre à jour le Select Case VersionWindows de la fonction RenvoieCoordEcran

  14. #14
    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
    ok comme tu veux
    juste par curiosité
    que donne ceci dans acces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PtoPX= CreateObject("WScript.Shell").RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI") / 72
    msgbox PtoPX
    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. [XL-2016] Utilisation des menus dynamique dans le ruban excel
    Par Rustabraga dans le forum Excel
    Réponses: 6
    Dernier message: 16/07/2018, 17h44
  2. [MySQL] Liste dynamique dans un formulaire
    Par Odulo dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/01/2007, 16h11
  3. Réponses: 4
    Dernier message: 23/04/2006, 22h27
  4. Création de champ dynamique dans un formulaire
    Par alex75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/04/2006, 17h00
  5. Insertion bouton d'option dans un formulaire
    Par Le Rebel dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2006, 10h36

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