Calcul du nombre de page à imprimer

malo47 - 10 avril 2013 à 09:20
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 10 avril 2013 à 15:28
bonjour,

j'utilise une macro sur Excel 2007 et qui tourne à merveille (calculer le format papier afin qu'il n'y ai qu'une seule page à imprimer, de A4 à A0). Mais cette fonction n'est pas prise en compte dans Excel 2010.


la fonction le_nombre_de_page = ExecuteExcel4Macro("GET.DOCUMENT(50)")

n'est pas calculée dans 2010. et ca un peu mon chef..
cela ne remonte pas d'erreur, mais ce n'est pas pris en compte.. donc j'ai un peu les boules..

qui pourrais m'aider?



For x_connaitre_le_nombre_de_page = 1 To 9


le_nombre_de_page = ExecuteExcel4Macro("GET.DOCUMENT(50)")


If le_nombre_de_page > 1 And x_connaitre_le_nombre_de_page <> 9 Then
x_connaitre_le_nombre_de_page = x_connaitre_le_nombre_de_page + 1
With ActiveSheet.PageSetup
.Orientation = xlPortrait
.PaperSize = xlPaperA4
End With
taille_du_format_pour_impression = "A4V"
Else: x_connaitre_le_nombre_de_page = 9
End If


le_nombre_de_page = ExecuteExcel4Macro("GET.DOCUMENT(50)")

If le_nombre_de_page > 1 And x_connaitre_le_nombre_de_page <> 9 Then
x_connaitre_le_nombre_de_page = x_connaitre_le_nombre_de_page + 1
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.PaperSize = xlPaperA3
End With
taille_du_format_pour_impression = "A3H"
Else: x_connaitre_le_nombre_de_page = 9

End If

' etc.... jusqu'au format A0


Next

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 avril 2013 à 09:39
Bonjour,
Tu n'es pas le premier à reporter cette difficulté.
Il semble (de mémoire) que la version 2010 inclut bien l'utilisation de ExecuteExcel4Macro, mais que cette dernière n'est prise en compte que si "directement" utilisée/écrite depuis l'éditeur, en mode création.
Pour être plus clair : très curieusement, elle serait totalement ignorée si écrite depuis une autre version, puis code passé à 2010 !
Tout se passe comme si VBA/Excel "intervenait" au moment même de l'écriture du code (avant la compilation !)
je ne me rappelle plus où, quand et comment j'ai lu/vu cela, mais vais chercher (ma mémoire est en général très bonne).




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 avril 2013 à 09:52
Voilà (cela m'a pris moins de temps que je ne le pensais).
Va lire cette discussion :Tapez le texte de l'url ici.
La partie intéressante (et qui confirme ce que ma mémoire avait enregistré) est dans le tout dernier message de la discussion.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 avril 2013 à 15:28
Bonjour,

Est-ce que tu as déjà essayé ceci ?
ActiveSheet.HPageBreaks.Count + 1

Il y a aussi VPageBreaks pour le nombre de page en largeur

Peut-être que ça pourrait aider (?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous