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
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
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!
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
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...
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
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...