je copie des données issues de word dans excel.
j'ai besoin d'effectuer un travail dans word avant de copier dans excel.
comment puis-je insérer cette macro 'word' dans la macro excel qui copie le doc word ?
voici la macro 'word' 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
et voici la macro excel que j'utilise 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('A5360').Select
Selection.EntireRow.Delete
ActiveWindow.SmallScroll Down:=30
Range('A8897').Select
Selection.EntireRow.Delete
ActiveWindow.SmallScroll Down:=45
Range('A1:A133').Select
Selection.RowHeight = 25
End Sub
bien sûr j'ai essayé d'insérer l'une dans l'autre mais ça ne fonctionne pas.
merci de votre aide
N'y connaissant rien à Word, c'est par déduction et surtout en consultant les Pages Wiki de MichelXLD (page 3) que je te propose le code ci-joint :
Sub Bouton2_QuandClic() Dim docWord As Word.Document Dim appWord As Word.Application Dim monchemin As Variant
Dim Nom As String
Application.ScreenUpdating = False
monchemin = Application.GetOpenFilename('Doc Word (*.doc), *.doc') If monchemin = False Then Exit Sub Set appWord = New Word.Application
appWord.Visible = False Set docWord = appWord.Documents.Open(monchemin, ReadOnly:=True) With appWord
.Selection.WholeStory
.Selection.Copy End With
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
appWord.Application.Quit
Selection.Replace What:='.', Replacement:=' '
Columns('A:A').ColumnWidth = 34.86
Range('A5360').EntireRow.Delete
Range('A8897').EntireRow.Delete
Range('A1:A133').RowHeight = 25