Création des fiches.doc à partir d'un tableau Excel
hanendaly
Messages postés1Date d'inscriptionlundi 3 février 2014StatutMembreDernière intervention16 avril 2014
-
16 avril 2014 à 01:49
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
17 avril 2014 à 22:11
Bonjour
Je veux créer une application qui sert à remplir des fiches word à partir d'un tableau Excel , le principe est de copier le contenue de chaque ligne Excel et le coller dans un petit tableau dans une fiche word et enregistrer le doc .
L'application se plante à un avancement qui n'est pas toujours le même et m'affiche le message d'erreur suivant : Cette méthode ou propriété n'est pas disponible car le Presse-papiers est vide ou non valide J'utilise le Microsoft Visual Basic 2010 Express, En fait Je suis débutante en programmation VB ( c'est mon premier programme donc veuillez m'excuser pour les bêtises ) j'ai besoin de votre aide , Merci d'avance :) .
Imports Word = Microsoft.Office.Interop.Word
Imports Excel = Microsoft.Office.Interop.Excel
Imports wind = Microsoft.Win32.TimerElapsedEventArgs
Imports Microsoft.Office.Interop.Word
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Table
Dim ExcelApp As Object
Dim ExcelBook As Object
Dim ExcelSheet As Object
Dim j As Integer
Dim i As Integer
Dim l As Byte
Dim str As String
'Start Word and open the document template.
ExcelApp = CreateObject("Excel.Application")
ExcelApp.visible = False
ExcelBook = ExcelApp.workbooks.add("C:\Users\hanen\Documents\Visual Studio 2010\Projects\TRIADE-word\TRIADE w-e\mot de passe.xls")
ExcelSheet = ExcelBook.WorkSheets(1)
j = ExcelSheet.UsedRange.Cells.count
i = ExcelSheet.UsedRange.Rows.count()
l = 2
Do
str = ExcelSheet.cells(l, 5).value
My.Computer.FileSystem.CreateDirectory("\" & str)
str = ""
oWord = CreateObject("Word.Application")
oWord.Visible = False
oDoc = oWord.Documents.Add("C:\Users\hanen\Documents\Visual Studio 2010\Projects\TRIADE-word\TRIADE w-e\Fiches_Parent.dot")
oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 4, 2)
oTable.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter
oTable.Borders.Enable = 1
oTable.Shading.BackgroundPatternColorIndex = Word.WdColorIndex.wdWhite
oTable.Cell(1, 1).Range.Text = "Nom de l'élève"
oTable.Cell(2, 1).Range.Text = "Prénom de l'élève"
oTable.Cell(3, 1).Range.Text = "Mot de passe parents"
oTable.Cell(4, 1).Range.Text = "Mot de passe élèves"
oTable.Cell(1, 2).Range.Text = ""
oTable.Cell(2, 2).Range.Text = ""
oTable.Cell(3, 2).Range.Text = ""
oTable.Cell(4, 2).Range.Text = ""
Clipboard.SetDataObject(Text, True)
Clipboard.GetData(ExcelSheet.cells(l, 1).Copy.ToString())
Threading.Thread.Sleep(1000)
oTable.Cell(1, 2).Range.Paste()
Threading.Thread.Sleep(1000)
Clipboard.SetDataObject(Text, True)
Clipboard.GetData(ExcelSheet.cells(l, 2).Copy.ToString())
Threading.Thread.Sleep(1000)
oTable.Cell(2, 2).Range.Paste()
Threading.Thread.Sleep(1000)
Clipboard.Clear()
Clipboard.SetDataObject(Text, True)
Clipboard.GetData(ExcelSheet.cells(l, 3).Copy.ToString())
Threading.Thread.Sleep(1000)
oTable.Cell(3, 2).Range.Paste()
Threading.Thread.Sleep(1000)
Clipboard.SetDataObject(Text, True)
Clipboard.Clear()
Clipboard.GetData(ExcelSheet.cells(l, 4).Copy.ToString())
Threading.Thread.Sleep(1000)
oTable.Cell(4, 2).Range.Paste()
Clipboard.SetDataObject(Text, True)
Threading.Thread.Sleep(1000)
Clipboard.SetDataObject(Text, True)
Clipboard.Clear()
For Each oRows In oTable.Range.Cells
oTable.Range.ParagraphFormat.SpaceAfter = 0
oRows.Range.Font.Bold = True
oRows.Range.Font.Italic = True
oRows.Width = 180
Next oRows
ExcelSheet.cells(l, 4).Copy.ToString()
str = str & ExcelSheet.cells(l, 4).ToString & ExcelSheet.cells(l, 2).ToString()
oDoc.SaveAs2("\" & ExcelSheet.cells(l, 5).value & "\" & ExcelSheet.cells(l, 1).value & "-" & ExcelSheet.cells(l, 2).value & ".doc")
oDoc.Close()
oWord = Nothing
l = l + 1
Loop While l <= i
Me.Close()
End Sub
End Class
A voir également:
Création des fiches.doc à partir d'un tableau Excel
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 avril 2014 à 19:54
Bonsoir,
Comme tu n'indiques pas où se trouve l'erreur, je vais donc juste essayer de comprendre que que tu as voulu faire avec :
ExcelSheet.cells(l, 4).Copy.ToString()
et
str = str & ExcelSheet.cells(l, 4).ToString & ExcelSheet.cells(l, 2).ToString()
Surtout que tu ne sembles pas utiliser str par la suite.