Bonjour à toutes et à tous j'espère que vous passez une agréable journée en ce mois de juin,
Je viens vers vous aujourd'hui pour un petit problème qui me fait tourner en rond depuis hier matin, tout d'abord je m'excuse pour la quantité de texte d'explication qui va suivre mais je pense qu'un max d'infos est indispensable pour résoudre mon problème.
Pour commencer j'ai été engagé en temps que stagiaire dans une petite startup afin de créer dans macro en VBA sur Excel-Word, mon problème actuel se situe je dirais entre les deux, alors si je ne suis pas dans la bonne section veuillez m'en pardonner je suis un peu perdu car je viens de m'inscrire (mais ça fait déjà un moment que je viens lire des sujets ici, qui d'ailleurs m'ont facilité grandement la vie un grand merci au dev et au personne qui prennent du temps pour nous répondre vous êtes au top !).
A partir d'un classeur Excel je fais une macro afin de reprendre certaines données afin d'automatiser la prise de données qui se faisait manuellement par mon boss. Tout se passait sans aucun soucis j'ai quelques bonnes bases en programmation VB donc m'adapter pour de l'application n'était pas bien compliqué, sauf que mes limites viennent d'être atteinte visiblement.
Je m'explique :
Je prend des données dans ce classeur Excel (qui en passant fait des dizaines de milliers de lignes donc assez complexe à mettre en oeuvre) et je les stocke dans des variables de type tableau et/ou Integer/String. Avec ces données je dois créer/éditer un document word en plaçant ces données dans des tableaux ou bien juste en brut avec des titres et des champs de texte. J'ai un problème léger et un problème assez important que je dois régler afin de continuer ma macro.
Donc j'édite mon tableau, je place toutes les valeurs dans les cellules voulu et là impossible de sortir de mon tableau afin de continuer l'édition.
Je ne vous met pas mon code en entier (si certain sont intéressé par ce genre de processus je vous enverrais mon code avec grand plaisir, il fera 1000-1500 lignes environs) car beaucoup trop long je vous met que l'essentiel :
Premier problème :
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
41
42 'Création du document word et lancement Dim appword As Object Dim docword As Object Application.WindowState = xlMinimized Set appword = CreateObject("word.application") appword.Visible = True Set docword = appword.documents.Add(template:="c:\Users\charly\Documents\1.docx") appword.Selection.TypeText Text:="bonjour" appword.Selection.TypeParagraph 'Création du tableau Dim nbColonne As Integer Dim nbLigne As Integer 'nbColonne et nbLigne seront affecté à une valeur via une boucle mais pour l'instant je le laisse comme ça nbColonne = 3 nbLigne = 6 Dim tableau As Object Set tableau = docword.Tables.Add(Range:=appword.Selection.Range, NumRows:=nbLigne, NumColumns:=nbColonne) 'Mise en forme du tableau With tableau If .Style <> "Grille du tableau" Then .Style = "Grille du tableau" End If .ApplyStyleHeadingRows = True .ApplyStyleLastRow = False .ApplyStyleFirstColumn = True .ApplyStyleLastColumn = False .ApplyStyleRowBands = True .ApplyStyleColumnBands = False End With 'Mise en place des valeurs dans les cellules tableau.Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight tableau.Cell(1, 1).Range.Text = "Poste" tableau.Cell(1, 2).Range.Text = "Consommation (kWh énergie finale)" tableau.Cell(1, 3).Range.Text = "Coût calculé ( TTC/an)"
Comment sortir le "curseur" de mon tableau ? Car du coup le reste de ma macro s'écrit dans la dernière cellule je vous explique pour le bordel lol (excusez mon langage).
J'ai déjà éssayé ça :
Mais ça place le curseur seulement à la fin de la cellule sélectionnée et le paramètre "Unit" n'est pas prit en compte dans Excel ça me met dans le débogage..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 appword.Selection.EndKey Unit:=wdStory
J'ai éssayé le moins possible d'utiliser Selection mais parfois je n'ai pas le choix de par l'utilisation d'une macro Excel qui édite un document Word.
Deuxième problème (par grave si non résolu je m'arrangerai autrement) :
Cette ligne ne marche malheureusement pas avez vous une autre solution pour aligné le texte d'une cellule ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tableau.Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
Je vous remercie d'avance pour votre aide, je suis dispo à toute heure pour plus de précision si je ne suis pas clair mis à part les heures de sommeil.
Ps : je peux surement dire des ânneries quelques fois n'hésitez pas à me corriger je ne suis clairement pas un expert en VBA j'ai dû m'adapter en à peine deux semaines.
J'ajoute aussi qu'avant de poster ce message j'ai cherché toute la journée sur ce forum et ailleurs mais mon problème est assez spécifique car j'édite un doc word depuis excel.
Partager