affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

daronne

XLDnaute Nouveau
Bonjour à tous,

Voici ce que j'aimerais mettre en place dans mon fichier excel:
Mon but est de pouvoir faire apparaitre un onglet de mon fichier en premier lors de l'ouverture de celui-ci.
Mais il y a une condition. Cet onglet doit s'ouvrir en premier si et seulement si certaines cellules sont égales à "no". Lorsqu'elles sont toutes égales à "yes", on pourra ouvrir le fichier sur n'importe quel autre onglet...

J'espère que j'aurais été assez clair
Merci d'avance à tous
 

RENAUDER

Nous a quitté
Repose en paix
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

Bonjour,
Tu peux essayer et adapter
Code:
Private Sub Workbook_Open()
' Test des cellules
    For Each sht In Worksheets
        If sht.Range("A1").Value = "no" Then
            sht.Visible = xlSheetVeryHidden
        Else
            sht.Visible = xlSheetVisible
        End If
    Next sht
    Sheets(1).Activate
End Sub
 

2passage

XLDnaute Impliqué
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

Bonjour,

oui sauf que je mettrais plutot en before_save : en workbook_open, le fichier est totalement accessible si on choisit de ne pas executer les macros.

Slts
:)
 

daronne

XLDnaute Nouveau
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

Pour répondre à RENAUDER

Ici je crois comprendre que l'on fait une boucle et que l'on cherche si une cellule est égale à "no" dans chaque feuille, or ce test ne se fait que dans une feuille et lorsqu'une certaine cellule est égale à "no" alors la feuille devient active (c'est la première que l'on voit). Si c'est " yes" c'est une autre feuille qui s'affiche en premier!!

Que faire? je débute et ai du mal à adapter votre code!

Merci de votre compréhension
 

tototiti2008

XLDnaute Barbatruc
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

Bonjour Daronne,

Si tes yes/no sont dans la Feuille1 en A1:A5 :

Dim C as range, Boo as boolean
Boo = true
For each C thisworkbook.worksheets("Feuille1").range("A1:A5")
if C.value = no then Boo = false
Next C
if Boo then
thisworkbook.worksheets("Feuille2").activate
else
thisworkbook.worksheets("Feuille1").activate
end if
 

daronne

XLDnaute Nouveau
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

Cela me fait une erreur de compilation, erreur de syntaxe à la ligne:
For each C thisworkbook.worksheets("Feuil17").range("G5:G9"),
pourquoi? je ne comprends pas...

Merci de m'aider
 

daronne

XLDnaute Nouveau
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

Toujours sur la même ligne apparament...

Sub Auto_open()

Dim C As Range, Boo As Boolean
Boo = True
For Each C In ThisWorkbook.Worksheets("Feuil17").Range("G5:G9")
If C.Value = No Then Boo = False
Next C
If Boo Then
ThisWorkbook.Worksheets("Sheet1").Activate
Else
ThisWorkbook.Worksheets("Feuil17").Activate
End If

End Sub
 

daronne

XLDnaute Nouveau
Re : affichage d'un onglet prioritairement lors de l'ouverture d'un fichier excel

C'est bon ça marche, je te dirais pas où je bloquais (je suis un boulet!!
Non en fait c'était juste le nom des feuilles qui n'était pas bon!
Merci beaucoup en tout cas de partager tes connaissances et aussi de ta patience
On se recroisera surement vu que je débute et qu'il faut que je rajoute des conditions à ce que je viens de faire...
 

Discussions similaires

Statistiques des forums

Discussions
311 998
Messages
2 084 457
Membres
102 581
dernier inscrit
Michou