Bonjour a tous
je voudrais savoir si cela est possible ,connaitre le rowheight par defaut des cellules sans passer par une cellule par VBA bien entendu
Bonjour a tous
je voudrais savoir si cela est possible ,connaitre le rowheight par defaut des cellules sans passer par une cellule par VBA bien entendu
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Salut,
encore du theorycraft ?
https://support.office.com/fr-fr/art...8-9774a0905f46
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
Bonjour,
la taille par défaut étant liée à la taille de police d'écriture par défaut, à toi de voir si un coefficient constant te permet de retrouver ça
sinon, par accès direct, je n'ai jamais vu de propriété pour récupérer cette valeur, ptet dans le registre ??
@jean philippe André
le soucis chez moi sur W7 et 2007 j'ai 14.4 et 14.7 sur W10 et 2010 d'origine dans un fichier viergeSur une feuille de calcul, vous pouvez indiquer une largeur de colonne de 0 (zéro) à 255. Cette valeur représente le nombre de caractères qui peuvent être affichés dans une cellule mise en forme avec la police standard. La largeur par défaut d’une colonne est égale à 8,43 caractères. Si une colonne a une largeur de 0 (zéro), la colonne sera masquée.
Vous pouvez définir une hauteur de ligne de 0 (zéro) à 409. Cette valeur représente la mesure de la hauteur en points (1 point est égal à environ 0,035 cm). La hauteur de ligne par défaut est égale à 12,75 points (environ 0,4 cm). Si une ligne a une hauteur de 0 (zéro), la ligne sera masquée.
avec
le tout en point bien évidement
Code : Sélectionner tout - Visualiser dans une fenêtre à part msgbox [A1].rowheight
alors je suis en dpi 120 (125%)
OK j'ai essayé la division (pourcentage)soit 14.4*0.85 j'obtient 12.24 pour 2007
c'est donc pas ca
@joe
j'ai cherché déjà dans regedit je n'ai rien trouvé
va démêler le faux du vrai toi
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Est-ce qu'il s'agit, dans les deux cas des même caractéristique de police par défaut (même nom, taille, graisse, etc.) ?
Si ce n'est pas le cas :
https://msdn.microsoft.com/fr-fr/lib.../ff822527.aspx
https://msdn.microsoft.com/fr-fr/lib.../ff196551.aspx
ou bien Fichier > Option > Général > Lors de la création de classeur
Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.
oui c'est le même fichier
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
vérifié c'est pareille size 11 et "calibri"
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Bonjour
les dépendances sont les suivantes :
1) par rapport à la police par défaut.
Mais attention :
a) il n'y a pas de proportionnalité entre la taille de la police et l'occupation graphique (non linéaire)
b) pour la même police et deux tailles distinctes, Excel "ajuste", lorsqu'il le peut, les marges haute et basse. Ce qui fait que deux tailles différentes peuvent ici et/ou là conduire à la même hauteur de rang (seule la marge haute étant alors "adaptée").
2) Le DPI . Pour un même résultat de calcul de hauteur, Excel ne pourra retenir que la hauteur "admissible" la plus proche. Or cette "admissibilité" répond à une "cadence" de tailles distincte selon le DPI (j'en ai parlé dans au moins deux discussions récentes).
Autant il est possible de palier (par des calculs) la difficulté N° 2, autant celle n° 1 ne saurait être résolue sans avoir accès au code écrit par Microsoft.
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Bonjour,
Cette discussion semble résolue.
Si tel est le cas, je n'y ai pas vu la solution...
Voici mon petit caillou à l'édifice :
Ne reste qu'à extraire de la variable ExtraitXML la valeur par défaut choisie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Option Explicit Sub ValeursParDefaut() Dim ExtraitXML As String ExtraitXML = Range("A1").Value(xlRangeValueXMLSpreadsheet) Debug.Print ExtraitXML End Sub
Attention toutefois, cette valeur par défaut peut évoluer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub essai() Dim ExtraitXML As String Range("A1:A" & ActiveSheet.Rows.Count).RowHeight = 15 ExtraitXML = Range("A1").Value(xlRangeValueXMLSpreadsheet) Debug.Print ExtraitXML Stop Range("A1:A" & ActiveSheet.Rows.Count).RowHeight = 12 ExtraitXML = Range("A1").Value(xlRangeValueXMLSpreadsheet) Debug.Print ExtraitXML End Sub
Cordialement,
Franck
bien vu pijaku
je me demandais depuis quelque temps comment aller récupérer les dims dans le xml du classeur sans le sauver en xml car je fessais comme ca jusqu'à maintenant
oui pour éviter de prendre une cellule qui aurait évolué je prends la (rows.count,columns.count) il y a plus de chance qu'elle soit vierge de toute modifs
en tout cas bien vu si j'avais su je t'aurais poser la question avant pour le xml
je viens de verifier
en plus top du top j'ai le defaut et le height actuel (modifié)
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
<Worksheet ss:Name="Feuil1">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1"
ss:DefaultColumnWidth="62.400000000000006" ss:DefaultRowHeight="14.4">
<Row ss:AutoFitHeight="0" ss:Height="39.6"/>
</Table>
</Worksheet>
</Workbook>
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Bonjour Patrick,
Pour modifier le RowHeight par défaut d'une feuille, il faut modifier la hauteur de toutes ses lignes.
Donc que tu prennes A1 ou IV65536, peu importe.
ps : je sais, je ne suis pas un foudre de guerre en manipulation de caractères... Mais bon, ça fonctionne!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Option Explicit Property Get DefaultRowHeight(Sh As Worksheet) As Double Dim Temp As String Temp = Sh.Range("A1").Value(xlRangeValueXMLSpreadsheet) Temp = Mid(Temp, InStr(Temp, "ss:DefaultRowHeight=""") + 21) DefaultRowHeight = ExtractNumber(Temp) End Property Property Let DefaultRowHeight(Sh As Worksheet, RowHeigh As Double) Sh.Range("A1:A" & Rows.Count).RowHeight = RowHeigh End Property Sub test() Dim ParDefaut As Double, Sht As Worksheet 'Get RowHeight par défaut de la feuille active ParDefaut = DefaultRowHeight(ActiveSheet) Debug.Print ParDefaut 'Set RowHeight par défaut de la feuille active DefaultRowHeight(ActiveSheet) = 17.8 Debug.Print DefaultRowHeight(ActiveSheet) DefaultRowHeight(ActiveSheet) = ParDefaut 'Get RowHeight par défaut de l'Application Set Sht = ThisWorkbook.Sheets.Add Debug.Print DefaultRowHeight(Sht) Application.DisplayAlerts = False Sht.Delete Application.DisplayAlerts = True End Sub Private Function ExtractNumber(Chaine As String) As Double Dim i& i = 1 Do While IsNumeric(Mid(Chaine, i, 1)) Or Mid(Chaine, i, 1) = "." i = i + 1 Loop ExtractNumber = Val(Mid(Chaine, 1, i)) End Function
PS2 : si tu veux une autre particularité de la propriété Value des cellules, tu peux également essayer ceci :
===== lien MSDN =====
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim temp temp = Range("A1:C20").Value(xlRangeValueMSPersistXML) Debug.Print temp
Cordialement,
Franck
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager