IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Lien hypertext vers la dernière feuille d'un classeur [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    Bonjour à tous,

    J'ai bien trouver des tutos sur le sujet mais je n'arrive pas à m'en dépêtrer

    Je reproduit une feuille excel existante à la fin du classeur qui à pour nom une date en format texte, du moins c'est ce que j'ai tenté de faire
    noms est déclarer en string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    noms = Sheets("Feuil1").Range("G2").Text
    Range("A1:U72").Copy
        Sheets.Add After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = noms
        Sheets(Sheets.Count).Range("A1").Select
        ActiveSheet.Paste
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False


    A la fin du code j'essais de créer un lien hypertext sur vers la feuille nouvellement créer sans y parvenir.
    Je retrouve bien dans ma cellule un lien hypertext qui fait référence au nom de ma feuille mais qui n'y mène pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    With Sheets("Suivi")
            Ligne = .Range("A500").End(xlUp).Row + 1
            .Cells(Ligne, 1) = noms
             .Cells(Ligne, 1).Hyperlinks.Add Anchor:=.Cells(Ligne, 1), Address:="", SubAddress:=Sheets(Sheets.Count).Name
    Merci pour votre aide

    cordialement

    J'ai modifier un peu la ligne de code en m'inspirant des tutos que j'ai trouvé sur le forum mais j'obtien toujours "référence non valide" quand je clique sur le lien hypertext

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Cells(Ligne, 1).Hyperlinks.Add Anchor:=.Cells(Ligne, 1), Address:="", SubAddress:="Sheets(Sheets.Count).Name!A1", TextToDisplay:=Sheets(Sheets.Count).Name

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il faut sortir tes variables des guillemets si tu veut utiliser leur contenu et par leur nom , modifie le paramètre subAddress

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SubAddress:=Sheets(Sheets.Count).Name & "!A1"

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    décidément rien à faire, lien toujours invalide, si je fais modifier le lien hypertexte, il n'y a pas de feuille sélectionnées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With Sheets("Suivi")
            Ligne = .Range("A500").End(xlUp).Row + 1
            .Cells(Ligne, 1) = noms
             .Cells(Ligne, 1).Hyperlinks.Add Anchor:=.Cells(Ligne, 1), Address:="", SubAddress:=Sheets(Sheets.Count).Name & "!A1", TextToDisplay:=Sheets(Sheets.Count).Name
            End With
    Le texte dans la cellule est bien identique au nom de la feuille, le lien est bien créer mais il ne mène nul part...

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 178
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une autre variante pour créer un lien hypertexte est l'utilisation de la formule LIEN_HYPERTEXTE que je trouve moins lourd à mettre en place.
    Exemple d'un lien vers la cellule A1 de la feuille 2013-04-30 du classeur contenant la formule et qui se nomme TestHyperlink.xls
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE("[TestHyperlink.xls] '2013-04-30'!A1";"La feuille 2013-04-30")
    Le deuxième argument de la formule est facultatif.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    J'abandonne les liens hypertexte, pas moyen d'y arriver
    je contourne le problème avec une listbox qui sera plus jolie que ma feuille, de plus elle viendra complétée l'userform ou seront centralisées les autres fonction du classeur

    encore merci pour votre aide mais je ne comprend pas toujours tout alors j’essaie de faire avec mes maigres moyens

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Je vois pas .... comment est initialisé ta variable noms ?

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 178
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Un petit exemple de code qui crée une feuille, lui donne comme nom la date du jour au format AAAA-MM-JJ et crée un lien Hypertexte dans la feuille nommée [MENU] vers la cellule A1 de la feuille venant d'être crée et ce avec la formule LIEN_HYPERTEXTE
    La cellule A1 de la feuille [Menu] contient le nom de l'étiquette par exemple Liens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Creation()
     Dim SheetName As String, Row As Long, Formula As String
     SheetName = Format(Date, "YYYY-MM-DD")
     On Error Resume Next
     With ThisWorkbook
     .Sheets(SheetName).Activate
     ' Si erreur cela signifie que la feuille n'existe pas
      If Err Then
       .Sheets.Add After:=Sheets(Sheets.Count): .Sheets(Sheets.Count).Name = SheetName
       With .Worksheets("Menu")
        Row = .Range("A1").CurrentRegion.Rows.Count + 1
        ' cf =LIEN_HYPERTEXTE("[TestHyperlink.xls] '2013-04-30'!A1";"2013-04-30")
        Formula = "=HYPERLINK(" & Chr(34) & "[" & ThisWorkbook.Name & "]'" & SheetName & "'!A1" & Chr(34) & "," & Chr(34) & SheetName & Chr(34) & ")"
        Debug.Print Formula
        .Range("A" & Row) = Formula
       End With
      End If
     End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    maintenant j'utilise la variable noms pour nommer la feuille créer et pour remplir un tableau avec le nom des feuilles, ensuite je remplis une listbox avec les noms du tableau et quand je clique sur un nom j'active la feuille correspondante

    Je ne suis pas arriver à faire autrement, avec l'une ou l'autre solution. Peu etre qu'office 2013 à encore quelques allergies
    mais je pense que ce doit être moi qui radote


    encore un grand merci pour tous vos efforts pour m'aider

    Voilà la fonction qui remplace le lien hypertexte ; c'est tout simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub WorksheetLoop()
     
             Dim WS_Count As Integer
             Dim I As Integer
     
             Dim N As String
    'j'incrémente N avec la variable sélectinnée dans la listbox
    N = accueil.List1.Text
     
             WS_Count = ActiveWorkbook.Worksheets.Count
    'j'effectue une boucle sur toute les feuilles du classeur
             For I = 1 To WS_Count
    'si N correspond au nom de la feuille, j'ouvre celle-ci
                If N = Worksheets(I).Name Then
                Worksheets(I).Activate
    End If
             Next I
     
          End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un lien hypertexte vers une feuille nouvellement créée
    Par BOU59000 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/09/2023, 12h54
  2. [XL-2007] Lien hypertexte vers feuille (sur graphique)
    Par m@tix dans le forum Excel
    Réponses: 2
    Dernier message: 04/07/2011, 14h13
  3. Réponses: 1
    Dernier message: 17/03/2009, 21h24
  4. Excel : lien hypertexte vers un autre fichier avec nom page
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 09h33
  5. Comment exporter un lien hypertexte vers excel
    Par Celia1303 dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo