Cellule qui renvoye vers un feuillet Excel

Bonjour à toutes t à tous!

J'ai recherché sur le web mais n'ai pas trouvé réponse à ma question...
J'ai un fichier excel avec des onglets qui portent les noms S1, S2, S3 ... (pour semaine 1, Semaine 2...) et je voudrais que si l'on désire se rendre sur la feuille de la semaine x, on ai qu'à rentrer le numéro de la semaine en question dans une cellule qui nous y renverrais automatiquement. Est-ce possible?

Merci!!!

5 réponses

  1. Pour se rendre à une cellule automatiquement, il faut faire une macro du type :
    en a1 de la feuille 1 mettre : S2 et cliquer sur un bouton de macro qui execute un code du type qui t'enverra en S2

    Sub hypertext2()

    x = Cells(1, 1)

    Application.Goto Reference:=Worksheets(x).Range("A1"), _
    scroll:=True

    End Sub

    a+

    jéjé
    0
    1. Ce n'est pas exactement mon problème... Je m'explique plus précisément:

      J'ai une cellule avec "Aller a la semaine x" et je souhaite que sil'on rentre par exemple 38, ça nous envoie directement sur l feuille nommé S38.

      J'espère avoir été plus clair. Merci de ta réponse quand même.
      0
      1. J'avais bien compris,

        Mais je ne sais pas faire autrement que passer par une macro en entrant dans une cellule le nom de la feuille.

        Tu peux aussi passer par une boite de dialogue dans laquelle tu peux mettre le nom de la feuille contenant la semaine a visionner
        0
        1. peux tu m'indiquer comment faire car j'ignore totalement la marche à suivre je ne connait rien aux boite de dialogue...

          Merci!
          0
        2. re bonjour

          Voici donc le code pour la boite de dialogue où il faut juste mattre le num de la semaine et pas S+num de semaine :

          Sub hypertext2()

          x = "s" + InputBox("Quelle semaine ?")

          Application.Goto Reference:=Worksheets(x).Range("A1"), _
          scroll:=True

          End Sub
          0
      2. Contributeur
        Bonjour,

        Une petite macro qui surveille C1 des feuilles dont le nom commence par S et qui active l'onglet Sx s'il existe :
        Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
            If Left(Sh.Name, 1) = "S" And Not Intersect(Target, [C1]) Is Nothing Then 
                On Error Resume Next 
                Worksheets("S" & Target.Value).Activate 
                On Error GoTo 0 
            End If 
        End Sub 
        


        Alt+F11 et coller le code

        eric
        0
        1. Merci beaucoup le code marche!!!

          Je voudrai juste une précision: est-il possible d'effacer la cellule une fois qu'on a tapé dedans?
          Et ma première page (qui s'appelle accueil) permet de renvoyer vers une des semaines de l'année (selection en E16). ESst-il possible d'y attribuer la même fonctionnalité?

          Encore merci!
          0
        2. personne n'as d'idée pour laisser la cellule de saisi vide???
          0
      3. Contributeur
        Bonjour,

        Cette version vide la cellule et gère A16 dans l'onglet 'Accueil' (avec un A majuscule).
        Sur une feuille semaine tu peux saisir A ou a pour retourner à l'accueil.

        Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
            Dim s As Variant
            If (Sh.Name = "Accueil" And Not Intersect(Target, [A16]) Is Nothing) Or (Left(Sh.Name, 1) = "S" And Not Intersect(Target, [C1]) Is Nothing) Then
                Application.EnableEvents = False
                s = Target.Value
                Target.Value = ""
                If UCase(s) = "A" Then
                    Worksheets("Accueil").Activate
                Else
                    On Error Resume Next
                    Worksheets("S" & s).Activate
                    On Error GoTo 0
                End If
                Application.EnableEvents = True
            End If
        End Sub


        eric
        0