doum47
Messages postés6Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention 9 juillet 2009
-
7 juil. 2009 à 09:52
doum47
Messages postés6Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention 9 juillet 2009
-
9 juil. 2009 à 15:00
Bonjour à tous,
malgres mes recherches et mes trouvailles je n'arrive pas à faire fonctionner mon programme...
Je crée des tableaux dans un document word depuis excel et j'aimerai apres chaque tableau faire un saut de page mais cela ne fonctionne pas...
je vous copie mon code:
' Chargement d'une nouvelle instance de l'application Word masqué
Set WordApp = CreateObject("word.application")
WordApp.Application.Visible = False
' Création d'un nouveau document et paragraphe
Set WordDoc = WordApp.Documents.Add()
Set Mypar1 = WordDoc.Paragraphs.Add
Set MyRange1 = Mypar1.Range
' Insertion du titre et mise en forme
With MyRange1
.InsertAfter ("Document de test (Antho) " & vbCrLf)
.Style = "Normal"
.Bold = True
.ParagraphFormat.Alignment = 1
End With
' Définition de la zone d'insertion du tableau
Set myRange = WordDoc.Range(Start:=36, End:=36)
' Création du tableau et insertion d'un texte dans la première cellule
For i = 1 To LastRow - 3
'WordApp.Selection.EndKey Unit:=wdLine
'WordApp.Selection.EndOf
'WordDoc.InsertBreak Type:=wdPageBreak
With WordDoc
.Tables.Add Range:=myRange, NumRows:=NumberOfLine, NumColumns:=2
End With
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 9 juil. 2009 à 14:53
Salut,
ben il faut pas oublier que ta session word est ouverte par le code donc il faut associé ce que je t'ai donné avec l'objet word.
Ceci etant dit apres test cela fonctionne mais pas bien donc voici une autre solution.
Il te faut remplacer ça :
For i = 1 To LastRow - 3
With WordDoc
.Tables.Add Range:=myRange, NumRows:=NumberOfLine, NumColumns:=2
End With
Next i
Par ça :
For i = 1 To LastRow - 3
With WordApp.Selection
'on positionne le curseur en fin page
.GoTo What:=wdGoToLine, Which:=wdGoToLast
'on ajoute le tableau
WordDoc.Tables.Add Range:=.Range, NumRows:=NumberOfLine, NumColumns:=2
'on positionne a nouveau le curseur en fin page
.GoTo What:=wdGoToLine, Which:=wdGoToLast
'on insert le saut de page
.InsertBreak Type:=wdSectionBreakNextPage
End With
Next i
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 7 juil. 2009 à 13:00
bonjour
Je me demande si l'objet selection ne porterait pas plutot sur le document plutot que sur l'application Word : je ne sais pas si je me fait comprendre
Ex : WordDoc.Selection.EndKey Unit:=wdLine
Ensuite pour repoisitionner le pointeur courant d'insertion, je ne sais pas si simplement l'instruction suivante ne ferait pas l'affaire
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 7 juil. 2009 à 13:45
Salut,
'on selectionne tout le contenu (attention: saut existant inclu)
ActiveDocument.Bookmarks("\page").Range.Select
'on ce deplace a droite ce qui a pour effet de positionner
' le curseur en fin de page
Selection.MoveRight Unit:=wdCharacter, Count:=1
' on insert le saut de section
Selection.InsertBreak Type:=wdSectionBreakNextPage
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
doum47
Messages postés6Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention 9 juillet 2009 7 juil. 2009 à 15:31
Salut bigfish!
j'ai testé ta solution et je ne dois pas la faire tourner correctement car ca ne marche toujours pas...
Mon fichier .doc n'existe pas avant l'exe de la macro
je ne sauvegarde qu'à la fin de la macro le problème peut-il venir de là?
J'ai mis les lignes de codes dans la boucle for de création des tableaux...
il me jette sur cette ligne : Selection.MoveRight Unit:=wdCharacter, Count:=1
en me disant : "propritété ou méthode non générée par cet objet"
je vous remercie à tous de votre aide
je vous met toute la macro pour une meilleur vue:
Sub BitumWriteNew()
Dim WordApp As Word.Application, WordDoc As Word.Document, myRange As Word.Range
Dim Mypar1, Mypar2, Mypar3, Mypar4, Mypar5, Mypar6 As Word.Paragraph, MyRange1, MyRange2, MyRange3, MyRange4, MyRange5, MyRange6 As Word.Range, newpar As Word.Paragraph, newrange As Word.Range
Dim i As Integer
' Chargement d'une nouvelle instance de l'application Word masqué
Set WordApp = CreateObject("word.application")
WordApp.Application.Visible = False
' Création d'un nouveau document et paragraphe
Set WordDoc = WordApp.Documents.Add()
Set Mypar1 = WordDoc.Paragraphs.Add
Set MyRange1 = Mypar1.Range
' Insertion du titre et mise en forme
With MyRange1
.InsertAfter ("Bite User Manual RRJ (BITUM) " & vbCrLf)
.Style = "Normal"
.Bold = True
.ParagraphFormat.Alignment = 1
End With
'on selectionne tout le contenu (attention: saut existant inclu)
ActiveDocument.Bookmarks("\page").Range.Select
'on ce deplace a droite ce qui a pour effet de positionner
' le curseur en fin de page
Selection.MoveRight Unit:=wdCharacter, Count:=1
' on insert le saut de section
Selection.InsertBreak Type:=wdSectionBreakNextPage
For i = 1 To LastRow - 3
With WordDoc
.Tables.Add Range:=myRange, NumRows:=NumberOfLine, NumColumns:=2
End With
Next i
'Ecriture dans le tableau
For i = 1 To LastRow - 3
lin = 2
WordDoc.Range.Style = "Normal"
WordDoc.Range.Font.name = "Verdana"
WordDoc.Range.Font.Size = "8"
WordDoc.Tables(i).Columns(1).Cells(1).Range.Text = "FDS-REQ-0" & i
For j = 1 To 114
If (TitleBitum(j) = "Y") Then
WordDoc.Range.Font.Bold = True
WordDoc.Tables(i).Columns(1).Cells(lin).Range.Text = TitleName(j)
WordDoc.Range.Font.Bold = False
WordDoc.Tables(i).Columns(2).Cells(lin).Range.Text = Worksheets("Monitoring Testing 31").Cells(i + 3, Title(j)).Value
WordDoc.Tables(i).Columns(1).SetWidth ColumnWidth:=84.5, RulerStyle:= _
wdAdjustNone
WordDoc.Range.InsertBreak Type:=wdPageBreak
lin = lin + 1
End If
frgt10
Messages postés2Date d'inscriptionjeudi 9 juillet 2009StatutMembreDernière intervention 9 juillet 2009 9 juil. 2009 à 10:39
Bonjour,
Alors le plus simple c'est de cliquer sur l'onglet "Insertion" (en haut a gauche a coté de "Fichier" etc etc ..) et apres tu sélectionne "Saut .." puis "Saut de page". Et voila un joli saut de page tout propre :)
Si tu as besoin d'autre chose sur Excel n'hésite pas, j'aime bien rendre service aux petits nouveaux ^^