Cellule qui renvoye vers un feuillet Excel

Skeo -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
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!!!

A voir également:

5 réponses

jejelefou Messages postés 310 Statut Membre 42
 
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
Skeo
 
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
jejelefou Messages postés 310 Statut Membre 42
 
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
Skeo
 
peux tu m'indiquer comment faire car j'ignore totalement la marche à suivre je ne connait rien aux boite de dialogue...

Merci!
0
jejelefou Messages postés 310 Statut Membre 42
 
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
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
Skeo
 
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
Skeo
 
personne n'as d'idée pour laisser la cellule de saisi vide???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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