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 ?
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
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
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.
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é
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.
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é.