GNT sans publicité, site mobile, fonctionnalitées exclusives...

[VBA] libérer un objet

Le
barbibul
Bonjour à toutes et à tous,


Voici ma question :

je souhaite piloter un classeur fermé.

d'où le code :
__________________________________________________________
1 Sub testVariableObjet()
2
3 Dim cible As Workbook
4 Set cible = GetObject("C:\Dossier\Classeur_test.xls")
5
6 '.'
7 'Diverses opérations sur l'objet "cible" '
8 '.'
9
10 Set cible = Nothing
11
12 End Sub
__________________________________________________________

Je pensais que "set cible = Nothing" suffisait à libérer le classeur.
Mais si je veux y accéder directement le doc est "déjà en utilisation"
et je ne peux l'ouvrir qu'en mode lecture.

en ajoutant ligne 9 :

cible.close

C'est ok. le classeur peut se lire normalement.

Pour une utilisation en mono-poste c'est ok.

Mais si je veux que le classeur soit accessible par plusieurs
postes ça se complique

En effet quand un utilisateur lit des infos sur le classeur cible,
un autre utilisateur n'y aura sans doute pas accès avant qu'il
soit "close".

Voyez-vous une solution ?
Lire les 2 réponses

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
Ardus Petus
Le #3727061
10 cible.Application.Quit


Et voilà!

Cordialement,
--
AP

"barbibul" 447737d2$0$20882$
Bonjour à toutes et à tous,


Voici ma question :

je souhaite piloter un classeur fermé.

d'où le code :
__________________________________________________________
1 Sub testVariableObjet()
2
3 Dim cible As Workbook
4 Set cible = GetObject("C:DossierClasseur_test.xls")
5
6 '........................................'
7 'Diverses opérations sur l'objet "cible" '
8 '........................................'
9
10 Set cible = Nothing
11
12 End Sub
__________________________________________________________

Je pensais que "set cible = Nothing" suffisait à libérer le classeur.
Mais si je veux y accéder directement le doc est "déjà en utilisation"
et je ne peux l'ouvrir qu'en mode lecture.

en ajoutant ligne 9 :

cible.close

C'est ok. le classeur peut se lire normalement.

Pour une utilisation en mono-poste c'est ok.

Mais si je veux que le classeur soit accessible par plusieurs
postes ça se complique...

En effet quand un utilisateur lit des infos sur le classeur cible,
un autre utilisateur n'y aura sans doute pas accès avant qu'il
soit "close".

Voyez-vous une solution ?


barbibul
Le #3695981
Merci Ardus Petus pour la réponse
cependant ceci ne réponds pas à ma question.

Je la pose autrement :

Peut-on travailler à plusieurs utilisateurs sur un classeur fermé
(ou plus généralement sur un objet)
sachant que une fois l'objet déclaré, il n'est plus accessible
pour d'autres postes (sauf en mode lecture seulement) ?

---------------


10 cible.Application.Quit


Et voilà!

Cordialement,
--
AP

"barbibul" 447737d2$0$20882$
Bonjour à toutes et à tous,


Voici ma question :

je souhaite piloter un classeur fermé.

d'où le code :
__________________________________________________________
1 Sub testVariableObjet()
2
3 Dim cible As Workbook
4 Set cible = GetObject("C:DossierClasseur_test.xls")
5
6 '........................................'
7 'Diverses opérations sur l'objet "cible" '
8 '........................................'
9
10 Set cible = Nothing
11
12 End Sub
__________________________________________________________

Je pensais que "set cible = Nothing" suffisait à libérer le classeur.
Mais si je veux y accéder directement le doc est "déjà en utilisation"
et je ne peux l'ouvrir qu'en mode lecture.

en ajoutant ligne 9 :

cible.close

C'est ok. le classeur peut se lire normalement.

Pour une utilisation en mono-poste c'est ok.

Mais si je veux que le classeur soit accessible par plusieurs
postes ça se complique...

En effet quand un utilisateur lit des infos sur le classeur cible,
un autre utilisateur n'y aura sans doute pas accès avant qu'il
soit "close".

Voyez-vous une solution ?






Publicité
Suivre les réponses
Poster une réponse
Anonyme