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
Partager