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 :

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)"
Premier problème :

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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
appword.Selection.EndKey Unit:=wdStory
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..

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) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
tableau.Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
Cette ligne ne marche malheureusement pas avez vous une autre solution pour aligné le texte d'une cellule ?

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 .