Problème affichage fichier excel avec userform

Loglana

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit soucis avec un de mes codes dans mon Userform.
J'ai un bouton qui me permet d'ouvrir un fichier excel via un lien.
La boite de dialogue pour ouvrir le fichier fonctionne et va très bien sur le lien demandé. Mais au moment de sélectionner le fichier excel désiré et de faire "ouvrir" cela ne fonctionne pas.
Il faudrait que lorsqu'on clique sur le bouton ouvrir de la boite de dialogue l'userform se ferme et que cela ouvre juste le fichier sélectionné.

Mais je pense avoir trouvé le soucis. Dans mon module, j'ai choisi de cacher mon fichier excel (ma base de donnée d'où est tiré mon userform), qui était en fond. Je ne veux pas qu'elle apparaisse. Mais cela cache aussi mon fichier excel ouvert via mon bouton.

Code:
Private Sub Workbook_Open()
Application.Visible = False
Load UserForm1
UserForm1.Show
ActiveWorkbook.Close False
End Sub
Le code de mon bouton pour ouvrir le fichier excel demandé

Code:
Private Sub CommandButton3_Click()
Dim Fichier As String
Fichier = "C\Lien du document" & ComboBox1.Value
If Dir(Fichier, vbDirectory) <> "" Then
Application.Dialogs(xlDialogOpen).Show Fichier
Else
MsgBox "Fichier introuvable"
End If

Quelqu'un a t-il la solution me permettant de cacher ma base de donnée et de pouvoir tout de même ouvrir un fichier excel via mon bouton ?

Merci d'avance
 

Papou-net

XLDnaute Barbatruc
Re : Problème affichage fichier excel avec userform

Bonjour Loglana,

Pas facile de répondre à brûle-pourpoint sur des extraits de code dont on ne sait à quoi ils se rattachent.

Toutefois, je te suggère de faire un essai en désactivant la ligne ActiveWorkbook.Close False.

A +

Cordialement.
 
Dernière édition:

Loglana

XLDnaute Nouveau
Re : Problème affichage fichier excel avec userform

Bonjour Papou-net,

Le reste du code ne nous avancera pas plus sur le sujet. Le soucis vient du module Workbook.
La version d'excel que je possède ne permet pas d'ouvrir 2 fichiers excel en même temps sur 2 pages différentes, c'est à dire qu'il faut obligatoirement basculer via les onglets de la barre des tâches pour naviguer entre les fichiers, on ne peut pas avoir les deux d'ouvert côte à côte.

J'ai essayé comme tu m'as dis de désactiver ActiveWorkbook.Close False mais cela ne fonctionne pas. J'ai toujours mon fichier ouvert via le bouton qui est caché comme ma base de donnée.

Ne serait-ce pas possible de cacher juste un fichier excel spécifique tout en laissant apparent les autres ?
(le code que j'ai mis ci-dessous ne fonctionne pas mais peut-être qui en existe un dans ce style)
Private Sub Workbook_Open()
Application "Nom de la base de donnée.xlsm" .Visible = False <-------
Load UserForm1
UserForm1.Show
ActiveWorkbook.Close False
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Problème affichage fichier excel avec userform

RE:

OK, dit comme celà c'est plus clair.

Voici donc la syntaxe pour masquer un classeur ouvert:

Code:
Application.Windows("***").Visible = False
Il suffit de remplacer les *** par le nom du fichier concerné (en conservant les guillemets mais sans l'extension).

A +

Cordialement.
 

Loglana

XLDnaute Nouveau
Re : Problème affichage fichier excel avec userform

Ok très bien. Je viens d'apporter la modification mais cela me met un message "Erreur d'exécution 9"

Code:
Private Sub Workbook_Open()
Application.Windows("Nom du fichier excel qui ouvre directement mon UserForm").Visible = False
Load UserForm1
UserForm1.Show
ActiveWorkbook.Close False
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Problème affichage fichier excel avec userform

RE:

Apparemment, le fichier nommé "Nom du fichier excel qui ouvre directement mon UserForm" n'existe pas ou bien est ouvert dans une autre session d'Excel. En effet, il est indispensable que le deuxième fichier soit ouvert dans la même session que le premier.

La version d'excel que je possède ne permet pas d'ouvrir 2 fichiers excel en même temps sur 2 pages différentes, c'est à dire qu'il faut obligatoirement basculer via les onglets de la barre des tâches pour naviguer entre les fichiers, on ne peut pas avoir les deux d'ouvert côte à côte.
As-tu essayé d'ouvrir le deuxième fichier dans la même fenêtre Excel que le premier.

Enfin, je t'ai induit en erreur: il faut bien mettre l'extension du fichier après le nom entre guillemets.

Au fait, quelle est ta version d'Excel?

A +

Cordialement.
 

Loglana

XLDnaute Nouveau
Re : Problème affichage fichier excel avec userform

le fichier nommé "Nom du fichier excel qui ouvre directement mon UserForm" existe bien. C'est le nom de mon fichier excel ou j'ai tout mon VBA et ma base de donnée. Et il n'est bien ouvert que sur mon PC pour par de soucis sur ce point là

J'ai essayé de changer le code en rajoutant l'extension du fichier entre les guillemets mais cela me donne ce message d'erreur :
Erreur d'exécution 1004
La méthode 'Sheets' de l'objet '_Global' a échoué
Le débogage me surligne la ligne : Load UserForm1

Je suis sur la version 2007 d'Excel professionnelle
 

Papou-net

XLDnaute Barbatruc
Re : Problème affichage fichier excel avec userform

RE:

La solution que je t'ai suggérée fonctionne parfaitement chez moi.

La syntaxe Application.Windows("Nom du Fichier...UserForm.xlsx").visible = False est correcte. Donc je ne vois pas d'où vient le problème. Peut-être la configuration de ton système?

Je te joins 2 fichiers pour tester chez toi. Tu les ouvres dans une même session de travail, tu actives Classeur1.xlsm et en cliquant sur le bouton de commande tu devrais voir disparaître Classeur2.xlsx de la barre des tâches. Un nouveau clic sur le bouton le fera apparaître à l'écran.

A +

Cordialement.

PS: les fichiers sont vides, c'est juste pour les essais.
 

Fichiers joints

Loglana

XLDnaute Nouveau
Re : Problème affichage fichier excel avec userform

Merci pour tes fichiers Papou-net. Malheureusement ce n'est pas tout à fait ce que je recherche dans mon programme.

Mon fichier excel se cache directement à l'ouverture de mon userform. Jusque là tout vas bien. Mais c'est au moment d'ouvrir un second fichier excel que celui-ci se cache aussi. Il faudrait qu'il n'y ai que mon fichier excel (base de donnée) qui se cache et que tous les autres soient ouvert dans de nouvelles sessions.

En prenant l'exemple de tes fichiers: Tu ouvres le Classeur1. Un Userform s'ouvre où ton CommandButton y est inséré. Mais tu ne vois que le Userform et pas le Classeur1 en fond. Quand tu cliques sur ton CommandButton, une nouvelle session excel s'ouvre (modifiable/enregistrable) en laissant le classeur1 caché.

Merci de tes réponses
 

Discussions similaires


Haut Bas