connaitre l'address du visible range en fonction du dpi et de la resolution

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 ceux qui sont en dpi96 je voudrais connaitre l'address du visible range avec un écran classique (15,17,21 pouce)

j'ai juste besoin de faire un choix de max colonne/ligne fonctionnant avec toute résolution par l’intermédiaire du zoom sur range

merci pour les retours
 
Dernière édition:
re
bizarre ca
car normalement
je zoom a 100
prend le width de A:I
divise par le visible range=coeff
et zoom 100+ coeff

donc indépendamment du dpi ou je ne sais quoi d'autre a foutre, tu devrais avoirs A:I visible sur X lignes
c'est pas logique ton truc
peut etre n'est tu pas en dpi 96 résolution classique le plus courante mais plus bas et les calculs a ce moment la sont pas valides j'ai deja vu ca sur un vieux XP sp2
 
Re, quand-même ...
1) le titre de la présente discussion ("connaitre l'address du visible range en fonction du dpi et de la resolution"), conforté par la rédaction du premier message, "bride" d'emblée toute autre considération, y compris si l'on peut deviner le but final de la démarche
2) Je n'ai pas ouvert (je ne le fais jamais) le classeur joint, dont l'ouverture est proposée en vue de relater les effets constatés, mais je peux parfaitement lire entre les lignes des différents messages, tant la finalité recherchée que la méthode tentée

3) il est vraisemblable que ma présente intervention eût revêtu un tout autre aspect si la discussion (de par son titre et la question posée) avaient été autres (exposé d'un but à atteindre et demande d'aide à la détermination de la méthode à retenir pour ce faire).
4) Mais ce n'est pas le cas et je vais donc me contenter d'appeler l'attention sur le défaut essentiel (mais pas le seul) du choix fait d'utiliser la propriété VisibleRange.width : est considérée visible toute cellule dont on ne voit qu'une partie.
Amitiés

 
Bonjour Marcel32
La même unité que celle utilisée pour une cellule : le point.

EDIT : le point est l'unité graphique utilisée par VBA/Excel pour tout objet de l'application elle-même et donc contenu (à ne pas confondre avec au même niveau visuel) dans la fenêtre de l'application Excel.
 
Dernière édition:
re
@jmfmarques si tu n'ouvre pas les fichiers voici le code
VB:
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Application.WindowState = xlMaximized
    With ActiveWindow
        .ScrollColumn = 1: .ScrollRow = 1: .Zoom = 100: coeff = (.VisibleRange.Width - 15) / [A:Ai].Width: .Zoom = 100 * coeff
        [A1].Activate
    End With
End Sub
 
Bonjour Marcel32
La même unité que celle utilisée pour une cellule : le point.
Merci pour ta réponse. 🙂

Une colonne fait 10,71 points.
Avec le zoom de la feuille à 100 %, mon moniteur affiche 47 colonnes et environ 1/4 de la 48e colonne.
Et pourtant ActiveWindow.VisibleRange.Width me renvoie 2880.

Je pige pô. 🙁
Si vous avez une explication brève (pour ne pas trop polluer le fil de discussion de Patrick), je suis preneur.
 
A PatrickToulon
Je l'avais également deviné, ce code 🙂
Il confirme ma remarque plus haut en ce sens qu'il ne saurait être fiable car très dépendant de facteurs différents.
Là s'arrête maintenant ma participation à la présente discussion, telle que rédigée.
 
Ah, OK. Donc tout n'est pas en point dans Excel.

Jamais je n'aurais cru que "10,71" était un nombre de caractères vu que ça dépend de la taille de la police et que de plus les polices sont généralement à chasse variable.

En tout cas, merci pour la réponse. 🙂

PS : j'obtiens 10,71 et 60. Et du coup le 60 me donne bien 2880 si on compte 48 colonnes. 😉
 
mais bon pour en revenir a mon truc
je le redis indépendamment de la résolution du dpi et de tout autre facteur
si je prend
  1. le visiblerange (donc en point)même si la dernière colonne n'est pas entièrement visible
  2. le width de [A:I](donc en point)
  3. que je divise [A:i].width par le visiblerange .width
  4. et que j’applique ce coeff au zoom
  5. vous devriez avoir A:I visible a l’écran
si vous me dites que non vous avez un soucis avec le zoom
pour plus de précision j'aurais pu utiliser application.usable.width
c'est pas la précision que je recherche mais juste de voir A:I a l'ecran
 
- 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

Discussions similaires

Retour