Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres calcul de position d’écart left top qui déraille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
pour calendar je suis en train de faire un patch qui me permettra de respecter les positions en forcant une marge left et top

sauf que dans l'exemple qui suit ( 2 userforms simple) le calcul ne fait pas la différence en - ou +

le calcul additionne tout le temps ??????????????????😳🤔🤔🤔🤔🤔🤔

  1. ouvrez l'userform ,cliquez sur le bouton rouge
  2. le userform2 s'affiche replacez le en coin haut et gauche de B3
  3. et recliquez sur le bouton rouge du uf1

j'ai tout essayé même avec sgn rien y fait c'est un truc de fou
 

Pièces jointes

Solution
allez on garde comme ça
merci a tous
VB:
Private Sub showW_Click()
    With uf2
        Dim L1#, T1#, OperX&, OperY&
        If Not .Visible Then
            ddecx = 0: ddecy = 0    '1er lancement
            .StartUpPosition = 0
            With ActiveWindow
                PtoPx = (.ActivePane.PointsToScreenPixelsY(72) - .ActivePane.PointsToScreenPixelsY(0)) / 72    'coeff point to pixel
                Z = .Zoom / 100
                L1 = (.ActivePane.PointsToScreenPixelsX(Int([b3].Left)) / PtoPx) * Z    'placement partie mobile
                T1 = .ActivePane.PointsToScreenPixelsY(Int([b3].Top)) / PtoPx * Z
            End With
            .Left = L1
            .Top = T1
            .Show 0
            ddecx = L1
            ddecy...
oui visiblement c'est bien tu es allé jusque là mais un peu plus tard on apprend a travailler avec les nombres relatifs

tu met juste le doigt dessus et tu ne comprends toujours pas la demande en fait et on en est a 59 post
pour une demande qui est résolu depuis le post #15 ou la réponse correspond exactement a mon besoins
après si tu veux jouer a celui qui fait pipi le plus loin va y ne te gène pas , moi je n'y joue plus depuis plus de 40 ans , je t'octroie la victoire sans conteste 😂
 
si tu veux jouer a celui qui fait pipi le plus loin va y ne te gène pas, moi je n'y joue plus depuis plus de 40 ans , je t'octroie la victoire sans conteste 😂
Non, pas du tout.
Je voulais juste t'expliquer les deux erreurs que tu commettais dans ton raisonnement.

C'est dommage que tu le prennes comme ça, d'autant que le "problème" semble super facile à résoudre en utilisant la bonne opération (une soustraction à la place d'une addition), et qu'il semble totalement inutile de compliquer avec SGN et ABS.

Si tu prends le temps de tout relire, grâce aux explications tu comprendras facilement tes deux erreurs.
 
Dernière édition:
Encore une fois ces deux instructions au poste #15 :
VB:
OperX = Sgn(uf2.Left - CDbl(ddecx)): ddecx = OperX * (Abs(uf2.Left - CDbl(ddecx)))
OperY = Sgn(uf2.Top - CDbl(ddecy)): ddecy = OperY * (Abs(uf2.Top - CDbl(ddecy)))
Reviennent exactement au même que :
VB:
ddecx = uf2.Left - CDbl(ddecx)
ddecy = uf2.Top - CDbl(ddecy)
Le seul truc c'est que dans le classeur d'origine ça mettait toujours simplement uf2.Left et uf2.Top parce que ddecx et ddecy était remis à 0 au début.
 
Oui, il faut espérer que ce soit pareil, sinon c'est qu'il y a un gros bug dans Excel. 😉

Ou alors peut-être quand on travaille avec des variables de tailles différentes (octet et long par exemple) : Excel ne sait peut-être pas bien s'adapter et donne un résultat faux ???

En tout cas, rien ici ne prouve une telle chose : voir sur les gif de #40 où les résultats donnés par Excel sont parfaitement conformes à ceux que l'on attend (c'est-à-dire respectivement 3, 3, -3 et 3) au vu des opérations effectuées.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…