Bonjour,
Est-il possible, en VBA, de lister les applications ouvertes sur un
ordinateur et, le cas échéant, les fichiers ouverts dans ces applications
?
Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir plusieurs
fois le même fichier Excel (ce fichier est en fait un programme partagé).
Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
message si le fichier est déjà utilisé. Par contre, si il est possible de
vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou, si
un
autre Excel est ouvert et que le fameux fichier n'y est pas ouvert, alors
je
laisserai l'utilisateur l'ouvrir.
Merci pour votre aide.
--
Patrick
Bonjour,
Est-il possible, en VBA, de lister les applications ouvertes sur un
ordinateur et, le cas échéant, les fichiers ouverts dans ces applications
?
Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir plusieurs
fois le même fichier Excel (ce fichier est en fait un programme partagé).
Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
message si le fichier est déjà utilisé. Par contre, si il est possible de
vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou, si
un
autre Excel est ouvert et que le fameux fichier n'y est pas ouvert, alors
je
laisserai l'utilisateur l'ouvrir.
Merci pour votre aide.
--
Patrick
Bonjour,
Est-il possible, en VBA, de lister les applications ouvertes sur un
ordinateur et, le cas échéant, les fichiers ouverts dans ces applications
?
Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir plusieurs
fois le même fichier Excel (ce fichier est en fait un programme partagé).
Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
message si le fichier est déjà utilisé. Par contre, si il est possible de
vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou, si
un
autre Excel est ouvert et que le fameux fichier n'y est pas ouvert, alors
je
laisserai l'utilisateur l'ouvrir.
Merci pour votre aide.
--
Patrick
Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" a écrit dans le message de
news:
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
> message si le fichier est déjà utilisé. Par contre, si il est possible de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou, si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert, alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" <nospam_patrick.fredin@iquebec.com> a écrit dans le message de
news: 5D5686C2-580E-45CB-ADCF-86A5761EA8ED@microsoft.com...
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
> message si le fichier est déjà utilisé. Par contre, si il est possible de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou, si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert, alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" a écrit dans le message de
news:
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
> message si le fichier est déjà utilisé. Par contre, si il est possible de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou, si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert, alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Bonjour,
Merci pour ta réponse. Mais il me semble que le code que tu as mis liste
les
fichiers ouverts dans le Excel où est exécutée la macro. En ce qui me
concerne, j'aimerais savoir si le fichier est ouvert dans une autre
instance
de Excel sur le même ordinateur.
Dans une macro auto_open, comment peut-on savoir si le fichier est déjà
ouvert ?
Merci beaucoup pour ton aide.
--
Patrick
"Patrice Henrio" wrote:Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" a écrit dans le message de
news:
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces
> applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir
> plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme
> partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
> message si le fichier est déjà utilisé. Par contre, si il est possible
> de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou,
> si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert,
> alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Bonjour,
Merci pour ta réponse. Mais il me semble que le code que tu as mis liste
les
fichiers ouverts dans le Excel où est exécutée la macro. En ce qui me
concerne, j'aimerais savoir si le fichier est ouvert dans une autre
instance
de Excel sur le même ordinateur.
Dans une macro auto_open, comment peut-on savoir si le fichier est déjà
ouvert ?
Merci beaucoup pour ton aide.
--
Patrick
"Patrice Henrio" wrote:
Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" <nospam_patrick.fredin@iquebec.com> a écrit dans le message de
news: 5D5686C2-580E-45CB-ADCF-86A5761EA8ED@microsoft.com...
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces
> applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir
> plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme
> partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
> message si le fichier est déjà utilisé. Par contre, si il est possible
> de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou,
> si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert,
> alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Bonjour,
Merci pour ta réponse. Mais il me semble que le code que tu as mis liste
les
fichiers ouverts dans le Excel où est exécutée la macro. En ce qui me
concerne, j'aimerais savoir si le fichier est ouvert dans une autre
instance
de Excel sur le même ordinateur.
Dans une macro auto_open, comment peut-on savoir si le fichier est déjà
ouvert ?
Merci beaucoup pour ton aide.
--
Patrick
"Patrice Henrio" wrote:Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" a écrit dans le message de
news:
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces
> applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir
> plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme
> partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas de
> message si le fichier est déjà utilisé. Par contre, si il est possible
> de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert ou,
> si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert,
> alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Effectivement.
Dans ce cas il faut faire la même chose mais pour chaque instance de Excel
ouverte. Il faut donc lister les programmes ouverts, vérifier s'il s'agit
d'Excel et dans ce cas appliquer la routine.
Je crois, de mémoire, qu'il y a une fonction (peut-être une API) qui liste
les programmes ouverts.
Sinon une solution
dans une macro auto_open tu vas écrire un fichier texte indiquant qu'on a
ouvert le fichier Excel en question, par exemple à la racine de C:, un
fichier Présent.txt dans lequel on écrit "ouvert". Lors de la fermeture
une autre macro efface ce fichier (ou écrit "fermé"). Bien évidemment à
l'ouverture on teste le fichier Présent.txt, s'il est absent ou que son
contenu est "fermé" cela signifie qu'il n'y pas d'instance du fichier
Excel ouvert et cela quel que soit l'application Excel qui l'a ouvert.
"Patrick" a écrit dans le message de
news:Bonjour,
Merci pour ta réponse. Mais il me semble que le code que tu as mis liste
les
fichiers ouverts dans le Excel où est exécutée la macro. En ce qui me
concerne, j'aimerais savoir si le fichier est ouvert dans une autre
instance
de Excel sur le même ordinateur.
Dans une macro auto_open, comment peut-on savoir si le fichier est déjà
ouvert ?
Merci beaucoup pour ton aide.
--
Patrick
"Patrice Henrio" wrote:Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" a écrit dans le message de
news:
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces
> applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir
> plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme
> partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas
> de
> message si le fichier est déjà utilisé. Par contre, si il est possible
> de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert
> ou, si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert,
> alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Effectivement.
Dans ce cas il faut faire la même chose mais pour chaque instance de Excel
ouverte. Il faut donc lister les programmes ouverts, vérifier s'il s'agit
d'Excel et dans ce cas appliquer la routine.
Je crois, de mémoire, qu'il y a une fonction (peut-être une API) qui liste
les programmes ouverts.
Sinon une solution
dans une macro auto_open tu vas écrire un fichier texte indiquant qu'on a
ouvert le fichier Excel en question, par exemple à la racine de C:, un
fichier Présent.txt dans lequel on écrit "ouvert". Lors de la fermeture
une autre macro efface ce fichier (ou écrit "fermé"). Bien évidemment à
l'ouverture on teste le fichier Présent.txt, s'il est absent ou que son
contenu est "fermé" cela signifie qu'il n'y pas d'instance du fichier
Excel ouvert et cela quel que soit l'application Excel qui l'a ouvert.
"Patrick" <nospam_patrick.fredin@iquebec.com> a écrit dans le message de
news: 0A0D0E21-C015-4F1E-8E6B-BB246F6BEDBF@microsoft.com...
Bonjour,
Merci pour ta réponse. Mais il me semble que le code que tu as mis liste
les
fichiers ouverts dans le Excel où est exécutée la macro. En ce qui me
concerne, j'aimerais savoir si le fichier est ouvert dans une autre
instance
de Excel sur le même ordinateur.
Dans une macro auto_open, comment peut-on savoir si le fichier est déjà
ouvert ?
Merci beaucoup pour ton aide.
--
Patrick
"Patrice Henrio" wrote:
Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" <nospam_patrick.fredin@iquebec.com> a écrit dans le message de
news: 5D5686C2-580E-45CB-ADCF-86A5761EA8ED@microsoft.com...
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces
> applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir
> plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme
> partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas
> de
> message si le fichier est déjà utilisé. Par contre, si il est possible
> de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert
> ou, si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert,
> alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick
Effectivement.
Dans ce cas il faut faire la même chose mais pour chaque instance de Excel
ouverte. Il faut donc lister les programmes ouverts, vérifier s'il s'agit
d'Excel et dans ce cas appliquer la routine.
Je crois, de mémoire, qu'il y a une fonction (peut-être une API) qui liste
les programmes ouverts.
Sinon une solution
dans une macro auto_open tu vas écrire un fichier texte indiquant qu'on a
ouvert le fichier Excel en question, par exemple à la racine de C:, un
fichier Présent.txt dans lequel on écrit "ouvert". Lors de la fermeture
une autre macro efface ce fichier (ou écrit "fermé"). Bien évidemment à
l'ouverture on teste le fichier Présent.txt, s'il est absent ou que son
contenu est "fermé" cela signifie qu'il n'y pas d'instance du fichier
Excel ouvert et cela quel que soit l'application Excel qui l'a ouvert.
"Patrick" a écrit dans le message de
news:Bonjour,
Merci pour ta réponse. Mais il me semble que le code que tu as mis liste
les
fichiers ouverts dans le Excel où est exécutée la macro. En ce qui me
concerne, j'aimerais savoir si le fichier est ouvert dans une autre
instance
de Excel sur le même ordinateur.
Dans une macro auto_open, comment peut-on savoir si le fichier est déjà
ouvert ?
Merci beaucoup pour ton aide.
--
Patrick
"Patrice Henrio" wrote:Oui c'est possible.
Sub OuvrirXLS(Fichier As String)
Dim wbk As Workbook, Trouvé As Boolean
Trouvé = False
For Each wbk In Workbooks
Trouvé = (wbk.Name = Fichier)
If Trouvé Then Exit For
Next
If Not Trouvé Then Workbooks.Open Filename:=CHEMINXLS & Fichier
End Sub
Il est possible aussi de définir une macro Auto_Open qui vérifie que le
fichier n'est pas déjà ouvert.
"Patrick" a écrit dans le message de
news:
> Bonjour,
>
> Est-il possible, en VBA, de lister les applications ouvertes sur un
> ordinateur et, le cas échéant, les fichiers ouverts dans ces
> applications
> ?
>
> Voici mon but : Je ne veux pas qu'un utilisateur puisse ouvrir
> plusieurs
> fois le même fichier Excel (ce fichier est en fait un programme
> partagé).
> Comme le fichier est en lecture seule sur le réseau, il n'y aura pas
> de
> message si le fichier est déjà utilisé. Par contre, si il est possible
> de
> vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert
> ou, si
> un
> autre Excel est ouvert et que le fameux fichier n'y est pas ouvert,
> alors
> je
> laisserai l'utilisateur l'ouvrir.
>
> Merci pour votre aide.
>
> --
> Patrick