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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| Private Sub Form_Load()
''''''''''''''''''''''''''''''''''
' RECUPERATION LIGNE DE COMMANDE '
''''''''''''''''''''''''''''''''''
Dim sCommandline As String 'Variable contenant la ligne de commande complète
Dim Params() As String 'Tableau regroupant tous les paramètres
Dim NbParam As Long 'Nombre de paramètres
Dim sWorkingpath As String 'Chemin de l'exe
sWorkingpath = CurDir 'On récupère le directory de travail
sCommandline = Command() 'Lecture de la ligne de commande
Params() = Split(sCommandline, " ") 'Permet de découper les différents arguments
NbParam = UBound(Params) 'UBound() retourne la valeur du dernier index du tableau Params()
'''''''''''''''''''
' OUVERTURE EXCEL '
'''''''''''''''''''
'Dim appExcel As Excel.Application
'Dim wbExcel As Excel.Workbook
'Dim wsExcel As Excel.Worksheet
Dim appExcel As Object
Dim wbExcel As Object
Dim wsExcel As Object
Set appExcel = CreateObject("Excel.Application") 'Ouverture de l'application
Set wbExcel = appExcel.Workbooks.Open(CurDir + "\" + Params(1)) 'Ouverture d'un fichier
Set wsExcel = wbExcel.Worksheets(1) 'wsExcel correspond à la première feuille du fichier
appExcel.Visible = True 'Excel non-visible
''''''''''''''''''
' OUVERTURE WORD '
''''''''''''''''''
'Dim WordApp As Word.Application 'Object
'Dim WordDoc As Word.Document ' Object
Dim WordApp As Object
Dim WordDoc As Object
Set WordApp = CreateObject("Word.Application") 'Ouverture de l'application
Set WordDoc = WordApp.Documents.Open(CurDir + "\" + Params(0)) 'Ouverture du fichier
WordApp.Visible = True 'Word non-visible
''''''''''''''''''''''''
' INSERTION EXCEL2WORD '
''''''''''''''''''''''''
Dim i As Long
Dim j As Long
Dim sData() As String
Dim TMP As String
Dim iTab As Long
Dim iIndex As Long
i = 1 'compteur de ligne
j = 1 'compteur de colonne
'Tant qu'on a une ligne
While wsExcel.Cells(i, j) <> ""
'On isole le marqueur
sData() = Split(wsExcel.Cells(i, j), ":")
'On vérifie si il s'agit d'une insertion dans un tableau
If InStr(1, sData(0), "Tab", 1) = 1 Then
'On récupère le numéro du tableau
iTab = Int(Right(sData(0), 1))
'On ajoute une ligne au tableau
WordDoc.Tables(iTab).Range.Rows.Add
'On prend l'index
iIndex = WordDoc.Tables(iTab).Rows.Count
'On ajoute la première case manuellement (cf. Split de la case)
WordDoc.Tables(iTab).Columns(j).Cells(iIndex).Range.Text = sData(1)
j = j + 1
'Tant qu'on est pas au bout de la ligne
While wsExcel.Cells(i, j) <> ""
'On copie les infos dans le tableau
WordDoc.Tables(iTab).Columns(j).Cells(iIndex).Range.Text = wsExcel.Cells(i, j)
j = j + 1
Wend
'Sinon on marque dans le signet
Else
On Error Resume Next
WordDoc.Bookmarks(sData(0)).Range.Text = sData(1)
End If
'On incrémente la ligne et on remet à 0 la colonne
i = i + 1
j = 1 'Remise à Zero
Wend
'''''''''''''''''''
' FERMETURE EXCEL '
'''''''''''''''''''
wbExcel.Close 'Fermeture du classeur Excel
appExcel.Quit 'Fermeture de l'application Excel
'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
''''''''''''''''''
' FERMETURE WORD '
''''''''''''''''''
sData() = Split(Params(1), ".")
WordApp.ActiveDocument.SaveAs (CurDir + "\" + sData(0) + ".doc") 'Sauvegarde du fichier
WordDoc.Close 'Fermeture du document Word
WordApp.Quit 'Fermeture de l'application Word
'Désallocation mémoire
Set WordDoc = Nothing
Set WordApp = Nothing
Unload Me 'On kill l'application
End Sub |
Partager