Bonjour,
Je travaille sous Access 2010 et implémente actuellement un rapport Word dans lequel je rentre certaines données en fonction de ce que l'utilisateur a choisi. Pour ce faire, j'utilise un objet RichText pour concaténer mes données selon plusieurs mises en forme puis les colle dans la cellule adéquate. L'écriture du contenu se fait parfaitement bien.
L'ennui c'est qu'au moment du collage du RichText dans le tableau, il ajoute automatiquement des espaces avant les sauts de ligne... c'est moche et mon rapport prend 23 pages en plus... (c'est un rapport d'~100 pages de données).
Après recherches et essais, je ne crois pas qu'il soit possible d'implémenter la logique suivante :
- Sélectionner le tableau
- Cliquer sur "Supprimer l'espace avant/après le paragraphe"
J'ai donc expérimenté sur le générateur automatique de macro Word et ai trouvé le code suivant qui fonctionne très bien sous Word :
Je l'ai inclus à mon module Access ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Selection.Tables(1).Select With Selection.ParagraphFormat .SpaceBefore = 1.5 .SpaceBeforeAuto = False .SpaceAfter = 1.5 .SpaceAfterAuto = False .LineSpacingRule = wdLineSpaceSingle .LineUnitBefore = 0 .LineUnitAfter = 0 End With
Mais à la ligne With Selection.ParagraphFormat il me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ActiveDocument.Tables(Index).Select With Selection.ParagraphFormat .SpaceBefore = 1.5 .SpaceBeforeAuto = False .SpaceAfter = 1.5 .SpaceAfterAuto = False .LineSpacingRule = wdLineSpaceSingle .LineUnitBefore = 0 .LineUnitAfter = 0 End With
Erreur d'éxécution '91' : Variable objet ou variable de bloc With non définie
J'ai essayé de traiter juste une colone de mon tableau mais cette fois sur ActiveDocument.Tables(Index).Column(I).Select (I allant de 2 à 4) j'ai :
Erreur d'éxécution '5992' : Impossible d'accéder à des colonnes individuelles de cette collection car le tableau possède des cellules de largeurs différentes
Parce que mon tableau a des cellules fusionnées (titre des sous-parties pour classer les données).
Vu la complexité de remplissage du tableau, il n'est pas envisageable d'appliquer la mis en forme au fur et à mesure, j'ai un impératif de temps d'édition...
Merci pour votre aide
(N'hésitez pas à me dire rapidement s'il vaut mieux que je poste sur VBA Access, je savais pas trop)
Partager