bouton additionnel pour ouvrir fichier

  • Initiateur de la discussion Initiateur de la discussion fredh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fredh

XLDnaute Occasionnel
Bonsoir le forum
J'ai creer une nouvelle barre d'outil dans laquelle j'ai creer plusiseurs bouton.
Chacun de ces bouton est associer a une macro qui m'ouvre un fichier.
au depart j'avais juste
Code:
Workbooks.Open FileName:="C:\chemin\fichier.xls"
Mais j'avais une erreur quand je cliquai sur le bouton et que le fichier etait deja ouvert. J'ai donc changer mon fusil d'epaule et j'ai tenter ceci :
Code:
Option Explicit
Sub fichier1()
Org_Book = "fichier1.xls"
Path_Orig = "C:\chemin1\"
Open_Datei
End Sub
 
Sub fichier2()
Org_Book = "fichier2.xls"
Path_Orig = "C:\chemin2\"
Open_Datei
End Sub
 
Sub fichier3()
Org_Book = "fichier3.xls"
Path_Orig = "C:\chemin3\"
Open_Datei
End Sub
 
Sub Open_Datei
For Each wk In Workbooks
    If wk.Name = Org_Book Then
        Workbooks(Org_Book).Activate
    End If
Next wk
If ActiveWorkbook.Name <> Org_Book Then
'Or ActiveWindow.Visible = False
    Workbooks.Open FileName:=Path_Orig & Org_Book
End If
End Sub

De cette facons je peut cliquer sur n'importe quel bouton et cela me met en premier plan le fichier voulu.
Le code marche sauf quand je n'ai que excell ouvert sans aucun fichier (sauf un fichier masquer qui se trouve dans programmefiles\office\xlstart).
Il faudrait donc que j'arrive a tester le nom du fichier masquer.
Ou alors a tester que le nombre de fichier ouvert soit egale a 1 (seuleemnt mon fichier masquer).
Voila je ne sais pas comment proceder alors une aide, un avis ou un commentaire serait le bienvenu.
Merci a tous
 
Re : bouton additionnel pour ouvrir fichier

Bonsoir fredh,

Une piste ( pas testé) :

En fait tu as au moins deux classeurs ouverts, excel et le classeur masqué

Sub Open_Datei
Dim wk as workbook 'déclare la variable wk, tu as mis option explicit au début
For Each wk In Workbooks
If wk.Name = Org_Book Then
Workbooks(Org_Book).Activate
Else
If ActiveWorkbook.Name <> Org_Book and Workbooks.Count >= 2 Then
Workbooks.Open FileName:=Path_Orig & Org_Book
End If
End if
Next wk

End Sub
Bonne nuit

P.O
 
Re : bouton additionnel pour ouvrir fichier

Bonsoir bqtr, le forum
J'essaye cela demain matin parce que ma barre d'outil est sur une autre becane, mais je pense que tu piste a tout d'une gagnante....
Je te tien au courant demain

et pour wk je l'ai declarer en public dans un autre modul, mais j'ai oublier de le preciser..😱

Merci et bonne nuit
 
Dernière édition:
Re : bouton additionnel pour ouvrir fichier

Re,

La première solution ne marche pas.

J'ai donc crée les 3 repertoires et les 3 fichiers, puis ouvert Ecxel seul.
Avec le code suivant ca à l'air de fonctionner, même si aucun des 3 fichiers n'est ouvert ou s'il y en a déjà un actif.

Option Explicit
Public Org_Book As String
Public Path_Orig As String

Sub fichier1()
Org_Book = "fichier1.xls"
Path_Orig = "C:\chemin1\"
open_Datei
End Sub

Sub fichier2()
Org_Book = "fichier2.xls"
Path_Orig = "C:\chemin2\"
open_Datei
End Sub

Sub fichier3()
Org_Book = "fichier3.xls"
Path_Orig = "C:\chemin3\"
open_Datei
End Sub

Sub open_Datei()
If ActiveWorkbook.Name <> Org_Book Then
Workbooks.Open Filename:=Path_Orig & Org_Book
End If
End Sub

A toi de voir si ca te convient.

Bonne matinée

P.O
 
Re : bouton additionnel pour ouvrir fichier

Bonjour Bqtr

je suis parti sur ta piste de hier soir pour faire cela :

Code:
Option Explicit
Public Org_Book As String
Public Path_Orig As String

Sub fichier1()
Org_Book = "fichier1.xls"
Path_Orig = "C:\chemin1\"
open_Datei
End Sub

Sub fichier2()
Org_Book = "fichier2.xls"
Path_Orig = "C:\chemin2\"
open_Datei
End Sub

Sub fichier3()
Org_Book = "fichier3.xls"
Path_Orig = "C:\chemin3\"
open_Datei
End Sub

Sub open_Datei()
For Each wk In Workbooks
    If wk.Name = Org_Book Then
        Workbooks(Org_Book).Activate
    End If
Next wk
On Error Resume Next    'Valide la gestion d'erreur
If Workbooks.Count = 1 Or ActiveWorkbook.Name <> Org_Book Then
    Workbooks.Open FileName:=Path_Orig & Org_Book
End If
On Error GoTo 0     'Invalide la gestion d'erreur
End Sub

Quand je n'ai que Excell et un fichier masquer ouvert alors la condition Workbooks.Count = 1 est True
par contre la condition ActiveWorkbook.Name <> Org_Book donne une ereur que je "shunt" par On Error Resume Next et On Error GoTo 0

Ta nouvelle proposition ne marche si excel et un fichier masquer sont ouvert car la macro ramene une erreur....

Voila maintenant un clique sur un bouton m'ouvre le fichier quelque soit sont etat (ouvert ou fermer).

Merci beaucoup du coup de main rapide et au plaisir de te relire.
Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
Réponses
1
Affichages
1 K
Retour