XL 2016 Cherche possesseur de MAC connaissant VBA

Dudu2

XLDnaute Barbatruc
Bonjour,

Pour un XLDNaute du Canada j'ai développé un code sous Windows.
Je vire tout ce qui est API Windows. Et tous les caractères accentués.

1 - Cependant comment fait-on en MAC pour trouver le ratio Point / Pixel ?
2 - Y a-t-il une fonction Sleep(milliseconds) ?

Merci par avance
 

Dudu2

XLDnaute Barbatruc
Pas encore fait, j'ai posté pour la publication 1 ressource sur mon problème majeur à chaque fois que je fait un UserForm pour quelqu'un, qui est le contrôle des valeurs saisies dans l'évènement Exit(), contrôle qui conditionne des actions ultérieures.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
En 2 temps 3 mouvement, copie du code de @patricktoulon.
Voilà ce que ça donne sur PC, c'est pas bon mais on le sait, car ce qui est intéressant c'est l'affichage sur MAC.
@RyuAutodidacte, peux-tu faire une screenshot STP ?

1695665396939.png
 

Pièces jointes

  • Classeur1.xlsm
    25.9 KB · Affichages: 5

Dudu2

XLDnaute Barbatruc
Un truc qui me met la grouille dans les traitements aussi ce sont les caractères accentués qui ne sont pas les mêmes.
Ainsi je teste "Total général" dans une cellule, et ça ne le trouve pas sous MAC.
Je suppose qu'il faut translater ces caractères et qu'il doit bien y avoir quelque part une routine qui le fait.
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Re @Dudu2

mon excel en plein écran :
1695665995611.png


Fenêtre Excel moitié écran à droite :
1695666080413.png


… Moitié à gauche :
1695666136697.png


Si je mets Excel en bas1/4 de la hauteur de l'écran le userform se retrouve en dehors de la fenêtre en haut

Si je met la fenêtre d'excel en haut de l'écran et je modifie la taille de la fenêtre excel sur la hauteur on peut retrouver le userform sur toutes les lignes (dont la blague)

La bonne nouvelle c'est que le userform garde l'axe de la colonne F
 

Dudu2

XLDnaute Barbatruc
@RyuAutodidacte ,
Si tu te sens de saisir cette longue chaîne de caractères diacritiques et exécuter le code chez toi...
1695668025302.png

VB:
Option Explicit

Const LettresDiacritiques = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝŸàáâãäåçèéêëìíîïñòóôõöùúûüýÿ"

Sub a()
    Dim i As Integer
    Dim S As String
   
    [C3].Value = LettresDiacritiques
    '[C:C].EntireColumn.AutoFit
   
    For i = 1 To Len(LettresDiacritiques)
        S = S & Hex(Asc(Mid(LettresDiacritiques, i, 1))) & " "
    Next i
    [C4].Value = S
End Sub

Chez moi ça donne ça:
1695667981887.png
 

Dudu2

XLDnaute Barbatruc
Ce que je ne comprends pas c'est que ton code ne donne pas le même résultat sur mon PC et ce ne sont pas les .Top et .Left de la Window ou de l'Application qui font la différence entre ces 2 comportements.
Étrange...

1695670310477.png
 

Pièces jointes

  • Classeur1.xlsm
    27.8 KB · Affichages: 0

Dudu2

XLDnaute Barbatruc
Je me souviens avoir fait une fonction de positionnement, il me semble qu'on en avait discuté, et il faut utiliser les PointsToScreenPixelsX/Y sur le Pane de l'objet.
Après les petits décalages sont dûs aux fameuses marges invisibles des UserForms qu'on avait réussi à supprimer via un mécanisme complexe d'API non utilisé ici.
 

Pièces jointes

  • Classeur1B.xlsm
    34.8 KB · Affichages: 2
Dernière édition:

Dudu2

XLDnaute Barbatruc
De toutes façons, le problème est ici principalement avec MAC.
Ce dernier fichier utilise l'API Windows pour la conversion Pixels en Points. Donc pas MAC !
Et même si on le code en dur, pas sûr que les autres fonctions PointsToScreenPixelsX existent en MAC.

De plus, j'ai fait un code batch pour traiter un fichier sur MAC. Pas de UserForm, rien que du code.
Ce code fonctionne sur PC et sur MAC, des tests de VarType() ou autres ne donnent pas les mêmes résultats rendant la Macro inexploitable.

Donc j'abandonne la portabilité MAC, c'est bien trop compliqué à gérer sans un MAC sous la main.
Merci @RyuAutodidacte pour ton support et @patricktoulon.
@+ pour de nouvelles aventures.
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
908

Statistiques des forums

Discussions
312 396
Messages
2 088 045
Membres
103 707
dernier inscrit
Papy60