Applications et Fichiers

Le
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
Vos réponses
Trier par : date / pertinence
LSteph
Le #4180441
Bonjour,
Est-il possible, en VBA, de lister les applications ouvertes
oui mais c'est un peu compliqué,

ordinateur et, le cas échéant, les fichiers ouverts dans ces
applications ?

oui mais cela n'apparaît qu'une seule fois car un même fichier ne
s'ouvre "théoriquement" qu'une seule fois par poste même partagé,un
fichier n'est pas un programme partagé!
Dans le cas d'un fichier en lecture seule c'est un peu incompatible avec
un fichier en mode partagé
s'il est partagé il n'y a pas de raison pour la lecture seule.
vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert
ou, si un


autre Excel est ouvert
La même version ?


et que le fameux fichier n'y est pas ouvert, alors je
laisserai l'utilisateur l'ouvrir.
Alors toi, t'es quelqu'un!

... moi je l'aurai pas laissé!
ou alors en lecture seule mais à condition qu'il n'y ait pas plus de
deux versions d'excel partagées par poste.

De rien, ce fut avec plaisir, face à un sujet d"'une telle clarté , je
n'aurais pu me priver de proposer une réponse aussi lumineuse.
Sauf qu'elle est en mode partagé et que tous les utilisateurs
peuvent l'ouvrir .

@+

lSteph


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
Le #4180391
Merci pour le temps que tu as consacré à me répondre. Je suis tout à fait
d'accord que certains points de ma question peuvent paraître peu clairs.

Pour en revenir au début, sais-tu comment lister les applications ouvertes ?
Que ce soit un peu compliqué ne m'inquiète pas.
Et les fichiers ouverts dans ces applications ?

En fait, globalement, tout cela est pour être sûr qu'un utilisateur n'ouvre
pas le même fichier dans 2 Excel différents ouverts sur son ordinateur parce
que cela engendrerait des conflits. Est-ce que c'est plus clair ?

Merci beaucoup.

--
Patrick


"LSteph" wrote:

Bonjour,
Est-il possible, en VBA, de lister les applications ouvertes
oui mais c'est un peu compliqué,

ordinateur et, le cas échéant, les fichiers ouverts dans ces
applications ?

oui mais cela n'apparaît qu'une seule fois car un même fichier ne
s'ouvre "théoriquement" qu'une seule fois par poste même partagé,un
fichier n'est pas un programme partagé!
Dans le cas d'un fichier en lecture seule c'est un peu incompatible avec
un fichier en mode partagé
s'il est partagé il n'y a pas de raison pour la lecture seule.
vérifier que sur son ordinateur il n'y a pas d'autre Excel d'ouvert
ou, si un


autre Excel est ouvert
La même version ?


et que le fameux fichier n'y est pas ouvert, alors je
laisserai l'utilisateur l'ouvrir.
Alors toi, t'es quelqu'un!

.... moi je l'aurai pas laissé!
ou alors en lecture seule mais à condition qu'il n'y ait pas plus de
deux versions d'excel partagées par poste.

De rien, ce fut avec plaisir, face à un sujet d"'une telle clarté , je
n'aurais pu me priver de proposer une réponse aussi lumineuse.
Sauf qu'elle est en mode partagé et que tous les utilisateurs
peuvent l'ouvrir .

@+

lSteph


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.






JB
Le #4180381
On 6 fév, 20:46, 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 applicat ions ?

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 possi ble 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


Bonsoir,

http://groups.google.fr/group/microsoft.public.fr.excel/browse_frm/thread/9 a204797db41aa9/34c00269248c05a8?lnk=gst&q=applications+ouvertes&rnum= 3&hl=fr#34c00269248c05a8

JB

LSteph
Le #4180371
Re,
;o)
Sur le site de FS je crois tu trouveras une macro qui fait cela .

Sinon pour lister tous les process voici cet exemple
un userform un commandbutton une liste un combobox
et le code un peu plus bas sous ce post (dans cet exemple le but était
d'interrompre un processus actif).


mais par rapport à ta question il me semble qu'on s'égare.

Dès lors que tu essaie d'ouvrir deux fois le même fichier
tu auras un message erreur ou avertissement qui propose
à l'utilisateur soit d'attendre soit de notifier, soit d'ouvrir en
lecture seule.
Pour autant on peut ainsi partager un classeur qui sera ouvert à tour de
rôle et éviter le mode partagé.

Cordialement.

lSteph


Private Sub UserForm_Initialize()


On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" & ProcessName
& "'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

Merci pour le temps que tu as consacré à me répondre. Je suis tout à fait
d'accord que certains points de ma question peuvent paraître peu clairs.

Pour en revenir au début, sais-tu comment lister les applications ouvertes ?
Que ce soit un peu compliqué ne m'inquiète pas.
Et les fichiers ouverts dans ces applications ?

En fait, globalement, tout cela est pour être sûr qu'un utilisateur n'ouvre
pas le même fichier dans 2 Excel différents ouverts sur son ordinateur parce
que cela engendrerait des conflits. Est-ce que c'est plus clair ?

Merci beaucoup.



Patrick
Le #4404721
Merci.

--
Patrick


"LSteph" wrote:

Re,
;o)
Sur le site de FS je crois tu trouveras une macro qui fait cela .

Sinon pour lister tous les process voici cet exemple
un userform un commandbutton une liste un combobox
et le code un peu plus bas sous ce post (dans cet exemple le but était
d'interrompre un processus actif).


mais par rapport à ta question il me semble qu'on s'égare.

Dès lors que tu essaie d'ouvrir deux fois le même fichier
tu auras un message erreur ou avertissement qui propose
à l'utilisateur soit d'attendre soit de notifier, soit d'ouvrir en
lecture seule.
Pour autant on peut ainsi partager un classeur qui sera ouvert à tour de
rôle et éviter le mode partagé.

Cordialement.

lSteph


Private Sub UserForm_Initialize()


On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" & ProcessName
& "'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

Merci pour le temps que tu as consacré à me répondre. Je suis tout à fait
d'accord que certains points de ma question peuvent paraître peu clairs.

Pour en revenir au début, sais-tu comment lister les applications ouvertes ?
Que ce soit un peu compliqué ne m'inquiète pas.
Et les fichiers ouverts dans ces applications ?

En fait, globalement, tout cela est pour être sûr qu'un utilisateur n'ouvre
pas le même fichier dans 2 Excel différents ouverts sur son ordinateur parce
que cela engendrerait des conflits. Est-ce que c'est plus clair ?

Merci beaucoup.






Patrick
Le #4404711
Merci.

--
Patrick


"JB" wrote:

On 6 fév, 20:46, 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


Bonsoir,

http://groups.google.fr/group/microsoft.public.fr.excel/browse_frm/thread/9a204797db41aa9/34c00269248c05a8?lnk=gst&q=applications+ouvertes&rnum=3&hl=fr#34c00269248c05a8

JB





Publicité
Poster une réponse
Anonyme