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. #701
    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
    je modifie pas l'usf je le déplace de quelque points !!!!!! c'est tout!!
    et où ai-je dit que tu le "modifiais" ?
    Pour mémoire, donc :
    Et une autre fois : en le déplaçant un peu ...
    et :
    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
    où ai-je parlé de modification de la taille ?
    J'ai dit (et c'est du français) qu'en le déplaçant :
    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.
    A moins que tu ne m'expliques comment tu déplaces vers le bas sans "couvrir" plus bas encore.
    En quelle langue préfères-tu que je te traduises cela ??????
    Et je réitère donc :
    Ton "remède" est pire que le mal
    Allons allons ...
    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

  2. #702
    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 mais la tu cherche la petite bête !!!
    perso j'aurais dit en dessous le bottom de l'userform car en bas pour moi on est a l'intérieur

    et qu'est ce qu'on s'en fout!! de ce qui se passe en dessous

    le but et de placer un userform d'une certaine taille au top et left d'une cells


    tu le prévois ca
    il est certain que si tu veux afficher un form entre la ligne 5 et 10 tu va mettre la taille de l'userform en conséquence ma fois

    tu cherche a régler un soucis qui n'en est pas vraiment un avant d'avoir régler le soucis majeur

    des fois tu as des raisonnements

    et combien même un resize et redim control comme dans ma contribution la différence serait imperceptible sur 4 point positif a -5 points négatifs ce qui englobe toutes versions windows

    non vraiment tu décone

    t'a serré ou quoi?

    réglons le soucis 1 après on verra
    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. #703
    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
    et qu'est ce qu'on s'en fout!! de ce qui se passe en dessous
    Ah bon ? Tu veux dire que TOI, tu t'en "fous" parce-que TOI, tu n'as jamais éprouvé un tel besoin !
    Attends d'avoir besoin un jour de placer un userform/pseudo/inputbox à saisir alors que la saisie dépendra de ce que l'utilisateur verrait dans ce qui se trouve caché
    le but et de placer un userform d'une certaine taille au top et left d'une cells
    Une autre et dernière fois : ne confonds pas l'userform (qui, lui, est bien placé) avec l'image que t'en donne l'intervention de aero.
    il est certain que si tu veux afficher un form entre la ligne 5 et 10 tu va mettre la taille de l'userform en conséquence ma fois
    Comment ? A tâtons ? Car si tu en calcules la hauteur pour l'adapter à celle de ta plage, déplacer le top de l'userform de sorte à ce que la bordure de son "image/aero" coincide, elle, avec le top de la ligne 5, tu vas faire glisser vers le bas toute l'image/aero et empiéter sur la ligne 10.

    On est là en plein bidouillage/bricolage et ne compte en aucun cas sur moi pour participer à une telle démarche. Pas mon genre du tout.
    Amuse-toi bien, mais sans moi pour en arriver à ce type de "montage scabreux".
    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. #704
    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 la tu deraille vraiment

    tu prend un userform
    tu sais que tu va le mettre dans la plage D5:h12

    et bien tu le prépare avant ca dans vbe soit 14.7 (row par defaut )*le nombre de ligne et pareil pour les colonnes
    c'est complètement ridicule ce que tu dis
    et si aero ou le theme tartampion grossi le cadre tu réduis l'usf dynamiquement d'autant

    et si tes controls peuvent tronqué du a la réduction un redim control c'est déjà tout près dans les contribs
    franchement +4 tu crois que ca va changer beaucoup visuellement le resize des controls va être de l'ordre de *1.00x
    je te fait une démo si tu vois pas
    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. #705
    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 demo avec resize différent avec plage différentes largeur
    allez démo

    avec resize par rapport a la plage activecell,activecell.offset(10,2) soit 10 lignes sur 3 colonnes

    j'ai mis des largeurs de colonnes différentes pour déformer le userform selon l'activecell sélectionnée
    Nom : demo8.gif
Affichages : 344
Taille : 489,5 Ko
    alors il est ou ton soucis ? dis moi
    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

  6. #706
    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
    Rhoooo...
    On va récapituler ton "machin" :
    - il comporte déjà un switch pour faire face à chaque cas de figure/version******, etc ... (et encore : les seuls déjà connus)
    - il va falloir lui ajouter un mode d'emploi pour faire face aux nécessités diverses et variées (en fonction de ce que l'on veut)
    - y ajouter dans certains cas un "redim control déjà dans les contributions" et lui-même sujet à caution (j'ai déjà eu l'occasion d'y faire allusion), notamment (mais pas uniquement) en ce qui concerne les polices de caractères
    etc ...
    C'est quoi ? Une plaisanterie ?
    A moins que tu n'aies prévu de venir répondre à chaque nouvelle discussion ouverte en fonction d'un besoin particulier pour "mettre tout cela ensemble" !

    On est là vraiment très loin de l'esprit informatique. Et tout cela pourquoi ? Juste pour faire différemment de ce que Microsoft lui-même a choisi en matière d'affichage de userform via areo ..


    Bref ... On est là à la fois dans le ludique et l'inutilement rendu compliqué ....


    ******
    sans compter qu'il va te falloir, avec ta curieuse interprétation de ce que devrait être le "top" de ton userform, d'autres select case ou un autre switch encore pour "déplacer" comme ceci ou comme cela selon l'effet donné au userform. Tout cela est à comparer avec ce que Microsoft a lui-même voulu : un affichage et un placement d'une image de ses fenêtres en fonction de l'effet choisi, sans modifier en quoi que ce soit les propriétés elles-mêmes de l'userform ; notamment, mais pas uniquement, son top et son left (sans compter qu'à les modifier, cela peut éventuellement avoir certaines répercussions sur d'autres instructions de l'application, sauf à décharger à chaque fois systématiquement le userform pour qu'il retrouve ses propriétés originelles à son prochain chargement (va vraiment falloir un mode d'emploi et y préciser également cet aspect-là, hein ...)

    Tu peux chanter autant que tu veux que je "chipote", que ceci, que cela, etc ... Je n'accepte pas ce genre qui s'apparente à une course genre "fous du volant".
    Bonne chance.
    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

  7. #707
    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
    tu délire complètement


    c'était une démo avec le problème du resize exagéré juste pour te montrer que ca n'était pas un soucis en réalité le resize devrait se faire sur une intervalle de 10 points (-5 a +5)

    ca n'est pas le fond de mon challenge
    mon soucis reste le remplacement de mon switch par des fonctions ou constantes récupéré avec un Object ou 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
      0  1

  8. #708
    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
    ca n'est pas le fond de mon challenge
    Ouais ..
    Hé bien (regarde ce que j'ai mis en rouge) cela va rester TON challenge.
    Je ne participerai pas et ne participerai jamais à un "challenge" qui s'éloigne de l'esprit informatique pour aboutir à du n'importe quoi.
    Et c'est toi, qui parle de "dérailler" ...... !
    Dérailler, Patrick, c'est sortir des rails. Moi, je reste dans les rails. Et ces rails sont ceux de Microsoft.
    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

  9. #709
    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
    J'ajoute ceci très clairement, Patrick :
    Si tu veux garder au moins un peu de sérieux avec ton "challenge", une seule voie est acceptable. Elle consisterait à déterminer la différence entre le top réel de ton userform et celui de l'image qu'en donne l'utilisation de l'effet qui lui est appliqué.
    Toute autre manière est déraisonnable, scabreuse et n'a plus rien à voir avec l' "universalité" nécessaire.
    Et je ne connais personnellement aucune manière de déterminer informatiquement (et sans utilisation de fonctions de l'api de windows) cette différence entre le userform réel et l'image qui résulte de l'utilisation de l'effet appliqué.
    J'ai maintenant tout dit.
    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

  10. #710
    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
    ouais parlons en Microsoft
    t'as tout dis et ben tiens !!!!!! regarde les mesgbox
    chercher l'erreur!!!!
    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
    Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Type RECT: Left As Long: Top As Long: Right As Long: Bottom As Long: End Type
     
    Sub test_userform_scale()
        Dim r As RECT
        With CreateObject("WScript.Shell"): ppx = .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI") / 72: End With
        With ActiveWindow
            X = (.ActivePane.PointsToScreenPixelsX([D3].Left)) / ppx
            Y = (.ActivePane.PointsToScreenPixelsY([D3].Top)) / ppx
            With UserForm1: .Show 0: .Left = X: .Top = Y: End With
            GetWindowRect FindWindow(vbNullString, UserForm1.Caption), r
            MsgBox "largeur avec getwindowrect " & (r.Right - r.Left) / ppx
            MsgBox "left avec avec getwindowrect " & r.Left / ppx & vbCrLf & " left avec avec pointstoscreenpixels " & X
        End With
    End Sub
    dis toi bien que si j'ai dis que c'était une galère incompréhensible depuis le début c'est que j'ai déjà essayé les 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
      0  1

  11. #711
    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
    chercher l'erreur!!!!
    On la trouve souvent sur la chaise sur laquelle on est assis.

    Au passage (puisque tu cherches l 'universalité") : la clé "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI" est inexistante sur XP

    Et par ailleurs : ton code seul ne me dit rien, puisque :
    1) je n'ai ni ta version, ni aero
    2) tu "jettes" ton code sans le commenter, ni au moins dire les résultats affichés CHEZ TOI, avec TA version et TES effets donnés à ton userform.
    Chez moi (et donc xp et pas d'aero) : je ne vois alors aucun problème . Et je dois alors en tirer QUELLE ESPECE DE CONCLUSION, hein ???

    A moins que toute cette discussion, dans ton esprit, est réservée à ceux qui ont TA VERSION et utilisent Aero, bien que dans le même temps, elle prétend rechercher l' "universalité" ... !!! Sacré paradoxe !

    Question de dimension de pois chiche ?
    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

  12. #712
    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
    On la trouve souvent sur la chaise sur laquelle on est assis.
    retourné
    Au passage (puisque tu cherches l 'universalité") : la clé "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI" est inexistante sur XP
    il me semble l'avoir dit déjà cela non?
    Et par ailleurs : ton code seul ne me dit rien, puisque :
    1) je n'ai ni ta version, ni aero
    on a pas besoins d'avoir la même config pour voir que les deux donnent la même chose
    on a bien vu que les thèmes grossissaient légèrement les caption
    pourtant l'api donne la même mesure ca n'est donc pas réglable par les api puisqu'ils donnent pareil que pointstoscreenpixels
    par contre a l'ecran sans l'ajustement c'est pas bon
    conclusion la piste des apis me semble compromise (VOILA CE QUE JE VOULAIS MONTRER!!!)
    testé sur W7 ,vista 2007,2010

    Chez moi (et donc xp et pas d'aero) : je ne vois alors aucun problème . Et je dois alors en tirer QUELLE ESPECE DE CONCLUSION, hein ???
    et maintenant tu me dis que chez toi il y a aucun problème, quand je pense que depuis le nombres de post ou tu dis que c'est pas bon
    comme je te l'ai dis Xp est obsolète avec les versions office d'aujourd'hui je suis même pas sur que l'on puisse installer les versions les plus récentes parti de la les résultats XP n'ont pas d'intérêts puisque les soucis sont sur les thèmes W7 et W10 puisque tu dis que c'est bon pour XP HEIN!!!

    ma fois si ta pas compris ce que j'ai voulu te montrer il te faut encore un dessin !!!(capture)

    j'ai vraiment l'impression de parler a deux personnes différentes des fois

    le soucis c'est DE TROUVER COMMENT remplacer du switch si c'est possible

    LE RESTE NE M INTERESSE ABSOLUMENT PAS !!,C EST CLAIR COMME CA OU PAS?
    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

  13. #713
    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
    ce qu'il nous faut c'est un Object une api ou autre cochonnerie qui nous donne la vrai positon visuelle écran de l'userform affiché
    afin de pouvoir faire la soustraction ou addition de la différence
    les api donnants la même chose c'est mal barrépeu etre faire un plus simple switch sur le nom du theme dans la base de registre a condition que ces existe au meme endroit dans tout les Windows

    quelqu'un sur W10 poudrait regarder le nom du thème utilisé (actif) dans la base de registre sur W 10
    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

  14. #714
    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
    on a pas besoins d'avoir la même config pour voir que les deux donnent la même chose
    Comment savoir que des configs différentes retournent le même résultat si, à la fois :
    - l'on ne possède pas de quoi le vérifier, hein, Patrick
    - tu ne le dis pas toi-même, en te contentant de "jeter" un code sans autre explication
    Tu peux me le dire ?
    Cet aspect-là ne relève pas uniquement de la taille d'un pois chiche, mais également de la place que l'on pense qu'occupe un nombril.

    Ceci étant dit, Patrick, il ne me serait même pas venu à l'idée de tester ton code. Ses résultats sont évidents !

    Je t'ai dit, redit, répété et re-répété (je ne sais plus combien de fois) que l'userform était UNE CHOSE et que l'image qu'en donnait le thème qui lui est appliqué en est UNE AUTRE;

    Et tu t'obstines nonobstant à comparer l'userform lui-même, ce que te retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetWindowRect FindWindow(vbNullString, UserForm1.Caption)
    avec l'image (résultant de l'application d'un thème) ensuite affichée.

    et maintenant tu me dis que chez toi il y a aucun problème
    Et à quel moment (montre donc, pour voir) t'aurais-je dit que j'avais un problème de différences ? Tu l'as rêvé ? ou tu as encore lu en diagonale ? Je ne risque en aucun cas d'en avoir (puisque avec XP et un userform plat).

    ca n'est donc pas réglable par les api
    et
    le soucis c'est DE TROUVER COMMENT remplacer du switch si c'est possible

    LE RESTE NE M INTERESSE ABSOLUMENT PAS !!,C EST CLAIR COMME CA OU PAS?
    est à comparer avec ce que je t'ai déjà dit clairement :

    Et je ne connais personnellement aucune manière de déterminer informatiquement (et sans utilisation de fonctions de l'api de windows) cette différence entre le userform réel et l'image qui résulte de l'utilisation de l'effet appliqué.
    Et ce ne saurait être à partir de la fenêtre windows obtenue par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetWindowRect FindWindow(vbNullString, UserForm1.Caption)
    qui (une fois de plus) n'est rien d'autre que la fenêtre windows de l'userform lui-même (et non son "image" affichée par application d'un thème x ou y)

    Te reste à interroger Microsoft ? Il te diront peut-être quel mécanisme (et quel code) ils utilisent pour établir leur "image" affichée, hein ...
    Ou ... ils te répondront que cela ne te regarde pas et que le placement qu'ils font, eux, leur paraît le plus adéquat. Et ils auront bien raison...
    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. #715
    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
    tu répète tu répète parce que on se comprends pas

    j'ai testé simplement voir si avec les api on pouvait voir ce qui est affiché ,parti de la le redressage est walouh avec les api c'est tout !!!
    pour le moment seul mon switch fait le job
    je trouverais comme d'habitude t'inquiet!!
    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. #716
    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
    j'ai testé simplement voir si avec les api on pouvait voir ce qui est affiché
    Et (comment te le dire ? Je ne cesse de te le dire) : ton "test" ne risque pas de te conduire à quoi que ce soit, puisqu'il est fait sur la fenêtre réelle de l'userform et non sur l'image résultant de l'application du thème choisi.
    Tu pédales dans la choucroute, là, ami !

    On ne fait pas des tests n'importe comment. Et surtout pas des tests qui ne risquent pas de tester ce que l'on veut tester. Un minimum de réflexion s'impose, quand-même !

    Je ne risque pas, n'ayant pas ta configuration et ta version, de t'aider à choisir un test plus "utile".
    Je sais simplement que si j'étais toi, mon tout premier réflexe aurait été d'essayer de comprendre ce qu'est exactement l' image (elle n'est pas l'userform, mais une image résultant du thème appliqué).
    J'aurais au moins commencé par tenter de déterminer si c'est ou non une fenêtre windows à part entière, hein ...
    Et pour cela :
    - j'aurais au moins tenté d'utiliser la fonction WindowFromPoint de la librairie user32 de l'Api de Windows
    - j'aurais dans cette foulée vérifié si le hwnd obtenu était bien autre que tant celui du userform que celui du conteneur sur lequel il est placé
    J'aurais fait ces deux essais en deux opérations distinctes :
    - l'une en plaçant le curseur au sein de l'image du userform
    - l'autre en plaçant le curseur sur l'image de la barre de titre

    Voilà, déjà, du moins insensé que des moulinets non réfléchis et donc totalement stériles dans tous les sens.

    Voilà ce qui, déjà, devrait te permettre de mieux cerner, au moins, la nature de ce que tu veux examiner et traiter.

    Tu veux être efficace ? Commence par te montrer moins impulsif et plus sérieux, sur la base de ce qui est plus raisonnable et fais-le de manière plus méthodique (et surtout pas "intuitive" ou correspondant à tel ou tel autre "ressenti" de tel ou tel autre "moment")

    Bonne chance
    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.
      1  1

  17. #717
    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
    - j'aurais au moins tenté d'utiliser la fonction WindowFromPoint de la librairie user32 de l'Api de Windows
    la bonne blague tu crois que je l'ai pas déjà testé celle la ???? j'ai le même left qu'avec l'autre
    j'ai testé diverses api user32 toutes me donnent le même résultat
    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

  18. #718
    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
    la bonne blague tu crois que je l'ai pas déjà testé celle la ???? j'ai le même left qu'avec l'autre
    j'ai testé diverses api user32 toutes me donnent le même résultat
    Si (et seulement si) tu l'as testé convenablement (y compris -relis-moi- avec le curseur aussi sur la barre de titre) et que tu as le même hwnd que celui du userform ou celui de la fenêtre qui lui sert de conteneur (je te parle bien du hwnd), quelle est ta conclusion ? Je t'écoute.
    Au lieu de me servir un "la bonne blague" ....
    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

  19. #719
    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
    puré
    c'est exactement ce que j'ai fait dans un do loop pour avoir le même handle (hwnd)
    je le trouve mais c'est valable que pour ma config sinon il faut que je fasse l'inverse pour Nicolas par exemple qui est a -5 tandis que moi a +5 mais si tu veux je t'en fait un y a pas de soucis laisse moi retrouver l'exemple et je l'adapte avec ppx par le registre

    j'avais abandonné cette idée car je trouvais que 1 ou 2 do loop ca faisait bricolage
    mais j'ai peu être une idée pour faire qu'un seul do loop
    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

  20. #720
    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
    voila adapté
    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
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xpoint As Long, ByVal ypoint As Long) As Long
    Sub test_userform_replace()
        Dim r As RECT
        'With CreateObject("WScript.Shell"): ppx = .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI") / 72: End With
        With CreateObject("WScript.Shell"): ppx = .RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI") / 72: End With
        With ActiveWindow
            X = (.ActivePane.PointsToScreenPixelsX([D3].Left)) / ppx
            Y = (.ActivePane.PointsToScreenPixelsY([D3].Top)) / ppx
            With UserForm1: .Show 0:
                handle1 = FindWindow(vbNullString, UserForm1.Caption): handle1bis = handle1
                .Left = X: .Top = Y:
                Do
                    handle2 = WindowFromPoint((X * ppx) - a, (Y * ppx) - a):
                    handle2bis = WindowFromPoint((X * ppx) + a, (Y * ppx) + a):
                    a = a + 1
                Loop While handle1 = handle2 Or handle1bis <> handle2bis
                .Left = X + a / ppx: .Top = Y + a / ppx
            End With
        End With
    End Sub
    chez moi ca fonctione faudra que Nicolas teste
    mais on est déjà la hors du challenge

    j'avais fait la meme chose avec rangefrompoint membre de activewindow dans un do loop navigant au dessus puis a gauche du userform en contrôlant l'adresse
    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