Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un onglet

Flavzzz

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord, merci à vous et aux administrateurs pour nous permettre de trouver des solutions à nos problèmes !
Merveilleux forum !

Je ne connais rien en VBA et j'ai pu, avec le forum, faire des petites manip' tout seul comme un grand !!!

Voilà, j'ai un classeur avec plusieurs onglets.
J'ai fait une macro dans THISWORKBOOK pour faire des liens vers des onglets cachés. Ca ca marche.
Ensuite, je voudrais aussi qu'à l'ouverture du classeur, celui-ci s'ouvre sur un onglet particulier, en l'occurrence, "Page Principale".

Seulement voilà. Je note ces deux codes dans THISWORKBOOK et seulement le code pour les liens fonctionne. Pour ce qui est de l'ouverture du classeur sur un onglet précis, ça merdouille...

Je précise que lorsque je mets une seule des 2 macros à chaque fois, ca fonctionne. Quand je mets les 2, ca merdouille !

Quelqu'un pourrait-il me dépatouiller svp ?
J'ai également une autre question sur ce même classeur mais je vais ouvrir un autre topic.

Merci
 

Pièces jointes

  • Structuration RTBM.zip
    46.6 KB · Affichages: 53

Flavzzz

XLDnaute Nouveau
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Finalement, je vais également poser mon autre question ici, car peut-être qu'il faut réfléchir pour l'ensemble et que les codes peuvent avoir des conséquences les uns avec les autres lorsque l'on en met plusieurs.

Voilà, dans l'onglet 'Page Principale', j'ai une colonne MAJ. Je souhaiterais qu'à chaque fois qu'un onglet est modifié, la date s'affiche dans la colonne MAJ. J'espère être assez clair, si je ne le suis pas, j'en suis désolé...
 

JCGL

XLDnaute Barbatruc
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Bonjour à tous,
Bienvenue sur XLD,

Pas de problème chez moi tant sous XL 2003 ou XL 2010.
Les liens fonctionnent et la page principale est bien masquée

A + à tous
 

Flavzzz

XLDnaute Nouveau
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Ok, merci pour ta réponse.
Mais si tu enregistres le fichier sur un onglet autre que "Page Principale", est ce qu'en rouvrant le classeur, celui ci pointe sur l'onglet "Page Principale" ? Car moi non...
 

JCGL

XLDnaute Barbatruc
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Bonjour à tous,

Exact...

Peux-tu essayer ceci dans le ThisWorkBook :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Sheets("Page Principale").Visible = True
    ActiveSheet.Visible = False
End Sub


Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    On Error Resume Next
    Set Ws = Sheets(Target.Name)
    If Not Ws Is Nothing Then
        Ws.Visible = True
        Sh.Visible = False
    End If
    On Error GoTo 0
End Sub


Private Sub Workbook_Open()
    With Sheets("Page Principale")
        .Visible = True
        .Select
    End With
End Sub

A + à tous
 

JCGL

XLDnaute Barbatruc
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Bonjour à tous,

Pour la date lors de la sélection d'une feuille :

VB:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    On Error Resume Next
    Set Ws = Sheets(Target.Name)
    Sheets("Page Principale").Cells(ActiveCell.Row, 1) = Date
    If Not Ws Is Nothing Then
        Ws.Visible = True
        Sh.Visible = False
    End If
    On Error GoTo 0
End Sub

A + à tous
 

Flavzzz

XLDnaute Nouveau
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Merci JCGL !!
Les liens et la réouverture sur la bonne page, ca fonctionne nickel chrome. Quelle réactivité et perspicacité :cool:

Par contre, pour la date dans la colonne MAJ de l'onglet "Page Principale", ca ne fonctionne pas.
En fait, il serait bien que lorsque l'utilisateur ajoute du texte dans les autres onglets, la date à laquelle ont lieu les rajouts se note dans la dite colonne...

En tout cas merci déjà pour tout. Je pense que pour la première solution que tu_ m'as offert, je n'aurais pu le trouver moi-même....
 

Flavzzz

XLDnaute Nouveau
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Oui, effectivement ça fonctionne.
Seulement, si la personne consulte l'onglet désiré, la date est mise à jour. La nuance est qu'il faudrait que la date se mette à jour que lorsque l'utilisateur inscrit quelque chose dans l'onglet en question. Si la personne consulte un onglet mais n'y inscrit rien à l'intérieur, il ne faudrait pas que la date change.
J'ai essayé de trouvé quelque chose en m'inspirant de ton dernier code mais je n'y arrive pas...désolé
 

Littledave

XLDnaute Junior
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Bonsoir Flavzzz et JCGL,

Pour ton problème de mise à jour de la date, j'utilliserai la trappe Change de chaque page sur lesquelles tu souhaites avoir un suivi.
Dans cette procédure tu peux demander sur chaque changement dans la page de mettre a jour dans la page principale la ligne voulue avec la date et l'heure du moment.

@++
David
 

JCGL

XLDnaute Barbatruc
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Bonjour à tous,

Peux-tu essayer ?
Toujours dans le ThisWorkBook :

VB:
Option Explicit


Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Sheets("Page Principale").Visible = True
    ActiveSheet.Visible = False
End Sub


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If ActiveSheet.Name <> "Page Principale" Then
        With Sheets("Page Principale")
            .Activate
            .Cells(ActiveCell.Row, 1) = Now
        End With
    End If
End Sub


Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim Ws As Worksheet
    On Error Resume Next
    Set Ws = Sheets(Target.Name)
    If Not Ws Is Nothing Then
        Ws.Visible = True
        Sh.Visible = False
    End If
    On Error GoTo 0
End Sub


Private Sub Workbook_Open()
    With Sheets("Page Principale")
        .Visible = True
        .Select
    End With
End Sub

A + à tous
 

Flavzzz

XLDnaute Nouveau
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

SUPER !!!
Un grand merci, tout fonctionne, vous êtes tous super !!!

Pour ma culture générale, qu'est-ce que le "trappe Change" ?? C'est aussi une macro ?

Merci encore à ce fabuleux forum
 

Littledave

XLDnaute Junior
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

Salut Flavzzz et JCGL,

Plutôt que trappe j'aurai du appeler cela l’évènement, Change en l’occurrence ;-)

Les macros sont activées sur un évènement dans excel (ici l'évènement est Change, c'est à dire qu'à chaque changement de valeur dans ton classeur, la macro workbook_sheetchange est activée et son code interprété)

voilà
@++
David
 

Si...

XLDnaute Barbatruc
Re : Faire des liens vers des onglets masqués + forcer classeur à s'ouvrir sur un ong

salut tous

Si... tu veux une macro en moins :
Code:
Private Sub Workbook_Open()
  For i = 1 To Sheets.Count
    Sheets(i).Visible = Sheets(i).Name = "Page Principale"
  Next
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
  Set WS = Sheets(Target.Name)
  Application.ScreenUpdating = False
  WS.Visible = Not WS Is Nothing
  Sh.Visible = WS Is Nothing
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Nom = "Page Principale"
  Application.EnableEvents = False
  If Sh.Name <> Nom Then Sheets(Nom).Cells(ActiveCell.Row, 1) = Date
  Application.EnableEvents = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95