Code Workbook pour cacher un seul fichier excel

Loglana

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit soucis d'affichage. Je ne sais pas si cela vient de ma version d'excel ou bien de mon code (qui me semble bon pourtant).
J'ai mon fichier excel que l'on appellera "BDD" (base de donnée). Je ne veux pas que ce fichier soit visible, mais seulement le userform. C'est pourquoi j'ai créé un code dans ThisWorkbook qui permet d'afficher directement le Userform à l'ouverture du fichier excel, et de cacher le fichier BDD en arrière plan.

Cela fonctionne très bien mais j'ai un soucis. Dans mon userform j'ai un bouton qui m'ouvre une interface me permettant d'ouvrir un fichier excel existant que je choisi dans une liste. Un fois le fichier sélectionné, on clique sur ouvrir mais ce fichier se cache aussi.
Je ne trouve pas la solution pour que tous les fichiers excels soient visible sauf "BDD.xlsm"

Code:
Private Sub Workbook_Open()
Application.Windows("BDD.xlsm").Visible = False
Load UserForm1
UserForm1.Show
ActiveWorkbook.Close False
End Sub

Merci d'avance pour vos réponses !
 

Loglana

XLDnaute Nouveau
Re : Code Workbook pour cacher un seul fichier excel

Bonjour,
Désolé de la réponse un peu tardive. Je viens de regarder ton fichier et cela correspond plus ou moins à ce que je recherche. J'ai fais plusieurs essais dans le code mon Workbook pour que mon fichier excel avec ma base de donnée soit cachée mais en vain. Impossible d'ouvrir un autre fichier excel sans qu'il soit visible
 

sousou

XLDnaute Barbatruc
Re : Code Workbook pour cacher un seul fichier excel

Bonjour
Quant tu dis "impossible d'ouvrir un autre fichier sans qu'il soit visible"
Lequel veux-tu qui soit caché? la Base je suppose!
Joint ton fichier pour que nous puissions comprendre ce qui ce passe
 

Loglana

XLDnaute Nouveau
Re : Code Workbook pour cacher un seul fichier excel

Oui c'est tout à fait ça. Je veux que la base de donnée soit cachée mais que tout autre fichier excel puisse être ouvert et modifiable.
J'ai modifié ma base de donnée pour que cela soit plus compréhensible avec des voitures. Je te laisse regarder le fichier. Merci
 

Pièces jointes

  • Liste voiture Forum.xlsm
    137.5 KB · Affichages: 53
  • Liste voiture Forum.xlsm
    137.5 KB · Affichages: 57

sousou

XLDnaute Barbatruc
Re : Code Workbook pour cacher un seul fichier excel

Bonjour

Il semble qu'il manque un peu de rigueur dans ton code
Module initialisation du userform1:
tu mets sheets("bdd") le fichier étant invisible! Il faut préciser le parent de sheets, dans ce cas parce qu’il est invisible, mais en règle générale dans tout tes code cela t'évitera des déboirs ne laisse pas excel choisir pour toi
Même chose pour la ligne suivante rows.count
Corrige comme ceci:


Private Sub UserForm_Initialize()
Dim LastLig As Long, MonDico As Object, C As Range
With ThisWorkbook
Set F = .Sheets("bdd")
LastLig = F.Range("A" & F.Rows.Count).End(xlUp).Row
Set MonDico = CreateObject("Scripting.Dictionary")
For Each C In F.Range("A2:A" & LastLig)
MonDico(C.Value) = ""
Next C
Me.ComboBox1.List = MonDico.keys
End With
End Sub

et
Private Sub Workbook_Open()
Application.Windows("Liste Voiture Forum.xlsm").Visible = False
UserForm1.Show
End Sub

Je n'ai pas vérifié, mais regarde tu dois en avoir d'autres dans le même genre
 

Loglana

XLDnaute Nouveau
Re : Code Workbook pour cacher un seul fichier excel

Bonjour sousou,

Merci pour l'info. En tant que débutant dans le VBA je n'aurais jamais pu trouver ce soucis seul. Le fichier excel de ma base de donnée est bien caché et les autres fichiers restent visible, c'est ce que je recherchais.
J'ai bien appliqué les modifications au code. Cependant, depuis ces modifications, je ne peux plus ouvrir l'Userform2 via le bouton "Voir détails", il y a un soucis dans le code du CommandButton2 (que je n'ai pourtant pas modifié), je n'arrive pas à voir l'erreur, il me surligne la ligne "Userform2.Show"

Code:
Private Sub CommandButton2_Click()
If TextBox12.Text = "" Then
MsgBox "Choisir un modèle"
End If
If TextBox12.Value >= 1 Then
UserForm2.Show
End If
If TextBox12.Value = 0 Then
MsgBox "Pas de détail"
End If
End Sub

Pour rappel, ce bouton fonctionne si la valeur de la Textbox12 est supérieure ou égale à 1. Tu pourras essayer en y entrant "Audi" dans la marque et "Q5" dans le modèle.

En espérant que tu pourras m'aider, je te laisse le fichier en PJ. Merci d'avance
 

Pièces jointes

  • Liste voiture Forum.xlsm
    141.8 KB · Affichages: 56
  • Liste voiture Forum.xlsm
    141.8 KB · Affichages: 54

sousou

XLDnaute Barbatruc
Re : Code Workbook pour cacher un seul fichier excel

Bonjour
Même punition!
Tu ne précises pas la feuille sur laquelle tu cherches le nombre de ligne....
LastLig = Feuil2.Range("A" & Feuil2.Rows.Count).End(xlUp).Row
Il y en a certainement d'autres....
 

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 603
Membres
112 802
dernier inscrit
Dan Marc