Piloter word depuis excel

darib52 Messages postés 7 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006 - 9 nov. 2005 à 21:39
cs_FatBoy Messages postés 42 Date d'inscription mercredi 12 juin 2002 Statut Membre Dernière intervention 12 novembre 2005 - 12 nov. 2005 à 13:32
bonsoir à tous,
je viens avec une question sans réponse à ce jour.

j'importe des données issues de word dans excel.
j'ai une macro qui fonctionne.
juste là pas pb.

mais avant d'importer dans excel je dois faire subir un petit traitement au document word ( suppression d'un séparateur de milliers matérialisé par un . )
si la macro fonctionne dans word, comment faire pour que je puisse faire l'ensemble de la tâche depuis excel.
pas si simple, à priori.

si quéqu'un peut m'aider. ça serait avec une grande satisfaction.
merci d'avance à tous.

voici la macro excel
Sub Bouton2_QuandClic()
Dim Wrd As Object

Application.ScreenUpdating = False

Set Wrd = CreateObject("word.application")
Wrd.Visible = False
monChemin = InputBox("Saisissez le chemin complet", "")
Wrd.documents.Open (monChemin)
Wrd.Selection.WholeStory
Wrd.Selection.Copy
Sheets("modele").Copy after:=Worksheets(Sheets.Count)
Nom = InputBox("Entrez le nom pour la feuille en cours :")
If Nom <> "" Then ActiveSheet.Name = Nom
Range("aa1").Select
ActiveSheet.Paste
Wrd.Application.Quit
Range("G7").Select
Columns("A:A").ColumnWidth = 34.86
ActiveWindow.SmallScroll Down:=48
Range("A53:D60").Select
Selection.EntireRow.Delete
ActiveWindow.SmallScroll Down:=30
Range("A88:D97").Select
Selection.EntireRow.Delete
ActiveWindow.SmallScroll Down:=45
Range("A1:A133").Select
Selection.RowHeight = 25
End Sub

et voici celle de word à insérer.
Sub separateur()
'
' separateur Macro
' Macro enregistrée le 07/11/2005 par daniel
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "."
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

1 réponse

cs_FatBoy Messages postés 42 Date d'inscription mercredi 12 juin 2002 Statut Membre Dernière intervention 12 novembre 2005
12 nov. 2005 à 13:32
Hello,

j'ai déjà fait un truc similaire, en fait, à l'ouverture de n'importe quel document word, j'avais une macro qui scanné le nom du document, et si ça corresponder, je lançais automatiquement un autre macro. Le tout dans word.

La seul différence, c'est que moi je fais tout à partir de word. Je chope mes données que je balance vers excel dans un bô petit tableau tout prêt.

Le code :

'Procedure se lancer à l'ouverture d'un document
Sub Document_Open() '<- se lance à l'ouverture de n'importe quel doc.

'Test pour le traitement des clotures d'incidents
' envoyé par FT.
If Left(ActiveDocument.Name, 6) = "attach" Then ' Vérification du nom
Traitement_Attach 'Lancement du traitment d'attach.rtf 'lancement de la macro de traitement.
End If


End Sub
---------------------------------
Dans la macro traitement, je lance excel aprés récupérer mes données dans un tableau :

Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.workbooks.Open (<chemin+nom fichier>)

Je fais mon bazar et je ferme tout histoire de faire ça proprement

ExcelApp.DisplayAlerts = False
ExcelApp.workbooks("<nom_fichier>").Close savechanges:=True
ExcelApp.Quit
Set ExcelApp = Nothing

FatBoy the mighty LunchBox Boy !
0
Rejoignez-nous