Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" <berkowil@free.fr> a écrit dans le message de groupe de
discussion :
03894B42-7C87-42B4-97C6-A284F5A2FC17@microsoft.com...
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" <berkowil@free.fr> a écrit dans le message de groupe de
discussion :
03894B42-7C87-42B4-97C6-A284F5A2FC17@microsoft.com...
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
La question : Pourquoi 2 instances te sont-ils obligatoires ?
Qu'est-ce qui justifie que tu te compliques la vie ?
Si à partir d'une macro, tu veux ouvrir un fichier dans un
autre instance d'excel pour des raisons encore obscures ...
Dim Xl As New Excel.Application
Xl.Visible = True
Dim Wk As Workbook
Set Wk = Xl.Workbooks.Open("NomDuclasseur.xls")
L'avantage de cette façon de faire, et que tu peux contrôler
par les variables objets, l'instance d'excel que tu viens d'ouvrir
ainsi que le fichier ou les fichiers ouvert dans cette instance.
Et pour conserver la main mise sur cette instance et fichier, tu peux
déclarer comme Public tes variables dans un module standard...
et leur référence aux objets vont durer le temps que tu voudras !
Ce n'est pas suffisant ?
"berkowil" a écrit dans le message de groupe de
discussion :
J'ai ouvert 2 fois excel et l'un des fichiers doit etre envoyé par outlook
en fichier joint
Je dois donc m'assurer que ce fichier est bien fermé
Ce fichier contient des macros et je veux qu'il soit totalement
independant
du mien qui contient aussi des macros, c'est pour cette raison que j'ouvre
2
fois excell
"MichDenis" a écrit dans le message de
news:Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre
appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre
exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
La question : Pourquoi 2 instances te sont-ils obligatoires ?
Qu'est-ce qui justifie que tu te compliques la vie ?
Si à partir d'une macro, tu veux ouvrir un fichier dans un
autre instance d'excel pour des raisons encore obscures ...
Dim Xl As New Excel.Application
Xl.Visible = True
Dim Wk As Workbook
Set Wk = Xl.Workbooks.Open("NomDuclasseur.xls")
L'avantage de cette façon de faire, et que tu peux contrôler
par les variables objets, l'instance d'excel que tu viens d'ouvrir
ainsi que le fichier ou les fichiers ouvert dans cette instance.
Et pour conserver la main mise sur cette instance et fichier, tu peux
déclarer comme Public tes variables dans un module standard...
et leur référence aux objets vont durer le temps que tu voudras !
Ce n'est pas suffisant ?
"berkowil" <berkowil@free.fr> a écrit dans le message de groupe de
discussion :
OFqDqPanJHA.5728@TK2MSFTNGP06.phx.gbl...
J'ai ouvert 2 fois excel et l'un des fichiers doit etre envoyé par outlook
en fichier joint
Je dois donc m'assurer que ce fichier est bien fermé
Ce fichier contient des macros et je veux qu'il soit totalement
independant
du mien qui contient aussi des macros, c'est pour cette raison que j'ouvre
2
fois excell
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de
news:A41D7F7E-0906-44C2-9A09-222CAB6D441B@microsoft.com...
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" <berkowil@free.fr> a écrit dans le message de groupe de
discussion :
03894B42-7C87-42B4-97C6-A284F5A2FC17@microsoft.com...
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre
appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre
exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
La question : Pourquoi 2 instances te sont-ils obligatoires ?
Qu'est-ce qui justifie que tu te compliques la vie ?
Si à partir d'une macro, tu veux ouvrir un fichier dans un
autre instance d'excel pour des raisons encore obscures ...
Dim Xl As New Excel.Application
Xl.Visible = True
Dim Wk As Workbook
Set Wk = Xl.Workbooks.Open("NomDuclasseur.xls")
L'avantage de cette façon de faire, et que tu peux contrôler
par les variables objets, l'instance d'excel que tu viens d'ouvrir
ainsi que le fichier ou les fichiers ouvert dans cette instance.
Et pour conserver la main mise sur cette instance et fichier, tu peux
déclarer comme Public tes variables dans un module standard...
et leur référence aux objets vont durer le temps que tu voudras !
Ce n'est pas suffisant ?
"berkowil" a écrit dans le message de groupe de
discussion :
J'ai ouvert 2 fois excel et l'un des fichiers doit etre envoyé par outlook
en fichier joint
Je dois donc m'assurer que ce fichier est bien fermé
Ce fichier contient des macros et je veux qu'il soit totalement
independant
du mien qui contient aussi des macros, c'est pour cette raison que j'ouvre
2
fois excell
"MichDenis" a écrit dans le message de
news:Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre
appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre
exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
La question : Pourquoi 2 instances te sont-ils obligatoires ?
Qu'est-ce qui justifie que tu te compliques la vie ?
Si à partir d'une macro, tu veux ouvrir un fichier dans un
autre instance d'excel pour des raisons encore obscures ...
Dim Xl As New Excel.Application
Xl.Visible = True
Dim Wk As Workbook
Set Wk = Xl.Workbooks.Open("NomDuclasseur.xls")
L'avantage de cette façon de faire, et que tu peux contrôler
par les variables objets, l'instance d'excel que tu viens d'ouvrir
ainsi que le fichier ou les fichiers ouvert dans cette instance.
Et pour conserver la main mise sur cette instance et fichier, tu peux
déclarer comme Public tes variables dans un module standard...
et leur référence aux objets vont durer le temps que tu voudras !
Ce n'est pas suffisant ?
"berkowil" a écrit dans le message de groupe de
discussion :
J'ai ouvert 2 fois excel et l'un des fichiers doit etre envoyé par outlook
en fichier joint
Je dois donc m'assurer que ce fichier est bien fermé
Ce fichier contient des macros et je veux qu'il soit totalement
independant
du mien qui contient aussi des macros, c'est pour cette raison que j'ouvre
2
fois excell
"MichDenis" a écrit dans le message de
news:Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre
appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre
exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
La question : Pourquoi 2 instances te sont-ils obligatoires ?
Qu'est-ce qui justifie que tu te compliques la vie ?
Si à partir d'une macro, tu veux ouvrir un fichier dans un
autre instance d'excel pour des raisons encore obscures ...
Dim Xl As New Excel.Application
Xl.Visible = True
Dim Wk As Workbook
Set Wk = Xl.Workbooks.Open("NomDuclasseur.xls")
L'avantage de cette façon de faire, et que tu peux contrôler
par les variables objets, l'instance d'excel que tu viens d'ouvrir
ainsi que le fichier ou les fichiers ouvert dans cette instance.
Et pour conserver la main mise sur cette instance et fichier, tu peux
déclarer comme Public tes variables dans un module standard...
et leur référence aux objets vont durer le temps que tu voudras !
Ce n'est pas suffisant ?
"berkowil" <berkowil@free.fr> a écrit dans le message de groupe de
discussion :
OFqDqPanJHA.5728@TK2MSFTNGP06.phx.gbl...
J'ai ouvert 2 fois excel et l'un des fichiers doit etre envoyé par outlook
en fichier joint
Je dois donc m'assurer que ce fichier est bien fermé
Ce fichier contient des macros et je veux qu'il soit totalement
independant
du mien qui contient aussi des macros, c'est pour cette raison que j'ouvre
2
fois excell
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de
news:A41D7F7E-0906-44C2-9A09-222CAB6D441B@microsoft.com...
Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" <berkowil@free.fr> a écrit dans le message de groupe de
discussion :
03894B42-7C87-42B4-97C6-A284F5A2FC17@microsoft.com...
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre
appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre
exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci
La question : Pourquoi 2 instances te sont-ils obligatoires ?
Qu'est-ce qui justifie que tu te compliques la vie ?
Si à partir d'une macro, tu veux ouvrir un fichier dans un
autre instance d'excel pour des raisons encore obscures ...
Dim Xl As New Excel.Application
Xl.Visible = True
Dim Wk As Workbook
Set Wk = Xl.Workbooks.Open("NomDuclasseur.xls")
L'avantage de cette façon de faire, et que tu peux contrôler
par les variables objets, l'instance d'excel que tu viens d'ouvrir
ainsi que le fichier ou les fichiers ouvert dans cette instance.
Et pour conserver la main mise sur cette instance et fichier, tu peux
déclarer comme Public tes variables dans un module standard...
et leur référence aux objets vont durer le temps que tu voudras !
Ce n'est pas suffisant ?
"berkowil" a écrit dans le message de groupe de
discussion :
J'ai ouvert 2 fois excel et l'un des fichiers doit etre envoyé par outlook
en fichier joint
Je dois donc m'assurer que ce fichier est bien fermé
Ce fichier contient des macros et je veux qu'il soit totalement
independant
du mien qui contient aussi des macros, c'est pour cette raison que j'ouvre
2
fois excell
"MichDenis" a écrit dans le message de
news:Quel est l'objectif que tu poursuis ?
Si tu veux savoir si un fichier excel est déjà ouvert :
Dim Wk as Worksheet
On Error Resume next
Set Wk = Workbooks("NomDuFichierÀTester.xls")
if err.number <>0 then
err.clear
Msgbox "Fichier non ouvert"
else
Msgbox "Fichier ouvert
End if
"berkowil" a écrit dans le message de groupe de
discussion :
Bonjour Tous
ma question est a la fin de ce bout de code qui permet de savoir si une
application est ouverte peut servir a d'autres
******
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Function FB_fichierDejaOuvert(ClassName As String, Titre As
String)
As Boolean
Dim ProcessHandle As Long
Dim ProcessId As Long
Dim Appli As Long
Titre = "Microsoft Excel - " & Titre 'a enlever pour une autre
appli
Appli = 0
Appli = FindWindow(ClassName, Titre)
GetWindowThreadProcessId Appli, ProcessId
If Appli > 0 Then
FB_fichierDejaOuvert = True
Else
FB_fichierDejaOuvert = False
End If
End Function
dans le code
If FB_fichierDejaOuvert(vbNullString, fichier) Then
avec fichier le titre exact de l'application : ex si le ficier toto.xls a
été ouvert alors fichier c'est: Microsoft Excel - toto.xls (le titre
exact
de l'appli)
***************
Mon probleme est de rafraichier la liste des applications ouvertes car le
programme rafraichit cette liste 1 fois par minute
Merci