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

Ouverture auto d'un 2ème fichier dans le même répertoire

6 réponses
Avatar
franck001
bonjour à tous,

voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3 etc...
Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls du
même répertoire s'ouvre ?
Je suis parvenu à le faire en absolu:
Private Sub Workbook_Open()
'Ouverture du fichier source
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:\REP1\B.xls")
ThisWorkbook.Activate
End Sub
Mais cela implique un code différent dans A.xls en fonction de chaque
répertoire, comment puis je faire pour avoir un lien en relatif par rapport à
l'endroit où est sauvegardé A.XLS ?

Merci
------(-_-)°zZz------
Franck
http://www.deschamps-web.com

6 réponses

Avatar
P.Bastard
Bonjour, franck001.

LeFichierAOuvrir = ActiveWorkbook.Path & "/B.XLS
devrait le faire.

Bien cordialement,
PB

--
patrick.bastardchezdbmail.com

"franck001" a écrit dans le message de
news:
bonjour à tous,

voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3
etc...
Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls
du
même répertoire s'ouvre ?
Je suis parvenu à le faire en absolu:
Private Sub Workbook_Open()
'Ouverture du fichier source
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:REP1B.xls")
ThisWorkbook.Activate
End Sub
Mais cela implique un code différent dans A.xls en fonction de chaque
répertoire, comment puis je faire pour avoir un lien en relatif par
rapport à
l'endroit où est sauvegardé A.XLS ?

Merci
------(-_-)°zZz------
Franck
http://www.deschamps-web.com



Avatar
Daniel.C
Bonjour.
Dans "Array1", mets les noms des classeurs ouverts et dans "Array2", le nom
des classeurs à ouvrir, dans le même ordre :
par exemple, si C:REP1A.xls est en première position dans Array1,
C:REP1B.xls sera en première position dans Array2

Private Sub Workbook_Open()
Dim ctr As Integer, Array1, Array2
Array1 = Array("C:REP1A.xls", "C:REP1B.xls")
Array2 = Array("C:REP1B.xls", "C:REP1A.xls")
ctr = Application.Match(ThisWorkbook.FullName, Array1, 0)
Workbooks.Open Array2(ctr - 1)
End Sub

--
Cordialement.
Daniel
"franck001" a écrit dans le message de
news:
bonjour à tous,

voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3
etc...
Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls
du
même répertoire s'ouvre ?
Je suis parvenu à le faire en absolu:
Private Sub Workbook_Open()
'Ouverture du fichier source
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:REP1B.xls")
ThisWorkbook.Activate
End Sub
Mais cela implique un code différent dans A.xls en fonction de chaque
répertoire, comment puis je faire pour avoir un lien en relatif par
rapport à
l'endroit où est sauvegardé A.XLS ?

Merci
------(-_-)°zZz------
Franck
http://www.deschamps-web.com


Avatar
Daniel.C
Au temps pour moi :

Private Sub Workbook_Open()
Dim ctr As Integer, Array1, Array2
Array1 = Array("C:REP1A.xls", "C:REP1B.xls")
Array2 = Array("C:REP1B.xls", "C:REP1A.xls")
ctr = Application.Match(ThisWorkbook.FullName, Array1, 0)
On Error Resume Next
Workbooks(Array2(ctr - 1)).Activate
If Err.Number = 0 Then Exit Sub
Workbooks.Open Array2(ctr - 1)
End Sub

Daniel
"Daniel.C" a écrit dans le message de news:

Bonjour.
Dans "Array1", mets les noms des classeurs ouverts et dans "Array2", le
nom des classeurs à ouvrir, dans le même ordre :
par exemple, si C:REP1A.xls est en première position dans Array1,
C:REP1B.xls sera en première position dans Array2

Private Sub Workbook_Open()
Dim ctr As Integer, Array1, Array2
Array1 = Array("C:REP1A.xls", "C:REP1B.xls")
Array2 = Array("C:REP1B.xls", "C:REP1A.xls")
ctr = Application.Match(ThisWorkbook.FullName, Array1, 0)
Workbooks.Open Array2(ctr - 1)
End Sub

--
Cordialement.
Daniel
"franck001" a écrit dans le message
de news:
bonjour à tous,

voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3
etc...
Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls
du
même répertoire s'ouvre ?
Je suis parvenu à le faire en absolu:
Private Sub Workbook_Open()
'Ouverture du fichier source
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:REP1B.xls")
ThisWorkbook.Activate
End Sub
Mais cela implique un code différent dans A.xls en fonction de chaque
répertoire, comment puis je faire pour avoir un lien en relatif par
rapport à
l'endroit où est sauvegardé A.XLS ?

Merci
------(-_-)°zZz------
Franck
http://www.deschamps-web.com






Avatar
papou
Bonjour
Sinon, en complément des réponses fournies, et si tu veux le faire sans VBA,
tu peux regarder du côté de l'espace de travail.
Il s'agit d'une option d'enregistrement qui te permet d'enregistrer un
ensemble de fichiers sous un format XLW (W pour Workspace).
1)Tu ouvres tes deux fichiers.
2) (Excel 2003) Menu Fichier, Enregistrer l'espace de travail
Une fois enregistré, il te suffit d'ouvrir dans Excel ce fichier XLW pour
faire apparaître les classeurs qu'il comprend.

Cordialement
Pascal

"franck001" a écrit dans le message de
news:
bonjour à tous,

voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3
etc...
Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls
du
même répertoire s'ouvre ?
Je suis parvenu à le faire en absolu:
Private Sub Workbook_Open()
'Ouverture du fichier source
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:REP1B.xls")
ThisWorkbook.Activate
End Sub
Mais cela implique un code différent dans A.xls en fonction de chaque
répertoire, comment puis je faire pour avoir un lien en relatif par
rapport à
l'endroit où est sauvegardé A.XLS ?

Merci
------(-_-)°zZz------
Franck
http://www.deschamps-web.com


Avatar
franck001
C'est exactement ça merci mise à part le / qui est
--
------(-_-)°zZz------
Franck
http://www.deschamps-web.com


"P.Bastard" a écrit :

Bonjour, franck001.

LeFichierAOuvrir = ActiveWorkbook.Path & "/B.XLS
devrait le faire.

Bien cordialement,
PB

--
patrick.bastardchezdbmail.com

"franck001" a écrit dans le message de
news:
> bonjour à tous,
>
> voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
> B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3
> etc...
> Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls
> du
> même répertoire s'ouvre ?
> Je suis parvenu à le faire en absolu:
> Private Sub Workbook_Open()
> 'Ouverture du fichier source
> Dim wbk As Workbook
> Set wbk = Workbooks.Open("C:REP1B.xls")
> ThisWorkbook.Activate
> End Sub
> Mais cela implique un code différent dans A.xls en fonction de chaque
> répertoire, comment puis je faire pour avoir un lien en relatif par
> rapport à
> l'endroit où est sauvegardé A.XLS ?
>
> Merci
> ------(-_-)°zZz------
> Franck
> http://www.deschamps-web.com
>




Avatar
franck001
Merci pour ta réponse Daniel mais, mon problème était beaucoup plus simple,
cela dit ce que tu proposes m'intéresse aussi bigrement ! Merci donc
--
------(-_-)°zZz------
Franck
http://www.deschamps-web.com


"Daniel.C" a écrit :

Au temps pour moi :

Private Sub Workbook_Open()
Dim ctr As Integer, Array1, Array2
Array1 = Array("C:REP1A.xls", "C:REP1B.xls")
Array2 = Array("C:REP1B.xls", "C:REP1A.xls")
ctr = Application.Match(ThisWorkbook.FullName, Array1, 0)
On Error Resume Next
Workbooks(Array2(ctr - 1)).Activate
If Err.Number = 0 Then Exit Sub
Workbooks.Open Array2(ctr - 1)
End Sub

Daniel
"Daniel.C" a écrit dans le message de news:

> Bonjour.
> Dans "Array1", mets les noms des classeurs ouverts et dans "Array2", le
> nom des classeurs à ouvrir, dans le même ordre :
> par exemple, si C:REP1A.xls est en première position dans Array1,
> C:REP1B.xls sera en première position dans Array2
>
> Private Sub Workbook_Open()
> Dim ctr As Integer, Array1, Array2
> Array1 = Array("C:REP1A.xls", "C:REP1B.xls")
> Array2 = Array("C:REP1B.xls", "C:REP1A.xls")
> ctr = Application.Match(ThisWorkbook.FullName, Array1, 0)
> Workbooks.Open Array2(ctr - 1)
> End Sub
>
> --
> Cordialement.
> Daniel
> "franck001" a écrit dans le message
> de news:
>> bonjour à tous,
>>
>> voilà mon petit souci, je travaille avec des couples de fichiers A.xls et
>> B.xls qui sont dupliqués dans différents répertoires REP1, REP2, REP3
>> etc...
>> Comment faire pourn, lorsque j'ouvre mon fichier A.xls, le fichier B.xls
>> du
>> même répertoire s'ouvre ?
>> Je suis parvenu à le faire en absolu:
>> Private Sub Workbook_Open()
>> 'Ouverture du fichier source
>> Dim wbk As Workbook
>> Set wbk = Workbooks.Open("C:REP1B.xls")
>> ThisWorkbook.Activate
>> End Sub
>> Mais cela implique un code différent dans A.xls en fonction de chaque
>> répertoire, comment puis je faire pour avoir un lien en relatif par
>> rapport à
>> l'endroit où est sauvegardé A.XLS ?
>>
>> Merci
>> ------(-_-)°zZz------
>> Franck
>> http://www.deschamps-web.com
>
>