Bonjour,
afin d'automatiser plusieurs manipulations j'ai besoin d'une macro capable de venir récupérer un fichier CSV généré par une application (le fichier porte toujours le même nom et est toujours au même endroit) pour ensuite le coller sur word avec une mise en forme (tableau) + par la suite, une mise en forme conditionnelle, pour le copie/coller c'est ok pour la mise en forme nok.
Pour la mise en forme je lance cette macro sous excel (pour test) ça fonctionne correctement :
ce qui me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub AjusterColonnes() For Each sh In ActiveWorkbook.Sheets sh.Cells.EntireColumn.AutoFit sh.Cells.HorizontalAlignment = xlCenter sh.Cells.VerticalAlignment = xlBottom Next End Sub
ensuite via collage spécial sous WORD j'arrive à mettre mon tableau en forme :
Donc il me suffit maintenant de combiner une macro qui vient ouvrir mon fichier CSV de le mettre en forme grâce au code ci-dessus pour enfin copier la sélection et la coller...
Mais ça ne fonctionne pas comme je veuxla mise en forme est juste illisible.
Voici la macro complète :
Si un de vous trouve une solution je suis preneur
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 Sub Import() ' ' Import Macro ''Déclaration des variables Dim XlAppli Dim XlCl Dim Xlfl Dim Plage Dim Ws As Worksheet Dim derligne, dercolonne As Long Set XlAppli = CreateObject("Excel.Application") '< L'appli Excel Set XlCl = XlAppli.Workbooks.Open("C:\temp\RECAP.csv") '< le classeur Set Xlfl = XlCl.Worksheets("RECAP") '< la feuille For Each sh In ActiveWorkbook.Sheets sh.Cells.EntireColumn.AutoFit sh.Cells.HorizontalAlignment = xlCenter sh.Cells.VerticalAlignment = xlBottom Next derligne = Range("A1").End(xlDown).Row dercolonne = Range("A1").End(xlToRight).Column Plage = ("A1:A" & derligne) Xlfl.Range(Plage).Copy Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _ Placement:=wdInLine, DisplayAsIcon:=False DoEvents 'laisse le temps au système de réaliser la copie XlCl.Close False 'ferme le classeur Excel sans enregistrer DoEvents ' laisse au système le temps de fermer le classeur XlAppli.Quit ' Ferme Excel Set XlAppli = Nothing ' supprime les instances Set XlCl = Nothing Set Xlfl = Nothing End Sub![]()
Bonne journée.
Partager