Cellule qui renvoye vers un feuillet Excel

Fermé
Skeo - 14 avril 2010 à 15:08
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 15 avril 2010 à 11:43
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 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 15:35
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
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 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 16:39
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
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 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 17:22
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
Modifié par eriiic le 14/04/2010 à 17:06
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
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
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
15 avril 2010 à 11:43
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