Bonjour,
A tout hasard car il m'est arrivé d'avoir quelquefois ce problème entre
copie exec à excel
Remplace pour la partie ci-dessous, ActiveSheet par Selection
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
La deuxième syntaxe me semble correcte portant.
Peut-être un engorgement du presse-papier qu'il faudrait vider
éventuellement
après chaque copie par
application.cutcopymode = false
Sans garantie, mais sit-on jamais ?
Bonne journée
Pounet95
"daniel" a écrit dans le message de
news:Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
A tout hasard car il m'est arrivé d'avoir quelquefois ce problème entre
copie exec à excel
Remplace pour la partie ci-dessous, ActiveSheet par Selection
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
La deuxième syntaxe me semble correcte portant.
Peut-être un engorgement du presse-papier qu'il faudrait vider
éventuellement
après chaque copie par
application.cutcopymode = false
Sans garantie, mais sit-on jamais ?
Bonne journée
Pounet95
"daniel" <dandanefface@neuf.fr> a écrit dans le message de
news:uKADP49tIHA.2208@TK2MSFTNGP04.phx.gbl...
Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
A tout hasard car il m'est arrivé d'avoir quelquefois ce problème entre
copie exec à excel
Remplace pour la partie ci-dessous, ActiveSheet par Selection
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
La deuxième syntaxe me semble correcte portant.
Peut-être un engorgement du presse-papier qu'il faudrait vider
éventuellement
après chaque copie par
application.cutcopymode = false
Sans garantie, mais sit-on jamais ?
Bonne journée
Pounet95
"daniel" a écrit dans le message de
news:Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement ça
plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce ne
sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement ça
plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce ne
sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement ça
plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce ne
sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
J'ai changé la fermeture de word pour la placer à la fin et maintenant
plus de problème. :-)).
'Fermeture de Word
AppWord.Application.Quit
Encore merci pour votre aide et bonne journée.
Daniel
"daniel" a écrit dans le message de news:Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
J'ai changé la fermeture de word pour la placer à la fin et maintenant
plus de problème. :-)).
'Fermeture de Word
AppWord.Application.Quit
Encore merci pour votre aide et bonne journée.
Daniel
"daniel" <dandanefface@neuf.fr> a écrit dans le message de news:
uKADP49tIHA.2208@TK2MSFTNGP04.phx.gbl...
Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Bonjour,
J'ai changé la fermeture de word pour la placer à la fin et maintenant
plus de problème. :-)).
'Fermeture de Word
AppWord.Application.Quit
Encore merci pour votre aide et bonne journée.
Daniel
"daniel" a écrit dans le message de news:Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse, DisplayAsIcon:=
_
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Tu peux peut-être accélérer le code ainsi :
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
For Each c In Selection
FichierInfo = c.Value
'Ouvre le document Word et effectue une copie des données
fichier = "C:LettreWORD" & FichierInfo
Set DocWord = AppWord.Documents.Open(fichier, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
c.Offset(, 1).Select
ActiveSheet.PasteSpecial Format:="Text", Link:úlse, DisplayAsIcon:úlse
Application.CutCopyMode = False
DocWord.Close
Next c
AppWord.Application.Quit
End Sub
"daniel" wrote in message
news:uqz%23FW%Bonjour,
J'ai changé la fermeture de word pour la placer à la fin et maintenant
plus de problème. :-)).
'Fermeture de Word
AppWord.Application.Quit
Encore merci pour votre aide et bonne journée.
Daniel
"daniel" a écrit dans le message de news:Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse,
DisplayAsIcon:= _
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Tu peux peut-être accélérer le code ainsi :
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
For Each c In Selection
FichierInfo = c.Value
'Ouvre le document Word et effectue une copie des données
fichier = "C:LettreWORD" & FichierInfo
Set DocWord = AppWord.Documents.Open(fichier, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
c.Offset(, 1).Select
ActiveSheet.PasteSpecial Format:="Text", Link:úlse, DisplayAsIcon:úlse
Application.CutCopyMode = False
DocWord.Close
Next c
AppWord.Application.Quit
End Sub
"daniel" <dandanefface@neuf.fr> wrote in message
news:uqz%23FW%23tIHA.4076@TK2MSFTNGP06.phx.gbl...
Bonjour,
J'ai changé la fermeture de word pour la placer à la fin et maintenant
plus de problème. :-)).
'Fermeture de Word
AppWord.Application.Quit
Encore merci pour votre aide et bonne journée.
Daniel
"daniel" <dandanefface@neuf.fr> a écrit dans le message de news:
uKADP49tIHA.2208@TK2MSFTNGP04.phx.gbl...
Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse,
DisplayAsIcon:= _
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub
Tu peux peut-être accélérer le code ainsi :
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
For Each c In Selection
FichierInfo = c.Value
'Ouvre le document Word et effectue une copie des données
fichier = "C:LettreWORD" & FichierInfo
Set DocWord = AppWord.Documents.Open(fichier, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
c.Offset(, 1).Select
ActiveSheet.PasteSpecial Format:="Text", Link:úlse, DisplayAsIcon:úlse
Application.CutCopyMode = False
DocWord.Close
Next c
AppWord.Application.Quit
End Sub
"daniel" wrote in message
news:uqz%23FW%Bonjour,
J'ai changé la fermeture de word pour la placer à la fin et maintenant
plus de problème. :-)).
'Fermeture de Word
AppWord.Application.Quit
Encore merci pour votre aide et bonne journée.
Daniel
"daniel" a écrit dans le message de news:Bonjour,
Après recherches sur le forum et tests en tout genre, je suis arrivé à
faire la macro suivante qui copie une ligne de chaque fichier word (il y
en aura + de 2000), vers une feuille excel en face du nom du fichier
word.
Mais malheureusement, lors du "collage" des valeurs, très régulièrement
ça plante et de plus, de façon alétoire. J'ai fais plusieurs essais, ce
ne sont pas toujours les mêmes valeurs qui font planter.
Merci par avance pour vos éclaircissements ou solutions.
Bonne journée.
Sub ListerfichiersWORD()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
ThisWorkbook.Sheets("exemple").Select
Range("b5", [b65000].End(xlUp)).Select
Range("B5").Activate
For Each c In Selection
FichierInfo = ActiveCell.Value
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word et effectue une copie des données
Set DocWord = AppWord.Documents.Open("C:BoulotLettreWORD" &
FichierInfo, ReadOnly:=True)
With AppWord.Selection.Find
.Text = "agence "
.Forward = True
.MatchAllWordForms = False
End With
With AppWord
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
.Selection.Copy
End With
'Fermeture de Word
AppWord.Application.Quit
' Copie des données dans Excel
ThisWorkbook.Worksheets("exemple").Select
ActiveCell.Select
ActiveCell.Offset(, 1).Select
******** c'est ici que ça plante de façon aléatoire *************
ActiveSheet.PasteSpecial Format:="Texte", Link:úlse,
DisplayAsIcon:= _
False
******** ici aussi ça plante de façon aléatoire *************
' ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, -1).Select
Next c
End Sub