Bonjour à tous,

Voici ma problématique :
Je dois à partir d'un classeur Excel vérifier dans un grand nombre de classeur (environ 200) si certains onglet sont visible et quel est leur couleur !
Exemple :
Mon classeur B est fermé et contient 3 onglets :
  • Onglet1 qui est visible et en vert
  • Onglet2 qui est visible et en rouge
  • Onglet3 qui est masqué et en rouge

Je travail dans mon classeur A et je souhaiterais afficher pour chaque onglet les 3 informations :
  • Nom de l'onglet
  • Visibilité de l'onglet
  • Couleur de l'onglet

Pour le moment j'ai un début de code me permettant de lister les onglets (visible ou non) présent dans mon fichier B sans l'ouvrir via une connection ADOX.

Savez-vous si il est possible de faire remonter les informations sur la visibilité et la couleur via ADOX ?
Si oui avez-vous une piste pour le codage ?
Si c'est pas possible, avez-vous une autre idée de connexion possible pour faire remonter ces informations ?

Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub ListeFeuillesClasseurFerme()
    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim xlSheet As Variant
 
    'Définit le classeur fermé servant de base de données
    Fichier = "C:\Users\fichierB.xlsm"
 
 
    Set Cn = New ADODB.Connection
    Set cat = CreateObject("ADOX.Catalog")
    '--- Connexion ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=yes;"""
        .Open
    End With
    '-----------------
 
Set cat.ActiveConnection = Cn
For Each Feuille In cat.Tables
If Right$(Feuille.Name, 1) = "$" Then
Resultat = Resultat & Feuille.Name & vbCrLf
End If
Next
MsgBox Resultat
'--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
    Set cat = Nothing
End Sub