Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Lister tous les classeurs ouverts... même ceux ouverts par d'autres instances Excel

27 réponses
Avatar
HD
Bonjour,

Pour lister les classeurs ouverts dans une combobox je faisais:

For each Wkb in Worbooks
Combobox1.Additem Wkb.name
Next

sauf que... je me suis rendu compte que seul les classeurs ouverts dans
la même instance Excel sont listés...

Comment peut on réellement lister tous les classeurs Excel ouverts sur
un PC quelques soient les instances ouvertes ?

@+
HD


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com

10 réponses

1 2 3
Avatar
isabelle
Salut Denis,

désolé de n'avoir pu revenir plut tôt,
comme je disais, un fichier excel est créer et s'ouvre sous le nom de "Feuil1 -
Microsoft Excel" dans une instance différente.
mon besoin est d'avoir accès au données de Feuil1,
l'onglet est toujours nommé Feuil1 et la plage est Range("A1").CurrentRegion
une fois le fichier "Feuil1 - Microsoft Excel" créer par Cogniview,
j'aimerais sélectionner manuellement mon fichier recap.xlsm et importer les
données dans l'onglet base du fichier recap, à la première ligne vide disponible
de la colonne A
et fermer le fichier "Feuil1 - Microsoft Excel"

une image du fichier à lire : http://cjoint.com/?DLhhCaOJAvS

merci pour ta patience et ton aide,
isabelle

Le 2014-12-05 06:01, MichD a écrit :
Bonjour Isabelle,

Pour retenir seulement les instances d'Excel de tous les programmes ouverts,
j'utilise les extensions de fichier que l'on retrouve habituellement dans le nom
du fichier. Le hic, si ton fichier n'a pas déjà été enregistré, il n'a pas
d'extension. Par conséquent, il n'est pas retenu.

Essaie cette version. Dans le décompte, le fichier perso.xls ou de macros
complémentaires ne sont pas comptés.

Si ce n'est pas suffisant, quel est ton besoin exactement?

'-----------------------------------------------------------------------------------------------------------------

#If Not VBA7 Then
Declare Function GetWindowTextLength Lib "user32" Alias _
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Declare Function GetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As _
String, ByVal cch As Long) As Long
Declare Function EnumWindows Lib "user32" _
(ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

#Else
Declare PtrSafe Function GetWindowTextLength Lib "user32" Alias _
"GetWindowTextLengthA" (ByVal hwnd As LongPtr) As Long
Declare PtrSafe Function GetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal hwnd As LongPtr, ByVal lpString As _
String, ByVal cch As Long) As Long
Declare PtrSafe Function EnumWindows Lib "user32" _
(ByVal lpEnumFunc As LongPtr, ByVal lParam As LongPtr) As Long
#End If
Public NbFileOuverts As Long
'-----------------------------------------------------------------------------------------------------------------

Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim Slength As Long, Buffer As String, NomFichier As String, X As Long
Dim Elt As Variant
'Détermine la longueur du texte de la barre de titre de l'application
Slength = GetWindowTextLength(hwnd) + 1 ' get length of title bar text
If Slength > 1 Then ' if return value refers to non-empty string
'crée l'espace que va demander le titre de l'application
'pour la variable Buffer
Buffer = Space(Slength)
'Obtient dans la variable Buffer, la valeur de la barre
'de titre de l'application
GetWindowText hwnd, Buffer, Slength
'Teste si la chaîne " - Excel" est présente dans la barre
'de titre de l'application
For Each Elt In Array(" - Excel", " - Microsoft Excel", "Microsoft Excel -")
X = InStr(1, Trim(Buffer), Elt, vbTextCompare)
If X > 0 Then
NbFileOuverts = NbFileOuverts + 1
End If
Next
End If
'processus récursif qui va boucle si elle vaut 1
EnumWindowsProc = 1
End Function
'-----------------------------------------------------------------------------------------------------------------

Sub Liste_Classeurs_Ouverts()
'peu importe l'instance dans laquelle ils sont ouverts
NbFileOuverts = 0
EnumWindows AddressOf EnumWindowsProc, 0
MsgBox NbFileOuverts & " fichiers Excel sont ouverts"
End Sub
'-----------------------------------------------------------------------------------------------------------------












"isabelle" a écrit dans le message de groupe de discussion :
m5rsf0$tde$

aussi voici une image produit lorsque je passe le curseur sur le logo excel sur
la barre au bas,

http://cjoint.com/?DLfkieZPy3l

isabelle

Le 2014-12-05 03:35, isabelle a écrit :
Salut Denis,

j'ai cru un instant que tu étais mon sauveur...
hélas non, en tous les cas pas pour le mien de cas.
je ne sais pas si tu connais le logiciel Cogniview PDF2XL,
ce logiciel sert à convertir les données des fichiers PDF en tableau excel
lors de la conversion, un fichier excel est créer et s'ouvre sous le nom de
"Feuil1 - Microsoft Excel" dans une instance différente.
je dit une instance différente parce que je peut la fermer "Feuil1 - Microsoft
Excel" avec la croix sans que mon instance qui est ouverte ne soit affectée.
alors j'ai testé ta macro après avoir créer un fichier excel provenant de
Cogniview PDF2XL et hélas il n'est pas dans la liste du Combobox :-(

pour précision:
Win 7 - 64 bit, Office 10

isabelle



Avatar
isabelle
Ho... ! le froid s'implanter, t'as tombé dans l'mil
isabelle

Le 2014-12-05 06:10, MichD a écrit :
Un petit détail...

Que fais-tu debout à cette heure? Tu regardes la neige tombée ou le froid
s'implanter?
;-))
Avatar
isabelle
Salut Jacques,

vous êtes loin des 216 cm reçue en 3 jours sur la ville de Buffalo

http://www.meteomedia.com/nouvelles/articles/une-deuxieme-tempete-deferle-sur-buffalo/40207/

quand même je nous souhaite un beau noël blanc :-)

isabelle

Le 2014-12-05 07:29, Jacquouille a écrit :
Bonjour Denis
Ton msg apparait chez moi à 12h10, donc à midi. Il aurait donc été posté vers
06hoo du matin au Québec. C'est bien cela?
Pour la neige, nous avons reçu les premiers flocons (bien timides) avant hier.
mais ils ne recouvrent même pas la pelouse.
On dirait un petit saupoudrage d'avertissement. -))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
m5s3rv$hhi$

Un petit détail...

Que fais-tu debout à cette heure? Tu regardes la neige tombée ou le froid
s'implanter?
;-))

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel
antivirus Avast.
http://www.avast.com

Avatar
Jacquouille
Encore quelques cm et vous pourrez faire des galeries de métro dans vos
rues....
Merci pour tes bons v½ux.
En ce moment, on se soucie plus du confort de Saint Nicolas.
Place aux jouets, nouvelles macros et nouveaux plantages.
Bon WE à vous tous.
Jacques.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
m60sfd$ce5$

Salut Jacques,

vous êtes loin des 216 cm reçue en 3 jours sur la ville de Buffalo

http://www.meteomedia.com/nouvelles/articles/une-deuxieme-tempete-deferle-sur-buffalo/40207/

quand même je nous souhaite un beau noël blanc :-)

isabelle

Le 2014-12-05 07:29, Jacquouille a écrit :
Bonjour Denis
Ton msg apparait chez moi à 12h10, donc à midi. Il aurait donc été posté
vers
06hoo du matin au Québec. C'est bien cela?
Pour la neige, nous avons reçu les premiers flocons (bien timides) avant
hier.
mais ils ne recouvrent même pas la pelouse.
On dirait un petit saupoudrage d'avertissement. -))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
m5s3rv$hhi$

Un petit détail...

Que fais-tu debout à cette heure? Tu regardes la neige tombée ou le froid
s'implanter?
;-))

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel
antivirus Avast.
http://www.avast.com





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
MichD
Bonjour Isabelle,

Essaie ceci. Exécute la procédure "Départ"
À mettre le tout dans un module standard.



Private Declare Function apiGetClassName Lib "user32" Alias _
"GetClassNameA" (ByVal Hwnd As Long, _
ByVal lpClassname As String, _
ByVal nMaxCount As Long) As Long
Private Declare Function apiGetDesktopWindow Lib "user32" Alias _
"GetDesktopWindow" () As Long
Private Declare Function apiGetWindow Lib "user32" Alias _
"GetWindow" (ByVal Hwnd As Long, _
ByVal wCmd As Long) As Long
Private Declare Function apiGetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal Hwnd As Long, ByVal _
nIndex As Long) As Long
Private Declare Function apiGetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal Hwnd As Long, ByVal _
lpString As String, ByVal aint As Long) As Long
Private Const mcGWCHILD = 5
Private Const mcGWHWNDNEXT = 2
Private Const mcGWLSTYLE = (-16)
Private Const mcWSVISIBLE = &H10000000
Private Const mconMAXLEN = 255

Dim NomFichier As String, Wk As Workbook
'------------------------------------------------------------------------------------------------------------
Sub Départ()
Dim OpenFileName As String
Dim FolderByDefault As String
Dim OpenFile As Workbook

'************* 2 VARIABLES À DÉFINIR*********************
'nom du fichier à rechercher
'ce qui est écrit dans la barre de titr du fichier.
NomFichier = "Feuil1 - Microsoft Excel"

'Le répertoire à ouvrir par défaut au besoin mais non obligatoire
FolderByDefault = "c:UsersProfileDocuments" '"D:"
'************************************************************

Call Liste_Application

'Wk représennte le fichier déjà ouvert identifier
'au nom de "MonFichier"
If Not Wk Is Nothing Then
If FolderByDefault <> "" Then ChDrive Left(FolderByDefault, 1)
FileDialog_SelectionFichier OpenFileName, FolderByDefault
If OpenFileName <> "" Then
Set OpenFile = Workbooks(OpenFileName)
End If
End If

'ICI tu as 2 variables Workbook représentant chaque fichier.
'Wk = "Le fichier créé par l'entreprise"
'OpenFile = le fichier que tu viens de choisir et d'ouvrir

'Le reste de ta macro...

End Sub
'------------------------------------------------------------------------------------------------------------
Private Function Liste_Application()
Dim lngx As Long, lngLen As Long
Dim lngStyle As Long, strCaption As String

lngx = apiGetDesktopWindow()
lngx = apiGetWindow(lngx, mcGWCHILD)

Do While Not lngx = 0
strCaption = fGetCaption(lngx)
lngx = apiGetWindow(lngx, mcGWHWNDNEXT)
Loop
End Function
'------------------------------------------------------------------------------------------------------------
Private Function fGetCaption(Hwnd As Long) As String
Dim strBuffer As String
Dim intCount As Integer, DerLig As Long
Dim Wk As Workbook, SonNom As String

strBuffer = String$(mconMAXLEN - 1, 0)
intCount = apiGetWindowText(Hwnd, strBuffer, mconMAXLEN)
If intCount > 0 Then
fGetCaption = Left$(strBuffer, intCount)
If InStr(1, fGetCaption, MonFichier, vbTextCompare) > 0 Then
Set Wk = Workbooks(MonFichier)
End If
End If
End Function
'------------------------------------------------------------------------------------------------------------
Private Sub FileDialog_SelectionFichier(OpenFileName As String, _
Optional FolderByDefault As String)
Dim X As Long

With Application.FileDialog(msoFileDialogFilePicker)
'Définit un titre pour la boîte de dialogue
.Title = "Le tite de la fenêtre:"
'Autorise la multi-sélection
.AllowMultiSelect = False
'Le répertoire par défaut
.InitialFileName = FolderByDefault
'Efface les filtres existants.
.Filters.Clear
'Définit une liste de filtres pour le champ "Type de fichiers".
.Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
.FilterIndex = 1
'Indique le type d'affichage dans la boîte de dialogue
'(exemple visualisation des propriétés)
.InitialView = msoFileDialogViewProperties
'Affiche la boîte de dialogue
.Show
'Boucle sur les fichiers sélectionnés
For X = 1 To .SelectedItems.Count
OpenFileName = .SelectedItems(X)
Next
End With
End Sub
'------------------------------------------------------------------------------------------------------------
Avatar
isabelle
Salut Denis,

merci pour cette macro,
je crois m'avoir mal exprimé,
le fichier recap.xlsm est déjà ouvert (c'est là que je vais mettre la macro)
ensuite j'ouvre Cogniview et je crée à partir de là le fichier "Feuil1 -
Microsoft Excel" mais celui ci s'ouvre dans une instance différente de mon
fichier recap,
je selectionne le fichier récap et c'est à partir de là que je veut lire les
données de "Feuil1 - Microsoft Excel"
et fermer "Feuil1 - Microsoft Excel" sans l'enregistrer.

isabelle


Le 2014-12-07 14:14, MichD a écrit :
Bonjour Isabelle,

Essaie ceci. Exécute la procédure "Départ"
À mettre le tout dans un module standard.



Private Declare Function apiGetClassName Lib "user32" Alias _
"GetClassNameA" (ByVal Hwnd As Long, _
ByVal lpClassname As String, _
ByVal nMaxCount As Long) As Long
Private Declare Function apiGetDesktopWindow Lib "user32" Alias _
"GetDesktopWindow" () As Long
Private Declare Function apiGetWindow Lib "user32" Alias _
"GetWindow" (ByVal Hwnd As Long, _
ByVal wCmd As Long) As Long
Private Declare Function apiGetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal Hwnd As Long, ByVal _
nIndex As Long) As Long
Private Declare Function apiGetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal Hwnd As Long, ByVal _
lpString As String, ByVal aint As Long) As Long
Private Const mcGWCHILD = 5
Private Const mcGWHWNDNEXT = 2
Private Const mcGWLSTYLE = (-16)
Private Const mcWSVISIBLE = &H10000000
Private Const mconMAXLEN = 255

Dim NomFichier As String, Wk As Workbook
'------------------------------------------------------------------------------------------------------------

Sub Départ()
Dim OpenFileName As String
Dim FolderByDefault As String
Dim OpenFile As Workbook

'************* 2 VARIABLES À DÉFINIR*********************
'nom du fichier à rechercher
'ce qui est écrit dans la barre de titr du fichier.
NomFichier = "Feuil1 - Microsoft Excel"

'Le répertoire à ouvrir par défaut au besoin mais non obligatoire
FolderByDefault = "c:UsersProfileDocuments" '"D:"
'************************************************************

Call Liste_Application

'Wk représennte le fichier déjà ouvert identifier
'au nom de "MonFichier"
If Not Wk Is Nothing Then
If FolderByDefault <> "" Then ChDrive Left(FolderByDefault, 1)
FileDialog_SelectionFichier OpenFileName, FolderByDefault
If OpenFileName <> "" Then
Set OpenFile = Workbooks(OpenFileName)
End If
End If

'ICI tu as 2 variables Workbook représentant chaque fichier.
'Wk = "Le fichier créé par l'entreprise"
'OpenFile = le fichier que tu viens de choisir et d'ouvrir

'Le reste de ta macro...

End Sub
'------------------------------------------------------------------------------------------------------------

Private Function Liste_Application()
Dim lngx As Long, lngLen As Long
Dim lngStyle As Long, strCaption As String

lngx = apiGetDesktopWindow()
lngx = apiGetWindow(lngx, mcGWCHILD)

Do While Not lngx = 0
strCaption = fGetCaption(lngx)
lngx = apiGetWindow(lngx, mcGWHWNDNEXT)
Loop
End Function
'------------------------------------------------------------------------------------------------------------

Private Function fGetCaption(Hwnd As Long) As String
Dim strBuffer As String
Dim intCount As Integer, DerLig As Long
Dim Wk As Workbook, SonNom As String

strBuffer = String$(mconMAXLEN - 1, 0)
intCount = apiGetWindowText(Hwnd, strBuffer, mconMAXLEN)
If intCount > 0 Then
fGetCaption = Left$(strBuffer, intCount)
If InStr(1, fGetCaption, MonFichier, vbTextCompare) > 0 Then
Set Wk = Workbooks(MonFichier)
End If
End If
End Function
'------------------------------------------------------------------------------------------------------------

Private Sub FileDialog_SelectionFichier(OpenFileName As String, _
Optional FolderByDefault As String)
Dim X As Long

With Application.FileDialog(msoFileDialogFilePicker)
'Définit un titre pour la boîte de dialogue
.Title = "Le tite de la fenêtre:"
'Autorise la multi-sélection
.AllowMultiSelect = False
'Le répertoire par défaut
.InitialFileName = FolderByDefault
'Efface les filtres existants.
.Filters.Clear
'Définit une liste de filtres pour le champ "Type de fichiers".
.Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
.FilterIndex = 1
'Indique le type d'affichage dans la boîte de dialogue
'(exemple visualisation des propriétés)
.InitialView = msoFileDialogViewProperties
'Affiche la boîte de dialogue
.Show
'Boucle sur les fichiers sélectionnés
For X = 1 To .SelectedItems.Count
OpenFileName = .SelectedItems(X)
Next
End With
End Sub
'------------------------------------------------------------------------------------------------------------

Avatar
Jacquouille
Bonsoir Isa belle

<<ensuite j'ouvre Cogniview et je crée à partir de là le fichier "Feuil1 -

Vraiment par hasard, ce ce serait pas dans Cogniview qu'il faut paramétrer
le chemin du nouveau fichier que tu crées?

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
m62djf$4q9$

Salut Denis,

merci pour cette macro,
je crois m'avoir mal exprimé,
le fichier recap.xlsm est déjà ouvert (c'est là que je vais mettre la macro)
ensuite j'ouvre Cogniview et je crée à partir de là le fichier "Feuil1 -
Microsoft Excel" mais celui ci s'ouvre dans une instance différente de mon
fichier recap,
je selectionne le fichier récap et c'est à partir de là que je veut lire les
données de "Feuil1 - Microsoft Excel"
et fermer "Feuil1 - Microsoft Excel" sans l'enregistrer.

isabelle


Le 2014-12-07 14:14, MichD a écrit :
Bonjour Isabelle,

Essaie ceci. Exécute la procédure "Départ"
À mettre le tout dans un module standard.



Private Declare Function apiGetClassName Lib "user32" Alias _
"GetClassNameA" (ByVal Hwnd As Long, _
ByVal lpClassname As String, _
ByVal nMaxCount As Long) As Long
Private Declare Function apiGetDesktopWindow Lib "user32" Alias _
"GetDesktopWindow" () As Long
Private Declare Function apiGetWindow Lib "user32" Alias _
"GetWindow" (ByVal Hwnd As Long, _
ByVal wCmd As Long) As Long
Private Declare Function apiGetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal Hwnd As Long, ByVal _
nIndex As Long) As Long
Private Declare Function apiGetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal Hwnd As Long, ByVal _
lpString As String, ByVal aint As Long) As Long
Private Const mcGWCHILD = 5
Private Const mcGWHWNDNEXT = 2
Private Const mcGWLSTYLE = (-16)
Private Const mcWSVISIBLE = &H10000000
Private Const mconMAXLEN = 255

Dim NomFichier As String, Wk As Workbook
'------------------------------------------------------------------------------------------------------------

Sub Départ()
Dim OpenFileName As String
Dim FolderByDefault As String
Dim OpenFile As Workbook

'************* 2 VARIABLES À DÉFINIR*********************
'nom du fichier à rechercher
'ce qui est écrit dans la barre de titr du fichier.
NomFichier = "Feuil1 - Microsoft Excel"

'Le répertoire à ouvrir par défaut au besoin mais non obligatoire
FolderByDefault = "c:UsersProfileDocuments" '"D:"
'************************************************************

Call Liste_Application

'Wk représennte le fichier déjà ouvert identifier
'au nom de "MonFichier"
If Not Wk Is Nothing Then
If FolderByDefault <> "" Then ChDrive Left(FolderByDefault, 1)
FileDialog_SelectionFichier OpenFileName, FolderByDefault
If OpenFileName <> "" Then
Set OpenFile = Workbooks(OpenFileName)
End If
End If

'ICI tu as 2 variables Workbook représentant chaque fichier.
'Wk = "Le fichier créé par l'entreprise"
'OpenFile = le fichier que tu viens de choisir et d'ouvrir

'Le reste de ta macro...

End Sub
'------------------------------------------------------------------------------------------------------------

Private Function Liste_Application()
Dim lngx As Long, lngLen As Long
Dim lngStyle As Long, strCaption As String

lngx = apiGetDesktopWindow()
lngx = apiGetWindow(lngx, mcGWCHILD)

Do While Not lngx = 0
strCaption = fGetCaption(lngx)
lngx = apiGetWindow(lngx, mcGWHWNDNEXT)
Loop
End Function
'------------------------------------------------------------------------------------------------------------

Private Function fGetCaption(Hwnd As Long) As String
Dim strBuffer As String
Dim intCount As Integer, DerLig As Long
Dim Wk As Workbook, SonNom As String

strBuffer = String$(mconMAXLEN - 1, 0)
intCount = apiGetWindowText(Hwnd, strBuffer, mconMAXLEN)
If intCount > 0 Then
fGetCaption = Left$(strBuffer, intCount)
If InStr(1, fGetCaption, MonFichier, vbTextCompare) > 0 Then
Set Wk = Workbooks(MonFichier)
End If
End If
End Function
'------------------------------------------------------------------------------------------------------------

Private Sub FileDialog_SelectionFichier(OpenFileName As String, _
Optional FolderByDefault As String)
Dim X As Long

With Application.FileDialog(msoFileDialogFilePicker)
'Définit un titre pour la boîte de dialogue
.Title = "Le tite de la fenêtre:"
'Autorise la multi-sélection
.AllowMultiSelect = False
'Le répertoire par défaut
.InitialFileName = FolderByDefault
'Efface les filtres existants.
.Filters.Clear
'Définit une liste de filtres pour le champ "Type de fichiers".
.Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
.FilterIndex = 1
'Indique le type d'affichage dans la boîte de dialogue
'(exemple visualisation des propriétés)
.InitialView = msoFileDialogViewProperties
'Affiche la boîte de dialogue
.Show
'Boucle sur les fichiers sélectionnés
For X = 1 To .SelectedItems.Count
OpenFileName = .SelectedItems(X)
Next
End With
End Sub
'------------------------------------------------------------------------------------------------------------





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
isabelle
mais non malheureusement ce pas pas possible,
et je ne veut pas enregistrer ce classeur "Feuil1" qui est créé je veut juste
récupérer les données dans un autre fichier (déjà ouvert)
lorsque je clic sur le bouton (Cogniview) transfert sur excel, la fenetre active
reste celle de Cogniview,
ce que je veut faire c'est activer la fenetre du fichier recap (à la main) et là
par vba importer les données du classeur "Feuil1" puis le détruire.
isabelle

Le 2014-12-07 16:41, Jacquouille a écrit :
Bonsoir Isa belle

<<ensuite j'ouvre Cogniview et je crée à partir de là le fichier "Feuil1 -

Vraiment par hasard, ce ce serait pas dans Cogniview qu'il faut paramétrer le
chemin du nouveau fichier que tu crées?

Jacquouille
Avatar
MichD
Regarde ce fichier : http://cjoint.com/?DLict4SOPJt
Avatar
isabelle
Salut denis,

j'ai enregistrer ton fichier sous le nom recap_pdf.xlsm
et modifier la macro comme suit:

Sub Get_Workbook_Another_Instance()
Dim targetWB As TargetWBType
Dim c As Range
targetWB.name = "Feuil1" 'Nom du fichier que tu recherches

Call GetAllWorkbookWindowNames(targetWB)

If Not Wk Is Nothing Then
'Tu as une variable Workbook(WK) à partir duquel tu peux
'extraire les données du fichier de l'autre instance.

Debug.Print Wk.name

For Each c In Wk.Range("A1:G12")
Range(c.Address) = c.Value
Next
Else
MsgBox "Fichier non trouvé."
End If
End Sub

et fait le test, voici l'image du problème rencontré :
http://cjoint.com/?DLic6CKY0j7

isabelle

Le 2014-12-07 20:13, MichD a écrit :
Regarde ce fichier : http://cjoint.com/?DLict4SOPJt
1 2 3