Mise en page 1/1

Pour ne plus à avoir à répéter les mêmes clics, une macro d’automatisation de la mise en page de l’impression de la feuille active avec les caractéristiques suivantes :

  • Format paysage
  • Marge étroite
  • Une seule page
  • Contenu centré horizontalement et verticalement 
Sub ImprimerFeuilleSurPage()
'----------------------------------------------------------------------------------
'Macro d'automatisation de l'impression de la feuille active sur une seule page :
'-Format portrait
'-Marge étroite
'-Une seule page
'-Contenu centré horizontalement et verticalement
'Auteur : Excellons.org
'Date : mai 2015
'----------------------------------------------------------------------------------
    With ActiveSheet.PageSetup              'On pointe sur la mise en page de la feuille active
        'On définit les marges étroites
        .LeftMargin = Application.InchesToPoints(0.236220472440945)
        .RightMargin = Application.InchesToPoints(0.236220472440945)
        .TopMargin = Application.InchesToPoints(0.748031496062992)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        'On positionne la feuille dans la page
        .CenterHorizontally = True          'On centre horizontalement
        .CenterVertically = True            'On centre verticalement
        .Orientation = xlLandscape          'On passe au format portrait
        'On spécifie l'impression sur une page unique
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
End Sub

VBA: Les Commentaires

Comment commenter le code VBA ?

 

Dans VBA, il suffit de faire précéder une partie de texte par une « apostrophe » pour en faire un commentaire.

Afin de visualiser les commentaires commodément, l’éditeur VBA (VBE) les colore automatiquement en vert les commentaires.

Pour rendre notre code plus accessible, faisons figurer ainsi un texte explicatif aux endroits nécessaires :

  • En tête d’un module VBA
  • En tête d’une procédure
  • A n’importe quel endroit du code nécessitant une explication

 Par exemple :

Les commentaires VBA

VBA: L’option Explicit

Pourquoi systématiquement utiliser « VBA Option Explicit » ?

 

Mieux qu’un long argumentaire, illustrons le problème tel qu’il se pose fréquemment.

Envisageons  un module VBA sans « Option Explicit » contenant la procédure simplissime ‘AquoiSertOptionExplicit’ :

Sub AquoiSertOptionExplicit()
    Dim sUneVariable As String
    sUneVariable = "C'est la valeur"
    MsgBox "La valeur de la variable est :" & UneVariable
End Sub

Remarquons qu’une erreur s’est glissée lors de l’écriture de cette procédure : la variable affichée avec l’instruction « Msgbox » est ‘UneVariable’ alors que la variable valorisée dans la ligne précédente est ‘sUneVariable’.

(Que nous soyons novices ou aguerris en programmation, nous faisons très régulièrement ce type de coquille.) 

A l’exécution, aucune erreur ne se produit et le message affiché se présente ainsi :

A ce résultat, nous nous questionnons  : pourquoi cela ne correspond pas à ce que nous attendions ?

Nous chercherons l’origine du problème, en envisageant parfois de nombreuses hypothèses (qui s’avèreront inexactes) et perdrons beaucoup de temps avant de trouver la solution.

(Cet exemple est trivial et nous devrions le résoudre rapidemment. Dans  la réalité, il n’en est pas toujours de même.)

Ajoutons maintenant l’option Explicit’ dans la première ligne du module VBA :

Si maintenant, nous exécutons la procédure, un message d’erreur de compilation s’affiche tout en surlignant la variable non définie « UneVariable » : 

Il nous sera alors aisé de comprendre l’origine du problème et de corriger notre erreur d’écriture.

EN CONCLUSION

Ajoutons systématiquement ‘Option Explicit’ en tête de chacun de nos modules.

Remarque 1

Nous systématiserons l’ajout de ‘Option Explicit’ en tête de chaque module créé en cochant le paramètre ‘Déclaration des variables obligatoire’ de la boîte de dialogue ‘Options’ que l’on active par le menu VBA ‘Outils<Options…’ :

Remarque 2

Les macros créées par l’enregistreur de macro s’insèrent dans des modules ne possédant pas l’option ‘explicit’ lorsque la case

Déclaration des variables obligatoire’ n’a pas été cochée.

Remarque 3

Les modules attachés aux objets Excel (« Thisworkbook », « Feuil1 »…) de possèdent pas par défaut l’option Explicit. Il est conseillé de l’ajouter si nous plaçons du code dans ces modules.

 

Allons vers d’autres articles “Bonnes Pratiques VBA”.