OVH Cloud OVH Cloud

Fermeture fichier rtf - VBA

4 réponses
Avatar
JacquesH
Bonjour à toutes et tous,

Nouvelle petite question pour un aspect qui me cause quelques soucis.

J'utilise la procédure suivante pour aller récupérer des données
dans un fichier rtf, les coller dans mon fichier EXCEL et les
"travailler". Merci à tous ceux du forum qui m'avaient aidé à ce moment-là.

'Récupération données du fichier sortie.rtf.
Dim Doc As Object
Set Doc = GetObject("G:\...\Calcul Index\sortie_indcal.rtf")
Doc.Range.Copy
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Columns(9).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set Doc = Nothing

Tout fonctionne parfaitement pour récupérer les données. Mon problème
est le suivant :
- Lorsque j'ai terminé le travail sur le fichier EXCEL, je le ferme et
je passe à autre chose. Si je vais dans l'explorateur, il m'est
impossible de manipuler mon fichier rtf (déplacer ou renommer).
- Le fichier rtf n'est effectivement pas ouvert, mais tout indique qu'il
l'est.
- Pour résoudre le problème, je l'ouvre et le ferme immédiatement et je
peux alors faire ce que je souhaite


Quelqu'un peut-il m'indiquer la ligne à ajouter à mon code pour que le
fichier rtf soit bien "désactivé".

Merci de vos idées.

Jacques

4 réponses

Avatar
Yvan
Salut Jacques.

Lorsque tu crées l'objet Doc pour le copier, tu ouvres une instance de
Winword (ou de Wordpad) qui le lit et transmet à Excel les données avec OLE.

Le fait de faire Set Doc = Nothing casse le lien entre cette instance de
Word et l'instance de Excel, mais ne ferme pas Word (tu peux d'ailleurs le
voir en faisant CTRL+ALT+SUPPR)

Il faut fermer l'instance de Word avant Set Doc = NOTHING (peut-être quelque
chose comme Doc.Delete ou delete Doc, il faudrait que je cherche)

@+

Yvan



"JacquesH" a écrit dans le message de
news: %
Bonjour à toutes et tous,

Nouvelle petite question pour un aspect qui me cause quelques soucis.

J'utilise la procédure suivante pour aller récupérer des données dans
un fichier rtf, les coller dans mon fichier EXCEL et les "travailler".
Merci à tous ceux du forum qui m'avaient aidé à ce moment-là.

'Récupération données du fichier sortie.rtf.
Dim Doc As Object
Set Doc = GetObject("G:...Calcul Indexsortie_indcal.rtf")
Doc.Range.Copy
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Columns(9).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set Doc = Nothing

Tout fonctionne parfaitement pour récupérer les données. Mon problème est
le suivant :
- Lorsque j'ai terminé le travail sur le fichier EXCEL, je le ferme et je
passe à autre chose. Si je vais dans l'explorateur, il m'est impossible de
manipuler mon fichier rtf (déplacer ou renommer).
- Le fichier rtf n'est effectivement pas ouvert, mais tout indique qu'il
l'est.
- Pour résoudre le problème, je l'ouvre et le ferme immédiatement et je
peux alors faire ce que je souhaite


Quelqu'un peut-il m'indiquer la ligne à ajouter à mon code pour que le
fichier rtf soit bien "désactivé".

Merci de vos idées.

Jacques


Avatar
JacquesH
Re-bonjour,

Je te remercie pour l'explication et pour l'idée.

J'ai testé : Doc.close et à priori cela a fonctionné. Il faudra que
je teste de manière plus approfondie pour être complètement sûr que cela
résoud mon problème, si ce n'est pas le cas, je reviendrai.

Merci et bon week end

Jacques

Salut Jacques.

Lorsque tu crées l'objet Doc pour le copier, tu ouvres une instance de
Winword (ou de Wordpad) qui le lit et transmet à Excel les données avec OLE.

Le fait de faire Set Doc = Nothing casse le lien entre cette instance de
Word et l'instance de Excel, mais ne ferme pas Word (tu peux d'ailleurs le
voir en faisant CTRL+ALT+SUPPR)

Il faut fermer l'instance de Word avant Set Doc = NOTHING (peut-être quelque
chose comme Doc.Delete ou delete Doc, il faudrait que je cherche)

@+

Yvan



"JacquesH" a écrit dans le message de
news: %

Bonjour à toutes et tous,

Nouvelle petite question pour un aspect qui me cause quelques soucis.

J'utilise la procédure suivante pour aller récupérer des données dans
un fichier rtf, les coller dans mon fichier EXCEL et les "travailler".
Merci à tous ceux du forum qui m'avaient aidé à ce moment-là.

'Récupération données du fichier sortie.rtf.
Dim Doc As Object
Set Doc = GetObject("G:...Calcul Indexsortie_indcal.rtf")
Doc.Range.Copy
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Columns(9).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set Doc = Nothing

Tout fonctionne parfaitement pour récupérer les données. Mon problème est
le suivant :
- Lorsque j'ai terminé le travail sur le fichier EXCEL, je le ferme et je
passe à autre chose. Si je vais dans l'explorateur, il m'est impossible de
manipuler mon fichier rtf (déplacer ou renommer).
- Le fichier rtf n'est effectivement pas ouvert, mais tout indique qu'il
l'est.
- Pour résoudre le problème, je l'ouvre et le ferme immédiatement et je
peux alors faire ce que je souhaite


Quelqu'un peut-il m'indiquer la ligne à ajouter à mon code pour que le
fichier rtf soit bien "désactivé".

Merci de vos idées.

Jacques







Avatar
Yvan
Re-bonjour Jacques.

En fait, il faut bien fermet l'instance de word avant de supprimer la
référence.

Il faut insérer l'instruction:

Doc.Application.Quit

avant la ligne Set Doc = Nothing (qui ne présente d'ailleurs plus d'intéret
si ta procédure s'arrête là)


@+

Yvan


"Yvan" <yvan.echange(enlever ceci)@free.fr> a écrit dans le message de news:

Salut Jacques.

Lorsque tu crées l'objet Doc pour le copier, tu ouvres une instance de
Winword (ou de Wordpad) qui le lit et transmet à Excel les données avec
OLE.

Le fait de faire Set Doc = Nothing casse le lien entre cette instance de
Word et l'instance de Excel, mais ne ferme pas Word (tu peux d'ailleurs le
voir en faisant CTRL+ALT+SUPPR)

Il faut fermer l'instance de Word avant Set Doc = NOTHING (peut-être
quelque chose comme Doc.Delete ou delete Doc, il faudrait que je cherche)

@+

Yvan



"JacquesH" a écrit dans le message
de news: %
Bonjour à toutes et tous,

Nouvelle petite question pour un aspect qui me cause quelques soucis.

J'utilise la procédure suivante pour aller récupérer des données dans
un fichier rtf, les coller dans mon fichier EXCEL et les "travailler".
Merci à tous ceux du forum qui m'avaient aidé à ce moment-là.

'Récupération données du fichier sortie.rtf.
Dim Doc As Object
Set Doc = GetObject("G:...Calcul Indexsortie_indcal.rtf")
Doc.Range.Copy
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Columns(9).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set Doc = Nothing

Tout fonctionne parfaitement pour récupérer les données. Mon problème est
le suivant :
- Lorsque j'ai terminé le travail sur le fichier EXCEL, je le ferme et je
passe à autre chose. Si je vais dans l'explorateur, il m'est impossible
de manipuler mon fichier rtf (déplacer ou renommer).
- Le fichier rtf n'est effectivement pas ouvert, mais tout indique qu'il
l'est.
- Pour résoudre le problème, je l'ouvre et le ferme immédiatement et je
peux alors faire ce que je souhaite


Quelqu'un peut-il m'indiquer la ligne à ajouter à mon code pour que le
fichier rtf soit bien "désactivé".

Merci de vos idées.

Jacques






Avatar
JacquesH
Nos messages se sont croisés.

Ta méthode est sans doute plus adaptée. Je testerai si la mienne ne me
donne pas complètement satisfaction.

Merci

Jacques


Re-bonjour Jacques.

En fait, il faut bien fermet l'instance de word avant de supprimer la
référence.

Il faut insérer l'instruction:

Doc.Application.Quit

avant la ligne Set Doc = Nothing (qui ne présente d'ailleurs plus d'intéret
si ta procédure s'arrête là)


@+

Yvan


"Yvan" <yvan.echange(enlever ceci)@free.fr> a écrit dans le message de news:


Salut Jacques.

Lorsque tu crées l'objet Doc pour le copier, tu ouvres une instance de
Winword (ou de Wordpad) qui le lit et transmet à Excel les données avec
OLE.

Le fait de faire Set Doc = Nothing casse le lien entre cette instance de
Word et l'instance de Excel, mais ne ferme pas Word (tu peux d'ailleurs le
voir en faisant CTRL+ALT+SUPPR)

Il faut fermer l'instance de Word avant Set Doc = NOTHING (peut-être
quelque chose comme Doc.Delete ou delete Doc, il faudrait que je cherche)

@+

Yvan



"JacquesH" a écrit dans le message
de news: %

Bonjour à toutes et tous,

Nouvelle petite question pour un aspect qui me cause quelques soucis.

J'utilise la procédure suivante pour aller récupérer des données dans
un fichier rtf, les coller dans mon fichier EXCEL et les "travailler".
Merci à tous ceux du forum qui m'avaient aidé à ce moment-là.

'Récupération données du fichier sortie.rtf.
Dim Doc As Object
Set Doc = GetObject("G:...Calcul Indexsortie_indcal.rtf")
Doc.Range.Copy
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Columns(9).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set Doc = Nothing

Tout fonctionne parfaitement pour récupérer les données. Mon problème est
le suivant :
- Lorsque j'ai terminé le travail sur le fichier EXCEL, je le ferme et je
passe à autre chose. Si je vais dans l'explorateur, il m'est impossible
de manipuler mon fichier rtf (déplacer ou renommer).
- Le fichier rtf n'est effectivement pas ouvert, mais tout indique qu'il
l'est.
- Pour résoudre le problème, je l'ouvre et le ferme immédiatement et je
peux alors faire ce que je souhaite


Quelqu'un peut-il m'indiquer la ligne à ajouter à mon code pour que le
fichier rtf soit bien "désactivé".

Merci de vos idées.

Jacques