OVH Cloud OVH Cloud

Set W_App = Nothing ne marche pas

14 réponses
Avatar
lou
bonjour
je me serts de ce code pour travailler un fichier word
apparament il fonctionne bien

mais apres avoir fait plusieurs essais
mon pc n'en pouvais plus et je me suis demandé pourquoi ??? apres avoir
cherché ,

je suis allé voir dans le gestionnaire des taches et la j'ai vu des
dizaines de word dans
le processus , j'ai du passer par le fin de tache pour les enlever

Set W_App = Nothing ne marche pas
comment fermer word sans qu'il reste dans le processus
je ne trouve pas la solution
un petit peu d'aide svp


voici le code en question

Private Sub Commande95_Click()
aa.Object.Application.Options.BackgroundSave = False
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:\PDF\TEMP.doc"

Dim W_App As Object
Set W_App = CreateObject("Word.Application")
With W_App
.Visible = False
.Documents.Open ("C:\PDF\TEMP.doc")
.Selection.HomeKey Unit:=wdStory
.Selection.EndKey Unit:=wdStory, Extend:=wdExtend
.Selection.Copy
.ActiveDocument.Close wdDoNotSaveChanges

.Quit

Set W_App = Nothing

End With

End Sub

merci de votre aide

10 réponses

1 2
Avatar
YannX
Il faut rajouter :
W_App.Application.DisplayAlerts = False ' pas de messages d'erreur
W_App.Quit
Set W_App = Nothing

Voir une explication assez complète sur l'une des FAQ
(désolé je ne sais plus laquelle....) Excelabo ou Longre.....

@+

"lou" a écrit dans le message de
news:41a7860b$0$25044$
bonjour
je me serts de ce code pour travailler un fichier word
apparament il fonctionne bien

mais apres avoir fait plusieurs essais
mon pc n'en pouvais plus et je me suis demandé pourquoi ??? apres avoir
cherché ,

je suis allé voir dans le gestionnaire des taches et la j'ai vu des
dizaines de word dans
le processus , j'ai du passer par le fin de tache pour les enlever

Set W_App = Nothing ne marche pas
comment fermer word sans qu'il reste dans le processus
je ne trouve pas la solution
un petit peu d'aide svp


voici le code en question

Private Sub Commande95_Click()
aa.Object.Application.Options.BackgroundSave = False
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"

Dim W_App As Object
Set W_App = CreateObject("Word.Application")
With W_App
.Visible = False
.Documents.Open ("C:PDFTEMP.doc")
.Selection.HomeKey Unit:=wdStory
.Selection.EndKey Unit:=wdStory, Extend:=wdExtend
.Selection.Copy
.ActiveDocument.Close wdDoNotSaveChanges

.Quit

Set W_App = Nothing

End With

End Sub

merci de votre aide







Avatar
lou
salut
mais je ne vois pas par rapord au code envoyé ou je dois inserer ton ajoute
merci pour ton aide


"YannX" a écrit dans le message de news:
#Vo#TC$
Il faut rajouter :
W_App.Application.DisplayAlerts = False ' pas de messages d'erreur
W_App.Quit
Set W_App = Nothing

Voir une explication assez complète sur l'une des FAQ
(désolé je ne sais plus laquelle....) Excelabo ou Longre.....

@+

"lou" a écrit dans le message de
news:41a7860b$0$25044$
> bonjour
> je me serts de ce code pour travailler un fichier word
> apparament il fonctionne bien
>
> mais apres avoir fait plusieurs essais
> mon pc n'en pouvais plus et je me suis demandé pourquoi ??? apres


avoir
> cherché ,
>
> je suis allé voir dans le gestionnaire des taches et la j'ai vu des
> dizaines de word dans
> le processus , j'ai du passer par le fin de tache pour les enlever
>
> Set W_App = Nothing ne marche pas
> comment fermer word sans qu'il reste dans le processus
> je ne trouve pas la solution
> un petit peu d'aide svp
>
>
> voici le code en question
>
> Private Sub Commande95_Click()
> aa.Object.Application.Options.BackgroundSave = False
> aa.Object.Application.Options.AllowFastSave = True
> aa.Object.SaveAs "C:PDFTEMP.doc"
>
> Dim W_App As Object
> Set W_App = CreateObject("Word.Application")
> With W_App
> .Visible = False
> .Documents.Open ("C:PDFTEMP.doc")
> .Selection.HomeKey Unit:=wdStory
> .Selection.EndKey Unit:=wdStory, Extend:=wdExtend
> .Selection.Copy
> .ActiveDocument.Close wdDoNotSaveChanges
>
> .Quit
>
> Set W_App = Nothing
>
> End With
>
> End Sub
>
> merci de votre aide
>
>
>
>
>




Avatar
YannX
Rajouter les deux premières lignes avant la 3° déjà existente !


"lou" a écrit dans le message de
news:41a78c0d$0$30704$
salut
mais je ne vois pas par rapord au code envoyé ou je dois inserer ton


ajoute
merci pour ton aide


"YannX" a écrit dans le message de news:
#Vo#TC$
> Il faut rajouter :
> W_App.Application.DisplayAlerts = False ' pas de messages d'erreur
> W_App.Quit
> Set W_App = Nothing
>
> Voir une explication assez complète sur l'une des FAQ
> (désolé je ne sais plus laquelle....) Excelabo ou Longre.....
>
> @+
>
> "lou" a écrit dans le message de
> news:41a7860b$0$25044$
> > bonjour
> > je me serts de ce code pour travailler un fichier word
> > apparament il fonctionne bien
> >
> > mais apres avoir fait plusieurs essais
> > mon pc n'en pouvais plus et je me suis demandé pourquoi ??? apres
avoir
> > cherché ,
> >
> > je suis allé voir dans le gestionnaire des taches et la j'ai vu des
> > dizaines de word dans
> > le processus , j'ai du passer par le fin de tache pour les enlever
> >
> > Set W_App = Nothing ne marche pas
> > comment fermer word sans qu'il reste dans le processus
> > je ne trouve pas la solution
> > un petit peu d'aide svp
> >
> >
> > voici le code en question
> >
> > Private Sub Commande95_Click()
> > aa.Object.Application.Options.BackgroundSave = False
> > aa.Object.Application.Options.AllowFastSave = True
> > aa.Object.SaveAs "C:PDFTEMP.doc"
> >
> > Dim W_App As Object
> > Set W_App = CreateObject("Word.Application")
> > With W_App
> > .Visible = False
> > .Documents.Open ("C:PDFTEMP.doc")
> > .Selection.HomeKey Unit:=wdStory
> > .Selection.EndKey Unit:=wdStory, Extend:=wdExtend
> > .Selection.Copy
> > .ActiveDocument.Close wdDoNotSaveChanges
> >
> > .Quit
> >
> > Set W_App = Nothing
> >
> > End With
> >
> > End Sub
> >
> > merci de votre aide
> >
> >
> >
> >
> >
>
>




Avatar
lou
pas de chance ça ne marche pas
merci tout de meme de ton aide
lou

"YannX" a écrit dans le message de news:
uhOWba$
Rajouter les deux premières lignes avant la 3° déjà existente !


"lou" a écrit dans le message de
news:41a78c0d$0$30704$
> salut
> mais je ne vois pas par rapord au code envoyé ou je dois inserer ton
ajoute
> merci pour ton aide
>
>
> "YannX" a écrit dans le message de news:
> #Vo#TC$
> > Il faut rajouter :
> > W_App.Application.DisplayAlerts = False ' pas de messages d'erreur
> > W_App.Quit
> > Set W_App = Nothing
> >
> > Voir une explication assez complète sur l'une des FAQ
> > (désolé je ne sais plus laquelle....) Excelabo ou Longre.....
> >
> > @+
> >
> > "lou" a écrit dans le message de
> > news:41a7860b$0$25044$
> > > bonjour
> > > je me serts de ce code pour travailler un fichier word
> > > apparament il fonctionne bien
> > >
> > > mais apres avoir fait plusieurs essais
> > > mon pc n'en pouvais plus et je me suis demandé pourquoi ??? apres
> avoir
> > > cherché ,
> > >
> > > je suis allé voir dans le gestionnaire des taches et la j'ai vu


des
> > > dizaines de word dans
> > > le processus , j'ai du passer par le fin de tache pour les enlever
> > >
> > > Set W_App = Nothing ne marche pas
> > > comment fermer word sans qu'il reste dans le processus
> > > je ne trouve pas la solution
> > > un petit peu d'aide svp
> > >
> > >
> > > voici le code en question
> > >
> > > Private Sub Commande95_Click()
> > > aa.Object.Application.Options.BackgroundSave = False
> > > aa.Object.Application.Options.AllowFastSave = True
> > > aa.Object.SaveAs "C:PDFTEMP.doc"
> > >
> > > Dim W_App As Object
> > > Set W_App = CreateObject("Word.Application")
> > > With W_App
> > > .Visible = False
> > > .Documents.Open ("C:PDFTEMP.doc")
> > > .Selection.HomeKey Unit:=wdStory
> > > .Selection.EndKey Unit:=wdStory, Extend:=wdExtend
> > > .Selection.Copy
> > > .ActiveDocument.Close wdDoNotSaveChanges
> > >
> > > .Quit
> > >
> > > Set W_App = Nothing
> > >
> > > End With
> > >
> > > End Sub
> > >
> > > merci de votre aide
> > >
> > >
> > >
> > >
> > >
> >
> >
>
>




Avatar
YannX
Effectivement, j'avais mal regardé,
tu avais déjà mis le .Quit
le Application.DisplayAlerts = False garantit la fermeture

Mais est-ce que le problème ne pourrait pas venir
simplement de la position relative du

.Quit
Set W_App = Nothing

à l'interieur du With W_App ........ End With ?


> > > > Dim W_App As Object
> > > > Set W_App = CreateObject("Word.Application")
> > > > With W_App



> > > > .Quit



> > > > > Set W_App = Nothing
> > > >
> > > > End With
> > > >
> > > > End Sub
> > > >
> > > > merci de votre aide
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
lou
j"ai essayé aussi a l'exterieur idem
ne marche pas non plus ??????
une journée que je cherche et toujours pas de solution

"YannX" a écrit dans le message de news:
OpuyYl$
Effectivement, j'avais mal regardé,
tu avais déjà mis le .Quit
le Application.DisplayAlerts = False garantit la fermeture

Mais est-ce que le problème ne pourrait pas venir
simplement de la position relative du

.Quit
Set W_App = Nothing

à l'interieur du With W_App ........ End With ?


> > > > > Dim W_App As Object
> > > > > Set W_App = CreateObject("Word.Application")
> > > > > With W_App

> > > > > .Quit

> > > > > Set W_App = Nothing
> > > > >
> > > > > End With
> > > > >
> > > > > End Sub
> > > > >
> > > > > merci de votre aide
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
YannX
Je ne peux que t'engager à relire les FAQ de Longre et autres...
Plusieurs portent sur les objets applications non détruits....
@+

"lou" a écrit dans le message de
news:41a79af8$0$13467$
j"ai essayé aussi a l'exterieur idem
ne marche pas non plus ??????
une journée que je cherche et toujours pas de solution

"YannX" a écrit dans le message de news:
OpuyYl$
> Effectivement, j'avais mal regardé,
> tu avais déjà mis le .Quit
> le Application.DisplayAlerts = False garantit la fermeture
>
> Mais est-ce que le problème ne pourrait pas venir
> simplement de la position relative du
>
> .Quit
> Set W_App = Nothing
>
> à l'interieur du With W_App ........ End With ?
>
>
> > > > > > Dim W_App As Object
> > > > > > Set W_App = CreateObject("Word.Application")
> > > > > > With W_App
>
> > > > > > .Quit
>
> > > > > > Set W_App = Nothing
> > > > > >
> > > > > > End With
> > > > > >
> > > > > > End Sub
> > > > > >
> > > > > > merci de votre aide
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
lou
en fait j'ai verifié mon code pas pas

j'ai tout decoche et j'ai laisse la procedure precedente qui est

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
aa.Object.Application.Options.BackgroundSave = False
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''
et c'est lui le coupable
en fait une fois sauve le document je devrais le forcer a se fermer tu
as une idée????

"YannX" a écrit dans le message de news:
#
Je ne peux que t'engager à relire les FAQ de Longre et autres...
Plusieurs portent sur les objets applications non détruits....
@+

"lou" a écrit dans le message de
news:41a79af8$0$13467$
> j"ai essayé aussi a l'exterieur idem
> ne marche pas non plus ??????
> une journée que je cherche et toujours pas de solution
>
> "YannX" a écrit dans le message de news:
> OpuyYl$
> > Effectivement, j'avais mal regardé,
> > tu avais déjà mis le .Quit
> > le Application.DisplayAlerts = False garantit la fermeture
> >
> > Mais est-ce que le problème ne pourrait pas venir
> > simplement de la position relative du
> >
> > .Quit
> > Set W_App = Nothing
> >
> > à l'interieur du With W_App ........ End With ?
> >
> >
> > > > > > > Dim W_App As Object
> > > > > > > Set W_App = CreateObject("Word.Application")
> > > > > > > With W_App
> >
> > > > > > > .Quit
> >
> > > > > > > Set W_App = Nothing
> > > > > > >
> > > > > > > End With
> > > > > > >
> > > > > > > End Sub
> > > > > > >
> > > > > > > merci de votre aide
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
YannX
"lou" a écrit dans le message de
news:41a7a675$0$7821$
en fait j'ai verifié mon code pas pas

j'ai tout decoche et j'ai laisse la procedure precedente qui est

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
aa.Object.Application.Options.BackgroundSave = False
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"



''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''
et c'est lui le coupable
en fait une fois sauve le document je devrais le forcer a se fermer tu
as une idée????



Plus sérieusement, d'une part il me semble avoir lu sur une KB de Microsoft
un exemple fermant tous les objets (recherche avec Word Automation VBA....)

Relis toutes les FAQ sur les objets et l'optimisation en VBA.....

D'autre part, je ne comprends plus bien : quel est l'objet Word :
App_W ou aa. ?
Verifier les portées des variables, car manifestement
(témoin ton SET Nothing End With )
Le compilateur Visual Basic est pour le moins laxiste avec ces règles
que j'ai toujorus constatées fondamentales en gestion d'objets !


@+
Décidément, quel dommage que je ne puisse travailler dans un VRAI langage
OBJET !
Avatar
Christian HUBERT-HUGOUD- Xtrem7
Salut,

Voici mon code :

Set WinWord = CreateObject("Word.application")

With WinWord
.WindowState = wdWindowStateMinimize
.Visible = False
If .Documents.Count = 1 Then
Set Doc = .Documents(1)
Else
Set Doc = .Documents.Add
End If
DoEvents
End With

If Doc Is Nothing Or Err <> 0 Then
If IsWordDoc Then
Doc.Close False
Set Doc = Nothing
WinWord.Quit False
DoEvents
Set WinWord = Nothing
DoEvents
End If
Exit Sub
End If

With Doc

.Activate
.OptimizeForWord97 = True
.PageSetup.PaperSize = wdPaperA4
.PageSetup.LineNumbering.Active = False
.PageSetup.Orientation = wdOrientPortrait
.PageSetup.TopMargin = CentimetersToPoints(1.5)
.PageSetup.BottomMargin = CentimetersToPoints(2)
.PageSetup.LeftMargin = CentimetersToPoints(0.5)
.PageSetup.RightMargin = CentimetersToPoints(0.5)
.PageSetup.PageWidth = CentimetersToPoints(21)
.PageSetup.PageHeight = CentimetersToPoints(29.7)
.PageSetup.VerticalAlignment = wdAlignVerticalTop
End With

With Doc
.Close False
Set Doc = Nothing
End With

WinWord.Quit False
DoEvents
Set WinWord = Nothing
DoEvents


Hope this helps...
Christian


--
Pour répondre à ce message, utilisez EXCLUSIVEMENT ce lien :
http://couriel.biz/c2h/
********************************************************


Bonjour,





Cordialement

Christian Hubert-Hugoud

"lou" a écrit dans le message de
news:41a7860b$0$25044$
bonjour
je me serts de ce code pour travailler un fichier word
apparament il fonctionne bien

mais apres avoir fait plusieurs essais
mon pc n'en pouvais plus et je me suis demandé pourquoi ??? apres avoir
cherché ,

je suis allé voir dans le gestionnaire des taches et la j'ai vu des
dizaines de word dans
le processus , j'ai du passer par le fin de tache pour les enlever

Set W_App = Nothing ne marche pas
comment fermer word sans qu'il reste dans le processus
je ne trouve pas la solution
un petit peu d'aide svp


voici le code en question

Private Sub Commande95_Click()
aa.Object.Application.Options.BackgroundSave = False
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"

Dim W_App As Object
Set W_App = CreateObject("Word.Application")
With W_App
.Visible = False
.Documents.Open ("C:PDFTEMP.doc")
.Selection.HomeKey Unit:=wdStory
.Selection.EndKey Unit:=wdStory, Extend:=wdExtend
.Selection.Copy
.ActiveDocument.Close wdDoNotSaveChanges

.Quit

Set W_App = Nothing

End With

End Sub

merci de votre aide







1 2