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 :

Positionner curseur sur une cellule sélectée Windows Excel VBA


Sujet :

Macros et VBA Excel

  1. #681
    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
    re autant pour moi les deux marchent

    en fait effectivement et c'est logique il faut régler le startposition a 0 si on show après les paramètres

    mais comme j'utilise l'argument "show 0" tout le temps je ne touche quasi jamais le startposition en manuel

    autant pour moi
    bref toujours est il que ce que tu a voulu démontrer c'est ce que je disais quelques posts en arrières

    si tu applique une valeur numérique et non le left d'une cells par point ou pointstoscreenpixels ca fonctionne reste quand même la petite rectif "+4" pour 2007 W 7 qui est nécessaire

    car on vois bien le curseur qui est a l'intérieur du cadre et ca tu n'y peut rien c'est le shell en l'occurrence ici "le model aero qui encadre les userforms

    mais je ne vois pas trop l'intérêt d'un test comme celui ci finalement si ce n'est que confirmer ce que j'ai dis quelques post en arrière

    je t'ai démontré A+B que pointstoscreenpixels fonctionnait très bien et que c'était bien le shell qui foutait le boxon cherche de ce coté la va si il y a une possibilité de palier a ca autrement
    et j'ai en tète une solution mais il faut que je teste avec ton startposition 0 sans le vouloir tu a peut etre mis le doigt sur une solution globale (ALL VERSIONS)
    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
      0  1

  2. #682
    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
    et oui sans le vouloir tu m'a donné une idée
    et surtout comme il est étonnant que je soit obligé d'utilisé le ppx reel et non celui octroyé pour l'affichage
    en tout cas l'écart correspond avec la résolution de l'ecran et les ajustements
    regarde mon idée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub version_ALLWin_Off()
        Dim ppx#, version As String, X#, Y#, SuppLeft#, Suppop#
     
        With CreateObject("WScript.Shell"): ppx = .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI") / 72: End With
            UserForm2.Show 0
        With ActiveWindow
            res = (.ActivePane.PointsToScreenPixelsX(UserForm2.Left) * 2) + (UserForm2.Width * 1.33333333333333)
        End With
    MsgBox res
    End Sub
    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
      0  1

  3. #683
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    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
    mais je ne vois pas trop l'intérêt d'un test comme celui ci
    C'est pourtant très clair !
    Si le userform est placé sans erreur à des coordonnées en points x,y (quelles qu'elles soient, qu'on les calcule ou qu'on les définisse) par rapport à l'écran :
    A/ - ou ces coordonnées correspondent très exactement à celles en points de la cellule par rapport à l'écran et le userform sera placé lui également sur la cellule
    B/ - ou ces coordonnées ne correspondent pas très exactement à celles de la cellule et le userform ne sera alors pas placé lui non plus très exactement sur la cellule

    Or, :
    1) ces coordonnées x,y sont calculées (pour l'utilisation du setcursorpos) par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     With ActiveWindow.ActivePane
            SetCursorPos .PointsToScreenPixelsX(cible.Left), .PointsToScreenPixelsY(cible.Top)
        End With
    et rien d'autre. Elles sont ici x = .PointsToScreenPixelsX(cible.Left) et y = .PointsToScreenPixelsY(cible.Top)
    2) tu m'as dit (et répété à plusieurs reprises) que le curseur était bien, lui, positionné sans faille aucune (et je t'ai dit que nous étions tombés sur des cas où non).
    Si tel est bien le cas (x et y corrects) on est dans le cas A/
    Et à ce niveau-là (et c'est ce que démontre le test) Excel n'a plus son mot à dire. Seule intervient la transposition d'unités en échelle de pixels en unités en échelle de points, totalement indépendante de Excel, elle..
    Voilà.

    Tu comprends cela ?
    EDIT : dans la foulée (tu as l'air de ne pas le savoir) et en passant, bien que rien à voir : VBA/Excel t'offre déjà seul la possibilité de connaître le dpi par défaut (ton 1.333..). Nul besoin d'"aller le chercher ailleurs

    EDIT 2 :
    en fait effectivement et c'est logique il faut régler le startposition a 0 si on show après les paramètres
    Non ! C'est exactement le contraire ! Nécessaire si l'on utilise le Show AVANT !

    Relis aussi ce que j'ai dit plus haut (le "tressautement" si Show avant, que l'on évite avec un Show après)
    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.
      0  1

  4. #684
    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 unparia
    bon je commence par la bas en ce qui concerne ta réponse

    pour mes réponses:

    1. chez moi le tressautement y est certainement mais c'est tellement rapide que je vois rien
    2. le curseur est bien posé avec pointstoscreenpixels(avec ou sans aero) je n'ai aucune faille
    3. le userform lui avec les même cotes est bien posé (sans aero )avec aero il y a ajustement



    contrairement a ce que tu crois ce n'est pas un problème de conversion pixel to point to du moins pas comme tu l'entends

    en fait pointstoscreenpixels donne le vrai points la conversion ne peut pas être faussé sauf que le shell élargi le userform des que l'exécution show est lancé

    tandis que sans aero je suis bon partout sans ajustement sur 2007 2010 2013

    le seul problème viens de la tu peux tourner cela dans tout les sens tu y reviendra

    que le curseur ne subisse pas cette déformation par aéro n'est pas une surprise le curseur n'est pas de la classe des fenêtre

    je peux pas être plus clair que ca
    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
      0  1

  5. #685
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    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
    tandis que sans aero je suis bon partout sans ajustement sur 2007 2010 2013

    le seul problème viens de la tu peux tourner cela dans tout les sens tu y reviendra
    ce qui veut très nettement dire que aero ne considère pas que le top du userform qu'il traite est d'ordonnée égale à sa bordure supérieure. ****
    Et nous n'avons pas demandé que la bordure supérieure de l'userform coincide avec celle de la cellule, hein ...
    ****
    Bien que sous xp et donc sans aero, je suis à même, si tu le souhaites, de te concocter un petit code qui te prouvera que dans l'esprit de aero, le top est ailleurs qu'en bordure supérieure.
    Voilà tout et c'est là un problème aero.
    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.
      0  1

  6. #686
    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
    j'ai peut être trouvé un moyen de faire sauter justement le switcth version a cause du shell

    en prenant le problème a l'envers mais il faut tester sur différentes versions

    prendre le problème a l'envers ?:

    en fait j'affiche le userform au centre et!!!! avec pointstoscreenpixelsx je récupère sa positon left X2 a laquelle j'ajoute son width en enlevant un coté du cadre puis soustrait la résolution écran et met tout ca en point
    regarde bien le résultat
    ADAPTE RESOLUTIONH A LA RESOLUTION DE TON ECRAN BIEN SUR
    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
    Sub test()
        Set objWSH = CreateObject("WScript.Shell")
        pixToPoints = objWSH.RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI") / 72
        resolutionH = 1920
        UserForm2.Show 0
        UserForm2.startupposition = 2    'centerscreen
        With ActiveWindow.ActivePane
            r = (UserForm2.Width - UserForm2.InsideWidth) / 2    ' epaisseur cadre avec aero a supprimer
            vraicadreuserform = 1 ' le vrai cadre userform fait 1 point de large
            res = ((.PointsToScreenPixelsX(UserForm2.Left) * 2 + (UserForm2.Width - r) * pixToPoints) - resolutionH) / pixToPoints
            UserForm2.Left = res / pixToPoints + vraicadreuserform
            MsgBox "res = " & res & vbCrLf & " pointstoscreenpixelsx(0) = " & .PointsToScreenPixelsX(0) & vbCrLf & "ecart du au shell = " & res - .PointsToScreenPixelsX(0) & vbCrLf & "ferme le message et il va se positionner sur D3"
        UserForm2.Left = .PointsToScreenPixelsX([D3].Left) / pixToPoints + res - .PointsToScreenPixelsX(0)
        UserForm2.Top = .PointsToScreenPixelsY([D3].Top) / pixToPoints + res - .PointsToScreenPixelsX(0)
     
        End With
    End Sub
    Nom : demo8.gif
Affichages : 280
Taille : 254,6 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
      0  1

  7. #687
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Points : 790
    Points
    790
    Par défaut
    RE
    le premier coup la forme va sur le deuxième écran et après il disparaît
    Nom : Capture.PNG
Affichages : 265
Taille : 8,7 Ko
    Merci d'exprimer votre message le plus clairement possible pour qu'on puisse vous aider

    n'oubliez pas de cliquer sur et si cela vous a aidé pensez à voter
      0  0

  8. #688
    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
    Bien que sous xp et donc sans aero, je suis à même, si tu le souhaites, de te concocter un petit code qui te prouvera que dans l'esprit de aero, le top est ailleurs qu'en bordure supérieure.
    Voilà tout et c'est là un problème aero.
    ca fait un moment que je te le dis ,c'est pour ca que j'ai arrêter de chercher des noises a pointstoscreenpixels et sui parti sur un switch version même si c'est pas élégant

    edit
    le top est ailleurs qu'en bordure supérieure
    oui et non en fait
    comme nous avec W7 on a le thème aero et basic toi tu a le theme Xp et celui tout moche si je me rappelle bien ressemblant au Windows NT TU A DONC LE MEME PROBLEME QUE NOUS
    et tout ca c'est le shell qui le gère toi avec uitheme ou uXtheme nous uitheme
    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
      0  1

  9. #689
    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
    NICOLAS JE N'AI PAS PREVU DE GESTION DOUBLE ECRAN c'est déjà assez compliqué avec un
    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
      0  1

  10. #690
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Points : 790
    Points
    790
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    NICOLAS JE N'AI PAS PREVU DE GESTION DOUBLE ECRAN c'est déjà assez compliqué avec un
    C'est pas normal ça, , je croyais que tu travaillais sur 2 écrans, pas grave j'essayerai ce soir.
    Merci d'exprimer votre message le plus clairement possible pour qu'on puisse vous aider

    n'oubliez pas de cliquer sur et si cela vous a aidé pensez à voter
      0  0

  11. #691
    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
    non car la n'est pas notre seul problème
    il faudra gérer aussi a l'avenir avec les volets figés qui faussent la donne aussi
    on a pas fini crois moi

    d'autant plus que si je regarde le resultat dans ton msgbox je crois deviner que tu est en "extension d'écran" sur le 2 eme et non en mode double écran ta taskbar est sur les deux écranss
    c'est a dire que tu utilise "étendre le bureau sur l'ecran 2"

    ce qui n'est pas la même chose que le double affichage (2 écrans distincts) avec le bureau sur le 1 ou 2 et juste le fond d'écran sur l'autre
    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
      0  1

  12. #692
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Points : 790
    Points
    790
    Par défaut
    Je me doute bien, mais je débrancherai le deuxième ce soir ce sera plus facile pour moi aussi,
    ça évitera les conflits de coordonnées X/Y
    Merci d'exprimer votre message le plus clairement possible pour qu'on puisse vous aider

    n'oubliez pas de cliquer sur et si cela vous a aidé pensez à voter
      0  0

  13. #693
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Voici ce que j'obtiens avec ton code Patrick:

    Nom : test1.PNG
Affichages : 276
Taille : 27,4 Ko
    Nom : test2.PNG
Affichages : 250
Taille : 26,8 Ko

    J'ai un écran en résolution 1366x768 pour info.
      0  1

  14. #694
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    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
    M'enfin, quoi !....
    on remet les pieds sur terre, de temps à autre ?
    Aero est un style qui modifie un affichage dans tous les sens. C'est là son "métier" : celui d'enrober de bébelles diverses.
    Nous allons parler d'un dessert : une poire enrobée de chocolat.
    Ce n'est pas la couche de chocolat ajoutée qui va modifier de quelque manière que ce soit ni le sommet, ni les dimensions de la poire elle-même.
    Vouloir à la fois de la philosophie "aéro" (de l'enrobage) et ignorer cette philosophie, en prenant en considération non plus la poire, mais le contour ajouté (son enrobage) est totalement antinomique avec la philosophie même de aero !
    Faut là savoir ce que l'on veut, hein (il y avait à ce sujet une chanson ...) : enrobage (et on l'ajoute à tout et on considère alors qu'il "enrobe" également ce sur quoi on place l'objet enrobé (et dans ce cas, l'enrobage y compris... et on ne parle plus alors de "coinidence des bordures")
    Que de temps perdu pour finalement constater que l'on reste dans la philosophie même de aero !

    A moins que la question originelle ne soit maintenant modifiée en : comment utiliser aero en ignorant les effets induits et volontaires de aero !!!!!


    Adieu ...

    35 pages !!!!!!

    EDIT : et le userform serait placé N'IMPORTE OU AILLEURS que sur une cellule, Aero lui appliquerait les mêmes bébelles (enrobage) avec les mêmes débordements. (et pour cause : c'est précisément son "métier").
    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.
      0  1

  15. #695
    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
    Ok oudouner cette voie pour le rattrapage n'est pas bonne

    unparia c'est bien le thème le responsable du petit écart pour toi c'est le theme XP pour moi c'est aéro pour W 10 je crois que ca s'appelle aussi aéro même si il ne ressemble en rien a celui de W 7
    je parle pas du grossissement poinstoscreenpixels ne subit pas l'erreur c'est bien ce petit ajout ou diminution a la fin qui n'a rien a voir avec excel

    et tout ca c'est géré par le shell
    tournez ca dans tout les sens vous en reviendrez toujours a ca

    tans que l'on se décidera pas a travailler dans ce sens en équipe au niveau des recherches et tests on avancera pas
    pour le moment c'est le switch
    c'est cette partie qu'il faut chercher des fonctions ou constantes de Windows accessibles par VBA pour transformer ces deux lignes de code par un code plus élégant
    c'est a votre bon vouloir

    c'est peu être la ou le challenge s'arrête (api oblige)
    ce simple model fonctionne tres bien sur 2007,2010,2013 quand le theme aéro est désactivéet mis en theme basic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub testxxx()
        With ActiveWindow
            'DPI=
            'With CreateObject("WScript.Shell"): DPI= .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI") : End With
            'ou
            With CreateObject("WScript.Shell"): DPI = .RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI"): End With
            X = (.ActivePane.PointsToScreenPixelsX([D3].Left)) / (DPI / 72)
            Y = (.ActivePane.PointsToScreenPixelsY([D3].Top)) / (DPI / 72)
            With UserForm2: .Show 0: .Left = X: .Top = Y: End With
        End With
    End Sub
    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
      0  1

  16. #696
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    @Patrick
    re
    si je prends par exemple les 2.4000000000006 qui sont en trop dans le xml et que je le multiplie par pttopx par la base de registre pour etre sur
    j'obtient je te le donne dans le mille
    ceci:
    4,00000000081
    avec excel 2010
    Application en 0 x 0
    form en 23 x 137 -> espace de travail -> pane -> form Top : 137
    Application en 23 x 138 -> sur form -> PointsToScreenPixelsY: 551
    551 / 137 = 4,02189781

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM
      0  1

  17. #697
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    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
    tans que l'on se décidera pas a travailler dans ce sens en équipe au niveau des recherches et tests on avancera pas
    C'est un dialogue de sourds, VRAIMENT !
    "travailler dans ce sens" pour faire quoi ? pour amener le bord supérieur du "chocolat" ajouté par aero à celui de la cellule ? Ce n'est dès lors plus la philosophie de aero !
    Et tu fais quoi du chocolat ajouté au bord inférieur réel (pas celui du chocolat) de l'userform ? Tu diminues la hauteur intérieure de l'userform pour qu'il cesse d'empiéter outre-mesure et de manière non voulue sur les cellules au-dessous ? Et si tu la diminues et que des contrôles sont placés tout en bas du userform, tu les amputes dans la foulée ?
    Tu veux aero ? tu l'as avec ses débordements nécessaires.
    Tu ne veux pas de tels débordements ? tu n'utilises alors pas aero.
    Voilà voilà .
    Au fait : la "chanson" à laquelle je faisais plus haut allusion a pour titre "tu veux ou tu veux pas" et pour paroles dans le refrain : "Tu veux c'est bien, Si tu veux pas tant pis".
    Mets donc aero comme objet de cette chanson.
    Je ne veux pas continuer sur de telles "bases"
    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.
      0  1

  18. #698
    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
    Et tu fais quoi du chocolat ajouté au bord inférieur réel (pas celui du chocolat) de l'userform ? Tu diminues la hauteur intérieure de l'userform pour qu'il cesse d'empiéter outre-mesure et de manière non voulue sur les cellules au-dessous ? Et si tu la diminues et que des contrôles sont placés tout en bas du userform, tu les amputes dans la foulée ?
    et qu'est que tu parle de bord inferieur on te parle de top/left c'est tout


    ma fois le but est de mettre l'usf sur une cellule avec les contraintes que ce soit pour n'importe quel Windows
    tu fait quoi quand tu va la pèche tu enlève les cailloux du fond comme ca tu accroche pas , tu arrête le vent pour éviter d'avoir la vagues tu met un panneau interdit pour être sur d'être le seul dans ce coin
    il faut faire avec c'est tout !!!!

    et trouver des solutions représentant le plus de configuration possible
    et entre parenthezes en mode theme basic je n'ai plus que la mémoire graphique carte soit 2 giga ce qui provoque des affichage saccadés et des spectres l'ors du mouvements de l'userform tandis qu'avec aero j'ai la mémoire carte 2 giga + la mémoire dédiée soit 8 giga sur mes 32 de ram

    @jmp oui c'est ca ajoute ca a la place du +4 mais ca n'a l'air de fonctionner que pour W7
    je ne sais plus sur quoi tu tourne
    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
      0  1

  19. #699
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    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
    ma fois le but est de mettre l'usf sur une cellule
    Et il y est mis, LUI. l'Usf est une chose, l'image qu'en donne aero en est une autre.
    Et une autre fois : en le déplaçant un peu (indûment et en non respect de la philosophie aero), tu empiètes alors indûment (et plus gravement encore que aero ne le fait déjà) sur ce qui se trouve en bas de l'userform.
    tu vas où et comment, ainsi, sinon du mal "aero" en pire encore ?
    Ton "remède" est pire que le mal
    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.
      0  1

  20. #700
    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
    Citation Envoyé par unparia Voir le message
    Et il y est mis, LUI. l'Usf est une chose, l'image qu'en donne aero en est une autre.
    Et une autre fois : en le déplaçant un peu (indûment et en non respect de la philosophie aero), tu empiètes alors indûment (et plus gravement encore que aero ne le fait déjà) sur ce qui se trouve en bas de l'userform.
    tu vas où et comment, ainsi, sinon du mal "aero" en pire encore ?
    Ton "remède" est pire que le mal
    qu'est ca que tu raconte!!!???? je modifie pas l'usf je le déplace de quelque points !!!!!! c'est tout!!
    il n'y a pas d'autre moyen
    ce qui m'intéresse moi c'est de trouver ou et comment récupérer cette différence provoqué par aero ou autre par ce que entre parenthèses même Xp grossi ses cadres de userform

    en quoi déplacer un userform de bas en haut et gauche a droite et inversement aurait une incidence sur la taille ????????????? c'est du n'importe quoi
    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
      0  1

Discussions similaires

  1. se positionner sur une cellule
    Par titemireille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/01/2008, 19h07
  2. cliquer sur une cellule qui m'ouvre un autre fichier excel
    Par booskap dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/08/2007, 11h08
  3. [VBA-Excel] DblClick sur une cellule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/01/2007, 10h51
  4. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08
  5. [Vba-Excel] Récupérer événement sur une cellule
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2006, 20h27

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