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

XL 2016 Copier et coller une plage en image

garnote

XLDnaute Junior
Bonjour, bonsoir ou bonne nuit, selon le cas,

Je dois sélectionner une plage contenant des cellules noires ou blanches pour en faire des images auxquelles je fais faire diverses rotations avec VBA, mais ses sacrées images ne s'alignent pas avec une précision absolue avec les cellules qu'elles contiennent. Vous connaissez un truc pour m'enlever cette épine du pied sans être obligé d'essayer d'y arriver manuellement pour chacune des images pivotées ?
S'il était possible de faire pivoter une plage sans passer par une image, ce serait le pied!

Merci de votre attention et salutations distinguées!
Serge
 

Pièces jointes

  • Plage image rotation.PNG
    3.4 KB · Affichages: 22

garnote

XLDnaute Junior
Quand même un peu ridicule d'avoir autant de misère pour obtenir des cellules vraiment carrées.
Sans parler, si on a pu faire, supposément, de vrais carrés sur nos feuilles, de l'impression desdits carrés qui ne sont plus vraiment carrés!
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Ben quand tu vois comment Excel calcule les largeurs de colonnes, ça fait peur : c'est fonction de la police de caractères par défaut !

Donc si tu changes la police par défaut, ça change l'unité de mesure... Difficile de faire plus compliqué.
 

patricktoulon

XLDnaute Barbatruc
ca n'est pas que c'est compliqué c'est que par calcul c'est impossible a moins de tomber sur des dizaine s
c'est simple
1 point =1.333333333333333 pixel en dpi 100 soit(96)

comme le width en ecriture pour les cells c'est columnswidth(nombre de caractères ) et que meme si on peut facilement ramener ca en points reste que 1 point =1.33.... donc calculer en pixel est une hérésie en vba excel

une cellule mesure 60points de large à la base soit 10.71 caractères(oui oui le dernier caractères c'est un petit chinois il fait que 0.71 LOL LOL)

et le rowheight c'est en point

donc imaginons que je veux des cellules de 80 points de large et de haut

je fait
x=80

w=cells(1).width 'uniquement en lecture

RW=cells(1).columnwidth'en lecture et écriture

'je fait donc une opération simple je vais déterminer le coefficient with 60 à 80

xx = x / w'coéfficient 60 vers 80

'il me reste plus qu'a multiplier le RW original par ce coefficient

With Cells(1)
.ColumnWidth =rw * xx
.RowHeight = x
End With

ben manque de pot vba est passer par là et il arrondi
résultat des course quelque chose de simple et logique devient d'un coup un casse tête chinois
LOL!!!
 

TooFatBoy

XLDnaute Barbatruc
ca n'est pas que c'est compliqué c'est que par calcul c'est impossible a moins de tomber sur des dizaine s
c'est simple
Ca doit forcément être possible, d'abord parce que ce n'est qu'une histoire de mathématiques, et ensuite parce que Microsoft y arrive.

Faut dire que Microsoft et les unités de mesure ça a toujours été tout un poème !
Ils ne sont même pas capables, encore aujourd'hui, d'afficher la bonne unité de mesure pour la taille des disques durs...
Et en VB, dans les années 90, quand ils utilisaient les twips...


1 point =1.333333333333333 pixel en dpi 100 soit(96)
Ah, ça me rappelle une conversation ça.
Souviens-toi : ce n'est pas "dpi 100 soit(96)", c'est "facteur de zoom à 100 % avec une dalle en 96 dpi".
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…