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. #161
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 551
    Points : 787
    Points
    787
    Par défaut
    merci l'ami
    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

  2. #162
    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 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Désolé pour toi, mais pour VBA, les coordonnées de l'activeWindow sont établies, elles, en POINTS et par rapport non à l'angle supérieur gauche de l'écran, mais à celui de la fenêtre application.
    Exactement comme sont établies, par exemple, les coordonnées d'un contrôle d'un userform.
    a ben mince alors je croyais que l'unité de mesure était en "pied" a ben ca alors
    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. #163
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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
    a ben mince alors je croyais que l'unité de mesure était en "pied" a ben ca alors
    Mais tu ne sais pas appliquer

    Voilà l'image réduite et moins gourmande
    Nom : grillea.JPG
Affichages : 382
Taille : 80,4 Ko

    Si tu la comprends (elle "parle") tu ne devrais avoir aucune difficulté à placer un userform sans passer par les pixels et des positions par rapport au desktop.

    Je n'ai montré là que l'aspect concernant les ordonnées. Celui des abscisses est mille fois moins complexe.
    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. #164
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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 vais de bon matin laintenant revenir sur ce que tu as écrit sans sourciller, patricktoulon, à savoir :
    c'était une expression "au millimètre prêt"
    bref chez moi c'est nickel
    Ce ne peut être nickel , patricktoulon, qu'avec un facteur de zomm à 100 %, et ce : quelle que soit la résolution de l'écran.
    Il y a à cela une raison fort simple : -->>
    L'l'homothétie parfaite n'existe qu'en mathématiques (géométrie) du seul fait que le point n'est pas matériel et n'a aucune dimension minimum.
    -- Un pantographe, une loupe, un projecteur, des verres optiques, etc ... respectent parfaitement cette homothétie
    -- Il ne saurait en aller de même avec l'utilisation d'un écran, dont la plus petite partie n'est pas, elle, élastique et a donc des dimensions minimums (celles d'un pixel). Il se trouve que par exemple et entre autres, certaines bordures ont une épaisseur de 1 pixel. Comment penses-tu passer à 0,75 pixels (cela n'existe pas) en facteur de zomm de 75% ? C'est d'ailleurs également un problème dans l'autre sens, en facteur de zoom non multiple entier de 100 .
    Alors ? Il y a forcément un décalage (tout l'art est de le rendre le moins significatif possible) dans certains cas. Mais il n'y aura pas le "nickel" que tu dis.
    Ce décalage sera plus ou moins important en fonction de la résolution de l'écran (puisque les dimensions d'un pixel en dépendent), mais il, sera toujours présent.
    Que se passe-t-il selon toi en arrière plan lorsqu'est utilisé activepane ? Comment sont "estimées" les "corrections" à apporter pour avoir un meilleur "rendu". Que se passe-t-il par ailleurs lorsque l'on passe de conversion en conversion, sinon ce qui se passe en mathématiques lorsque l'on divise, puis multiplie par un facteur ?
    Je te laisse à toutes ces réflexions et tes tâtonnements et attends maintenant ton code "corrigé" par "tâtonnements" pour te mettre en face d'une évidence.
    A plus.
    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

  5. #165
    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 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour unparia
    alors tout ce que tu dis je l'entends bien

    ta formule de calcul y a bien longtemps que je l'ai comprise bien avant que tu intervienne même

    je sais très bien qu'un pixel n'est pas divisible

    et chez moi avec un zoom de 30% a 200% j'ai un résultat visuel nikel

    et ma formule est toujours la même

    sauf que j'ai une!!!! ligne de code en plus pour la rendre universelle

    cette ligne est ajouté car j'ai enfin trouvé le paramètre que toi visiblement ignore encore

    ce paramètre est la raison du pourquoi ca marche chez l'un et pas chez l'autre

    ce paramètre devra être aussi appliqué a ta formule pour être universel

    j'attends d'autre retours(capture d'écran )que j'ai demandé sur un autre forum

    une fois tous ces retours reçu je pourrais confirmer mais j'en suis déjà bien convaincu

    c'est tellement bête que quand tu saura tu comprendra pourquoi j'ais dis précédemment regarder les capture chez moi et celle de Nicolas

    et la c'est pas une puce que je t'ai mis a l'oreille c'est un gros scarabée bien bruyant tu peu pas le rater
    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. #166
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 551
    Points : 787
    Points
    787
    Par défaut
    Bonjour les copains,
    un petit code qui fonctionne nickel pour ma pars et qui permet de remplacer l'api qui fonctionnait aussi, en attendant votre suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Const x As Double = 57
    Const y As Double = 12.5
     
         With UserForm1
             .Show 0
             .StartUpPosition = 0
             .Left = ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left) - y
             .Top = ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top) - x
         End With
     
     End Sub
    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

  7. #167
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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
    Ben ...
    Il se trouve que je n'ai pas de problèmes non plus. Et sans conversions, avec juste les points de VBA !
    J'attends ton "scarabée", donc ... Et le code "universel", dont je passerai les résultats à la loupe, puisque tu dis qu'il est "universel"...
    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

  8. #168
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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
    Bonjour Nicolas JACQUIN
    Que sont les valeurs en dur que tu indiques ?

    EDIT : non, Nicolas : ton code ne fonctionne pas comme attendu du tout, y compris avec zoom 100%
    Tout est décalé, surtout horizontalement (énormément)
    Avec un zoom autre que 100% -->> pire
    Et si la première cellule visible n'est pas la A1 -->> pire encore
    Et si on n'affiche pas la barre des titres -->> un décalage de plus encore
    Et si on a fait flotter et déplacer la grille (activewindow) -->> la catastrophe totale
    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. #169
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 551
    Points : 787
    Points
    787
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour Nicolas JACQUIN
    Que sont les valeurs en dur que tu indiques ?
    oui gros problème, que en 100%, désolé
    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

  10. #170
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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
    vu qu'il y aurait des variantes selon les versions excel
    Elles n'ont hélas pas grand chose à voir avec de tels décalages (vraiment énormes y compris en situation normale : sans déplacer et sans zoomer)
    On est loin de petites corrections nécessaires, là
    Amitié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

  11. #171
    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 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    selon les object que tu utilise ca devrait donner ceci
    sauf que plus je montele zoom plus le décalage est important pas de quoi fouetter un chat comme on dit chez nous
    je n'ai pas prévu les non displaybar comme c'est juste un exercice et que je préfère de loin ma formule
    mais je l'ai fait pour que tu vois que j'ai bien compris le principe
    quand j'aurais tous mes retours et si tout ce que j'ai remarquer est exact ( je viens d'avoir encore 3 confirmations ce matin)
    je donnerais la mienne et tu comprendra pourquoi cette méthode ne peut pas être universelle

    mais avec ma formule le décalage est tellement imperceptible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test24()
        With UserForm1
            Dim BarFormul#, BarHeading#, UsableW#, Ruban#, Rattrapage#, Zooom#
            BarFormul = .Height - .InsideHeight
            BarHeading = (.Height - .InsideHeight)
            UsableW = (Application.Width - Application.UsableWidth)
            Ruban = (Application.Height - Application.UsableHeight) - BarFormul
            Rattrapage = (.Width - .InsideWidth)
            Zooom = (ActiveWindow.Zoom / 100)
            .Show 0
            .Left = Application.Left + ActiveWindow.Left + UsableW + ((BarHeading + 2) * Zooom) + ([b3].Left * Zooom)
            .Top = Application.Top + ActiveWindow.Top + Ruban + BarFormul + (BarHeading * Zooom) - Rattrapage + ([b3].Top * Zooom)
     End With
    si tout se passe bien tu devrais etre bon et nicolas décalé si ca c'est pas un indice hein
    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. #172
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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 avec ma formule le décalage est tellement imperceptible
    Ah bon ! Heureux de l'apprendre ...
    Il se trouve qu'il est très nettement visible (pas du tout "imperceptible") sur ma machine, tant horizontalement que verticalement (plus de 5 fois supérieur au mien !)
    Tu expliques cela comment ? Avec un autre "scarabée" ?
    Tu sais quoi, patricktoulon ? tu as pigé (et appliqué) une partie (la hauteur "intouchable" qui n'est pas QUE le "ruban") de ce que je t'ai dit et du dessin que je t'ai fait, mais a "zappé" tout le reste !
    Il y a des flèches partout, sur mon dessin ... et des commentaires à bien lire.
    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

  13. #173
    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 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    autant pour moi
    c'est toi qui doit avoir le décalage et Nicolas qui doit être bon

    je n'en dis pas plus pour le moment j'attend la fin des test avec toutes versions confondues

    ce serait bien que nicolas passe par la et fasse le test pour voir
    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. #174
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 551
    Points : 787
    Points
    787
    Par défaut
    avec ton code tel quel ça me donne ça, capture plein écran
    Nom : Capture.JPG
Affichages : 383
Taille : 211,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

  15. #175
    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 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    oui j'avais pigé depuis longtemps
    app.top+ruban =intouchable
    displaybar =oui ou non

    si displayheading=non alors pas de colonne de numéro de ligne pour le left

    c'est pas compliqué

    mais tout ca avec ma formule je le fait en une fois

    mais selon un cas très précis de configuration logiciel il faut rattraper
    et la je viens de te le donner l'indice
    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. #176
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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 vois que ce scarabée a des difficultés à sortir de sa bouse ...
    On va l'y aider :
    Commencer par mettre les propriétés qui ne faussent pas :
    les deux les plus évidentes --->>
    BorderStyle = fmBorderStyleNone
    SpecialEffect = fmSpecialEffectFlat

    (Et ce n'est pas tout).
    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

  17. #177
    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 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    non je suis pas dans la bouz j'au eu une inter toute la journée samedi pouurri!!!!!

    j'ai testé élément par élément avant de faire l'assemblage et tout ce qui doivent être touché par le zomm ne répondent pas correctement en fonction du pourcentage
    et avant que tu réponde sache que j'ai très bien compris la logique
    ta beau tourner ca dans tout les sens c'est pas une solution universelle

    un seul bemol et de taille celui la c'est que tu utilise les cotes userform pour trouver une cote qui est dans l'activewindow
    parti de la ca peut être bon comme tout mauvais notamment entre W7 et W +++ si ca c'est pas indice
    parti de la ta logique n'est pas bonne
    je te signale quand même qu'avant de parler j'ai testé sur W7 windows 10 et windows 8.1
    pour être honnête j'ai installé Windows 10 sur un partition j'ai donc pu testé moi même, même si j'ai eu les retours qui confirment ma théorie
    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. #178
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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
    Tu voudras bien m'excuser, mais j'attends donc ton code "universel" que je passerai à la loupe.
    Tant que cela ne sera pas là : ce ne sera que du baratin et rien d'autre, si tu le permets ...
    J'attends donc tout simplement ce "petit" cela (ton "scarabée", quoi ...)
    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. #179
    Membre éclairé Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 551
    Points : 787
    Points
    787
    Par défaut
    Bonjour les amis,
    j'ai passé la nuit dessus après un essai un peu laborieux, j'ai réussi, pour moi ça fonctionne au millimètre (Windows 10 et Excel 2016)
    et avec n'importe quel zoom
    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
    Private Declare Function GetDC Lib "user32.dll" (ByVal hWnd As Long) As Long
    Private Declare Function GetDeviceCaps Lib "gdi32.dll" (ByVal hdc As Long, ByVal nIndex As Long) As Long
     
    Function PositionForm(Form As Object, rng As Range)
    Dim K As Double, Z As Double
     
    Z = ActiveWindow.Zoom / 100
    K = GetDeviceCaps(GetDC(0), 88) / 72
    K = GetDeviceCaps(GetDC(0), 90) / 72
     
    lleft = ActiveWindow.PointsToScreenPixelsX(rng.Left * K * Z) / K - 5
    ttop = ActiveWindow.PointsToScreenPixelsY(rng.Top * K * Z) / K
    PositionForm = Array(lleft, ttop)
     
    End Function
     
    Sub TestUserform()
        r = PositionForm(UserForm1, ActiveCell)
        With UserForm1: .Show 0: .Left = r(0): .Top = r(1): End With
    End Sub
    J'attends vos réactions
    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

  20. #180
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    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
    Bonjour Nicolas JACQUIN

    D'abord : Je te félicite pour le travail que tu as fait. Il mérite totalement ceci -->>
    Le résultat obtenu est parfait en ce qui concerne le positionnement vertical
    Il ne l'est pas (plusieurs pixels de décalage) en ce qui concerne le positionnement horizontal
    Ton résultat (également exact en position verticale sur ma machine) est la preuve de ce que les calculs (déjà en ce qui concerne la position verticale) ne dépendent absolument pas d'un "scarabée" d'une version
    Je te tire personnellement mon chapeau pour t'y être mis. Tu es courageux et ne t'éparpille pas.

    - le défi reste d'y parvenir sans utilisation de fonctions de l'Api de Windows
    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

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, 20h07
  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, 12h08
  3. [VBA-Excel] DblClick sur une cellule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/01/2007, 11h51
  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, 23h08
  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, 21h27

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