Problème d'unité dans Excel

Signaler
Messages postés
37
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 avril 2011
-
Messages postés
37
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 avril 2011
-
Bonjour tout le monde,

J'ai un énorme problème avec Excel que je gère depuis VB 2005.

Après quelques recherches j'ai découvert que la largeur des colonnes dans Excel était spécifiée en caractères.
Un caractère représentant le nombre de symbole "0" dans la police par défaut qu'il est possible d'afficher dans une colonne.

Comme mon application doit gérer les largeurs de colonnes sous forme de millimètres. J'ai réalisé une fonction de conversion. Pour la valeur de conversion, j'ai pris un document excel vierge sans marges, créer une colonne qui prend toute la largeur de la page, et pris la taille en caractères de cette cellule. j'obtiens donc :

106.5 caractères --> 210 mm

J'ai fais une règle de trois avec tout ça et le tour est joué.

Le programme marche bien si je n'ai qu'une seule colonne. Par contre, plus j'ajoute de colonnes à mon document, plus le document dépasse de la page (En fait, chaque fois que j'ajoute des colonnes, je devrait baisser la largeur en caractères d'une page, ce qui n'est pas logique)

Par exemple, si j'ai 45 colonnes, un quart de ma page se trouve sur la deuxième page.
J'ai donc fais quelques recherches et quelques calculs pour vérifier ce qui est affiché dans Excel.

Dans le cas d'une colonne :
Largeur de la colonne : 96.43 caractères
Correspondance en cm (mesuré grâce au mode "mise en page" de Excel 2007) : 18.92 cm

Dans le cas de deux colonnes :

Largeur des colonnes :

Colonne 1 : 48.14 caractères
Colonne 2 : 48.14 caractères
-----------------------------
Total : 96.28 caractères (Moins que pour la colonne unique donc)

Correspondance en cm (toujours mesuré grâce au mode "mise en page" de Excel 2007) :

Colonne 1 : 9.53 cm
Colonne 2 : 9.53 cm
-------------------
Total : 19.06 centimètres (Plus que pour la colonne unique ici !!!)

Il y a donc un sérieux problème de correspondance entre les caractères et les centimètres, même en interne d'Excel.

Quelqu'un as-t-il déjà eu ce genre de problème avec des cellules? Y a-t-il des marges non affichées entre chaque colonne d'une feuille? Y a-t-il un meilleur moyen de faire la transition entre caractères/millimètres pour les colonnes Excel?
Merci d'avance

4 réponses

Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour Lanono

Oui, j'ai rencontré cette difficulté. Ma solution : interdire le saut de page horizontal. De cette façon, Excel se dépatouille pour que toutes les colonnes s'affichent sur la même page :

    ActiveSheet.VPageBreaks(1).DragOff xlToRight, 1

Amicalement
Messages postés
37
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 avril 2011
1
Bonjour Orohena, merci de ta réponse.

J'ai essayé ta solution mais mon code génère une exception sur cette ligne comme "Index non valide" j'ai regardé le nombré de sauts de pages et on me retourne 0. alors que mon document est sur deux pages horizontalement.

Le problème vient-il du fait que je n'ai pas mis de saut de page "par le code" après ma dernière colonne?
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour LaNono

Non, le problème ne vient pas d'un saut "par le code" après la dernière colonne.
J'essaie de comprendre comment tu document tient sur deux pages horizontalement sans que tu aies de saut de page vertical. Si tu fais affichage > aperçu des sauts de page, vois-tu une ligne pointillée verticale te signalant la séparation entre les pages ? Normalement, cette séparation correspond à un saut de page. Il y a un truc qui m'échappe...
Messages postés
37
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 avril 2011
1
Bonjour Orohena

Oui, je vois bien cette ligne en pointillé et ma dernière colonne est à droite de cette ligne. par contre, si je lis le nombre de sauts de page, VB me retourne 0. c'est vraiment bizzare