Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France): "manque
un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui permet
de connaître la dimension réelle qu'aura un objet (shape) lorsqu'on lui
impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut pas
être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée par
Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France): "manque
un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui permet
de connaître la dimension réelle qu'aura un objet (shape) lorsqu'on lui
impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut pas
être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée par
Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France): "manque
un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui permet
de connaître la dimension réelle qu'aura un objet (shape) lorsqu'on lui
impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut pas
être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée par
Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Je mets de côté ! merci d'avoir fait la compil de cette discussion
Trirème ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.netConcernant un post sur MPFE du 1 janvier 2008 21:29 (en France):
"manque un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui
permet de connaître la dimension réelle qu'aura un objet (shape)
lorsqu'on lui impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut
pas être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée
par Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Je mets de côté ! merci d'avoir fait la compil de cette discussion
Trirème ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France):
"manque un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui
permet de connaître la dimension réelle qu'aura un objet (shape)
lorsqu'on lui impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut
pas être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée
par Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Je mets de côté ! merci d'avoir fait la compil de cette discussion
Trirème ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.netConcernant un post sur MPFE du 1 janvier 2008 21:29 (en France):
"manque un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui
permet de connaître la dimension réelle qu'aura un objet (shape)
lorsqu'on lui impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut
pas être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée
par Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France): "manque
un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui permet
de connaître la dimension réelle qu'aura un objet (shape) lorsqu'on lui
impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut pas
être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée par
Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France): "manque
un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui permet
de connaître la dimension réelle qu'aura un objet (shape) lorsqu'on lui
impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut pas
être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée par
Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France): "manque
un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui permet
de connaître la dimension réelle qu'aura un objet (shape) lorsqu'on lui
impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut pas
être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée par
Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée
' Une boucle inscrit dans 3 colonnes distinctes la hauteur souhaitée,
' la hauteur "arrondie" par Excel et la hauteur obtenue par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à l'objet...
Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
le pixel dépend en effet de la partie physique, donc variable selon le
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
le pixel dépend en effet de la partie physique, donc variable selon le
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
le pixel dépend en effet de la partie physique, donc variable selon le
...après test en résumé Excel passe par paliers de 0.25
NON, regarde bien les résultats obtenus. Lorsqu'on incrémente par pas de 1,
du coup selon cette formule le calculé et le "arrondi" sont les mêmes.
Tout à fait, le calculé, permet de savoir à l'avance la valeur qu'Excel utilisera.
Donc en prenant le calcul même en double cela reste à 0.25 lorsqu'on a
dimensionné soi même des cellules et par macro c'est pire puisqu'on ne
peut utiliser que columnwidth et non width qui est en lecture seule.
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
C'est bien cela?
Et ouais :-(
Enfin tout de même c'est pas dramatique pour une vue normale 0.25 c'est
pas flagrant
Si j'ai travaillé dessus, c'est parce que je dessinais des formes en utilisant
...après test en résumé Excel passe par paliers de 0.25
NON, regarde bien les résultats obtenus. Lorsqu'on incrémente par pas de 1,
du coup selon cette formule le calculé et le "arrondi" sont les mêmes.
Tout à fait, le calculé, permet de savoir à l'avance la valeur qu'Excel utilisera.
Donc en prenant le calcul même en double cela reste à 0.25 lorsqu'on a
dimensionné soi même des cellules et par macro c'est pire puisqu'on ne
peut utiliser que columnwidth et non width qui est en lecture seule.
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
C'est bien cela?
Et ouais :-(
Enfin tout de même c'est pas dramatique pour une vue normale 0.25 c'est
pas flagrant
Si j'ai travaillé dessus, c'est parce que je dessinais des formes en utilisant
...après test en résumé Excel passe par paliers de 0.25
NON, regarde bien les résultats obtenus. Lorsqu'on incrémente par pas de 1,
du coup selon cette formule le calculé et le "arrondi" sont les mêmes.
Tout à fait, le calculé, permet de savoir à l'avance la valeur qu'Excel utilisera.
Donc en prenant le calcul même en double cela reste à 0.25 lorsqu'on a
dimensionné soi même des cellules et par macro c'est pire puisqu'on ne
peut utiliser que columnwidth et non width qui est en lecture seule.
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
C'est bien cela?
Et ouais :-(
Enfin tout de même c'est pas dramatique pour une vue normale 0.25 c'est
pas flagrant
Si j'ai travaillé dessus, c'est parce que je dessinais des formes en utilisant
...après test en résumé Excel passe par paliers de 0.25
NON, regarde bien les résultats obtenus. Lorsqu'on incrémente par pas de
1, Excel incrémente irrégulièrement de 0,75 ou de 0,5 =-O !!
Pour mieux comprendre les variations, dans mon programme test on peut
changer la boucle avec un pas plus petit :
For i = 2 To 200 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i / 10 ' On impose une hauteur à
l'objet...
Range("B" & i) = i / 10
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 * i / 10 + 0.5) *
3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Nextdu coup selon cette formule le calculé et le "arrondi" sont les mêmes.
Tout à fait, le calculé, permet de savoir à l'avance la valeur qu'Excel
utilisera.
Donc en prenant le calcul même en double cela reste à 0.25 lorsqu'on a
dimensionné soi même des cellules et par macro c'est pire puisqu'on ne
peut utiliser que columnwidth et non width qui est en lecture seule.
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut
une largeur précise...
C'est bien cela?
Et ouais :-(
Enfin tout de même c'est pas dramatique pour une vue normale 0.25
c'est pas flagrant
Si j'ai travaillé dessus, c'est parce que je dessinais des formes en
utilisant des couleurs différentes (vert ou rouge, bon ou mauvais) selon
la taille calculée. Or, à l'écran, j'obtenais des tailles identiques
avec des couleurs différentes.
Exemple, trait vert si inférieur à limite, rouge si supérieur à limite :
hauteur limite = 10
hauteur calculée = 9,5 --> vert, taille réelle d'Excel : 9,75
hauteur calculée = 10,1 --> rouge, taille réelle d'Excel : 9,75 également
...après test en résumé Excel passe par paliers de 0.25
NON, regarde bien les résultats obtenus. Lorsqu'on incrémente par pas de
1, Excel incrémente irrégulièrement de 0,75 ou de 0,5 =-O !!
Pour mieux comprendre les variations, dans mon programme test on peut
changer la boucle avec un pas plus petit :
For i = 2 To 200 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i / 10 ' On impose une hauteur à
l'objet...
Range("B" & i) = i / 10
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 * i / 10 + 0.5) *
3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
du coup selon cette formule le calculé et le "arrondi" sont les mêmes.
Tout à fait, le calculé, permet de savoir à l'avance la valeur qu'Excel
utilisera.
Donc en prenant le calcul même en double cela reste à 0.25 lorsqu'on a
dimensionné soi même des cellules et par macro c'est pire puisqu'on ne
peut utiliser que columnwidth et non width qui est en lecture seule.
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut
une largeur précise...
C'est bien cela?
Et ouais :-(
Enfin tout de même c'est pas dramatique pour une vue normale 0.25
c'est pas flagrant
Si j'ai travaillé dessus, c'est parce que je dessinais des formes en
utilisant des couleurs différentes (vert ou rouge, bon ou mauvais) selon
la taille calculée. Or, à l'écran, j'obtenais des tailles identiques
avec des couleurs différentes.
Exemple, trait vert si inférieur à limite, rouge si supérieur à limite :
hauteur limite = 10
hauteur calculée = 9,5 --> vert, taille réelle d'Excel : 9,75
hauteur calculée = 10,1 --> rouge, taille réelle d'Excel : 9,75 également
...après test en résumé Excel passe par paliers de 0.25
NON, regarde bien les résultats obtenus. Lorsqu'on incrémente par pas de
1, Excel incrémente irrégulièrement de 0,75 ou de 0,5 =-O !!
Pour mieux comprendre les variations, dans mon programme test on peut
changer la boucle avec un pas plus petit :
For i = 2 To 200 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i / 10 ' On impose une hauteur à
l'objet...
Range("B" & i) = i / 10
Range("C" & i) = Selection.ShapeRange.Height ' … Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 * i / 10 + 0.5) *
3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Nextdu coup selon cette formule le calculé et le "arrondi" sont les mêmes.
Tout à fait, le calculé, permet de savoir à l'avance la valeur qu'Excel
utilisera.
Donc en prenant le calcul même en double cela reste à 0.25 lorsqu'on a
dimensionné soi même des cellules et par macro c'est pire puisqu'on ne
peut utiliser que columnwidth et non width qui est en lecture seule.
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut
une largeur précise...
C'est bien cela?
Et ouais :-(
Enfin tout de même c'est pas dramatique pour une vue normale 0.25
c'est pas flagrant
Si j'ai travaillé dessus, c'est parce que je dessinais des formes en
utilisant des couleurs différentes (vert ou rouge, bon ou mauvais) selon
la taille calculée. Or, à l'écran, j'obtenais des tailles identiques
avec des couleurs différentes.
Exemple, trait vert si inférieur à limite, rouge si supérieur à limite :
hauteur limite = 10
hauteur calculée = 9,5 --> vert, taille réelle d'Excel : 9,75
hauteur calculée = 10,1 --> rouge, taille réelle d'Excel : 9,75 également
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
le pixel dépend en effet de la partie physique, donc variable selon le
périphérique(marque, résolution)
le Twips est screen-independent (1440 twips par pouce, ou 567 twips par cm)
selon le periphérique il y a donc une relation variable pixel/twips
!!!!
supreme raffinement les pixels ne sont pas circulaires mais ovales !!!!!
http://support.microsoft.com/kb/463203/fr
http://support.microsoft.com/kb/210590
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q94927
Le twip logique
Une unité de distance, reposant sur twips, qui lors de l'impression, équivaut à
un twip.
Cela permet de s'assurer que le placement et la proportion d'éléments d'écran
dans l'écran d'affichage de la même application sur tous les systèmes.
A unit of distance, based on twips, that when printed, equals one twip.
This ensures that placement and proportion of screen elements in your screen
application display the same on all systems.
Un twip est une unité de longueur égale à 1 / 20 d'une imprimante, une
imprimante et le point est 1 / 72 de pouce. Il ya environ 1440 twips à une
logique pouces ou 567 twips à une logique centimètre (la longueur d'un élément
d'écran, mesurant un pouce ou d'un centimètre lors de l'impression).
A twip is a unit of length equal to 1/20 of a printer's point, and a printer's
point is 1/72 of an inch. There are approximately 1440 twips to a logical inch
or 567 twips to a logical centimeter (the length of a screen item measuring one
inch or one centimeter when printed).
Toute unité de mesure absolue, comme les pouces, centimètres ou twips, n'est pas
nécessairement compatible lorsqu'ils traitent avec les périphériques externes
tels que des moniteurs ou des imprimantes. Si, par exemple, vous programmez la
dessiner une ligne d'un pouce sur l'écran, le mesurer avec une règle pour
s'assurer qu'elle est un pouce, puis passez à un plus grand écran, la ligne ne
sera plus un pouce. Par conséquent, l'une logique twip peut être constituée
d'une ou plusieurs twips.
Any absolute unit of measurement, such as inches, centimeters, or twips, is not
necessarily consistent when dealing with external devices such as monitors or
printers. If, for example, you programmatically draw a one inch line on a
monitor, measure it with a ruler to ensure that it is one inch, then switch to a
larger monitor, the line will no longer be one inch. Therefore, one logical twip
may consist of one or more twips.
@+
;o)))
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :
Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
le pixel dépend en effet de la partie physique, donc variable selon le
périphérique(marque, résolution)
le Twips est screen-independent (1440 twips par pouce, ou 567 twips par cm)
selon le periphérique il y a donc une relation variable pixel/twips
!!!!
supreme raffinement les pixels ne sont pas circulaires mais ovales !!!!!
http://support.microsoft.com/kb/463203/fr
http://support.microsoft.com/kb/210590
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q94927
Le twip logique
Une unité de distance, reposant sur twips, qui lors de l'impression, équivaut à
un twip.
Cela permet de s'assurer que le placement et la proportion d'éléments d'écran
dans l'écran d'affichage de la même application sur tous les systèmes.
A unit of distance, based on twips, that when printed, equals one twip.
This ensures that placement and proportion of screen elements in your screen
application display the same on all systems.
Un twip est une unité de longueur égale à 1 / 20 d'une imprimante, une
imprimante et le point est 1 / 72 de pouce. Il ya environ 1440 twips à une
logique pouces ou 567 twips à une logique centimètre (la longueur d'un élément
d'écran, mesurant un pouce ou d'un centimètre lors de l'impression).
A twip is a unit of length equal to 1/20 of a printer's point, and a printer's
point is 1/72 of an inch. There are approximately 1440 twips to a logical inch
or 567 twips to a logical centimeter (the length of a screen item measuring one
inch or one centimeter when printed).
Toute unité de mesure absolue, comme les pouces, centimètres ou twips, n'est pas
nécessairement compatible lorsqu'ils traitent avec les périphériques externes
tels que des moniteurs ou des imprimantes. Si, par exemple, vous programmez la
dessiner une ligne d'un pouce sur l'écran, le mesurer avec une règle pour
s'assurer qu'elle est un pouce, puis passez à un plus grand écran, la ligne ne
sera plus un pouce. Par conséquent, l'une logique twip peut être constituée
d'une ou plusieurs twips.
Any absolute unit of measurement, such as inches, centimeters, or twips, is not
necessarily consistent when dealing with external devices such as monitors or
printers. If, for example, you programmatically draw a one inch line on a
monitor, measure it with a ruler to ensure that it is one inch, then switch to a
larger monitor, the line will no longer be one inch. Therefore, one logical twip
may consist of one or more twips.
@+
;o)))
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :Cela reviendrait donc à dire qu'on ne peut pas fixer comme on veut une
largeur précise...
le pixel dépend en effet de la partie physique, donc variable selon le
périphérique(marque, résolution)
le Twips est screen-independent (1440 twips par pouce, ou 567 twips par cm)
selon le periphérique il y a donc une relation variable pixel/twips
!!!!
supreme raffinement les pixels ne sont pas circulaires mais ovales !!!!!
http://support.microsoft.com/kb/463203/fr
http://support.microsoft.com/kb/210590
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q94927
Le twip logique
Une unité de distance, reposant sur twips, qui lors de l'impression, équivaut à
un twip.
Cela permet de s'assurer que le placement et la proportion d'éléments d'écran
dans l'écran d'affichage de la même application sur tous les systèmes.
A unit of distance, based on twips, that when printed, equals one twip.
This ensures that placement and proportion of screen elements in your screen
application display the same on all systems.
Un twip est une unité de longueur égale à 1 / 20 d'une imprimante, une
imprimante et le point est 1 / 72 de pouce. Il ya environ 1440 twips à une
logique pouces ou 567 twips à une logique centimètre (la longueur d'un élément
d'écran, mesurant un pouce ou d'un centimètre lors de l'impression).
A twip is a unit of length equal to 1/20 of a printer's point, and a printer's
point is 1/72 of an inch. There are approximately 1440 twips to a logical inch
or 567 twips to a logical centimeter (the length of a screen item measuring one
inch or one centimeter when printed).
Toute unité de mesure absolue, comme les pouces, centimètres ou twips, n'est pas
nécessairement compatible lorsqu'ils traitent avec les périphériques externes
tels que des moniteurs ou des imprimantes. Si, par exemple, vous programmez la
dessiner une ligne d'un pouce sur l'écran, le mesurer avec une règle pour
s'assurer qu'elle est un pouce, puis passez à un plus grand écran, la ligne ne
sera plus un pouce. Par conséquent, l'une logique twip peut être constituée
d'une ou plusieurs twips.
Any absolute unit of measurement, such as inches, centimeters, or twips, is not
necessarily consistent when dealing with external devices such as monitors or
printers. If, for example, you programmatically draw a one inch line on a
monitor, measure it with a ruler to ensure that it is one inch, then switch to a
larger monitor, the line will no longer be one inch. Therefore, one logical twip
may consist of one or more twips.
@+
;o)))
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France):
"manque un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui
permet de connaître la dimension réelle qu'aura un objet (shape)
lorsqu'on lui impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut
pas être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée
par Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée ' Une boucle inscrit dans 3 colonnes distinctes la hauteur
souhaitée, ' la hauteur "arrondie" par Excel et la hauteur obtenue
par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à
l'objet... Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' . Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France):
"manque un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui
permet de connaître la dimension réelle qu'aura un objet (shape)
lorsqu'on lui impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut
pas être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée
par Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée ' Une boucle inscrit dans 3 colonnes distinctes la hauteur
souhaitée, ' la hauteur "arrondie" par Excel et la hauteur obtenue
par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à
l'objet... Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' . Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Concernant un post sur MPFE du 1 janvier 2008 21:29 (en France):
"manque un bout de code..." par Emma.
Plus précisément, voir l'échange 2 janvier 2008 17:36
Pour compléter ce post entre lSteph et moi, voici la formule qui
permet de connaître la dimension réelle qu'aura un objet (shape)
lorsqu'on lui impose une taille précise.
ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
En soi la formule n'est pas compliquée, mais comme la taille ne peut
pas être inférieure à 0,75, la fonction Max l'alourdit un peu.
Le code suivant affiche une taille souhaitée et la taille conservée
par Excel.
Sub VerifHauteurObjet()
'
' Macro enregistrée le 03/01/2008 par Trirème
' Lorsqu'on impose une taille à un objet
' Excel "arrondit" cette valeur et l'objet peut avoir une taille non
souhaitée ' Une boucle inscrit dans 3 colonnes distinctes la hauteur
souhaitée, ' la hauteur "arrondie" par Excel et la hauteur obtenue
par calcul.
Dim i As Integer
Sheets.Add ' On insère un rectangle dans une nouvelle feuille...
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0#, 0#, 60#, 12.75). _
Select
Range("B1") = "Haut. souhaitée"
Range("C1") = "Haut. ""corrigée"" par Excel"
Range("D1") = "Haut. calculée"
For i = 2 To 100 ' ... et on fait varier sa hauteur dans une boucle
Selection.ShapeRange.Height = i ' On impose une hauteur à
l'objet... Range("B" & i) = i
Range("C" & i) = Selection.ShapeRange.Height ' . Puis on lit la
hauteur de l'objet
Range("D" & i) = Application.Max(3 / 4, Int(4 / 3 *
Selection.ShapeRange.Height + 0.5) * 3 / 4)
' ValeurRéelle = MAX(3/4, INT(4/3 * ValeurSouhaitée + 0.5) * 3/4)
' La comparaison des ValeurSouhaitée et ValeurRéelle
' permet d'apprécier les différences
Next
End Sub
Cordialement,
Bonjour, *Trirème LSteph et Modeste*
ET COMMENT SE FAIT-IL QUE CE NE SOIT PAS ENCORE SUR XlWiki ???
m'enfin...
Bonjour, *Trirème LSteph et Modeste*
ET COMMENT SE FAIT-IL QUE CE NE SOIT PAS ENCORE SUR XlWiki ???
m'enfin...
Bonjour, *Trirème LSteph et Modeste*
ET COMMENT SE FAIT-IL QUE CE NE SOIT PAS ENCORE SUR XlWiki ???
m'enfin...