plantage de Paste aléatoire

Le
daniel
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
daniel
Le #6643601
Bonjour,
Bonjour,
Merci pour la réponse.
J'ai essayé de changer ActiveSheet par Selection, mais là XL me répond
"Erreur défini par l'application ou par l'objet"
Encore merci et bonne journée.
Daniel


"Pounet95" a écrit dans le message de news:
uw0wyG%
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" 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







daniel
Le #6643591
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"
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




Mishell
Le #6646631
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" 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"
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








daniel
Le #6649541
Bonjour,
Merci pour le code.
Je vais tester ça rapidement.
Bonne journée.
Daniel

"Mishell" %
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" 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"
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












Publicité
Poster une réponse
Anonyme