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

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
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é
Re @Dudu2

mon excel en plein écran :


Fenêtre Excel moitié écran à droite :


… Moitié à gauche :


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...

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:
 

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...

 

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:

patricktoulon

XLDnaute Barbatruc
re
perso mes fonction pointstoscreenpixels fonctionnent très bien
c'est pour mac le sujet
d'ailleurs pour info le calendar V full MAC se promène aussi dans le nord américain
et je n'ai jamais eu de retour sur le active window ou pane ou quoi que se soit d'autre
 

Discussions similaires

Réponses
3
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…