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 :

Liste de lien hypertexte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut Liste de lien hypertexte
    Bonjour à tous, je vous explique mon probléme.
    Je souhaite créer une liste déroulante ou chacun des noms de celle-ci fait référence à un emplacement dans mon document. (Un peu comme un lien hypertexte).
    Apparement cela n'est pas faisable, ou tout du mois, je ne trouve pas malgré mes recherches.
    Ma page est constitué pour faire simple d'une vingtaine de tableau chacun ayant un nom, et ces ces noms qui seront présents dans ma liste.
    (Je les veut tous sur cette page, car j'ai une centaine de page comme celle-ci)
    J'ai donc penser à faire autrement.
    A chaque création d'une page par mon application, j'écrirais dans celle-ci
    une fonction s'appelant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Public funtion Lien(ByVal stringNom As String)
        select case stringNom
    Et à chaque fois que j'ajoute un tableau (généré par du code VBA), je rajoute une ligne dans la feuille comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Case NomTableau
                Range(intLigne:intLigne).Select
    Une fois que j'ai rempli ma page, il ne me reste alors plus qu'a finir ma fonction en ajoutant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Case Else
                Range("A1").Select
        EndSelect
    End Function
    Ainsi lorsque je choisirai un lien de ma liste, il me renverra sur cette fonction, en passant en paramétre la valeur lue dans la liste. Puis avec le select, je choisirais la case correspondante.

    Voila pour les explications.

    Maintenant le soucis, c'est que je n'arrive pas à trouver comment écrire du code dans ma feuille, quel est la fonction pour le faire.
    JE suis aussi ouvert a toutes propositions plus simple, si par exemple il existe une liste sous excel qui me permet de faire tout cela directement.

    En attendant vos réponses, je vous remercie.
    N'hésitez pas a poser des questions si cela ne vous paraît pas clair

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    et puisque tu cré tes tableau par un code vba, ne serais t'il pas plus simple de générer directement un lien hypertexte. c'est vraiment pas difficile. tu le fais une fois avec l'enregistreur et tu a le code. tu peux très bien par exemple faire une liste de tes tableau de a1 a a100, générer le nom de ton tableau en case A1, et le baptiser tableauX, et faire pointer le lien sur la feuille qui contient ce tableau, quelque soit le nom du tableau, de la feuille qui le contien, ou le nom du fichier. il te suffit de générer la bonne adresse

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    Les liens hypertexte je faisais ca avant, le probléme c'est que ca prend trop de place. Comme sur chaque page j'ai une 20 de tableau, ca èquivaudrait
    a 20 lien hypertexte en début de page. Deplus , j'ai fait en sorte de figer les volets d'excel pour que mon choix déroulant soit toujours visible pour l'utilisateur.

    Enfin, j'ai trouvé la solution a mon probléme, je ne pensé pas que le code associée a une feuille était considéré comme un module (je sait programmer, mais je débute en VBA)

    Pour ceux que ca intéresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Dim VBCodeMod As CodeModule
        Dim LineNum As Long
        ' On récupére le module associée à la page courante
        Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
        With VBCodeMod
            ' On récupére le nombre de lignes existants dans le module et on y ajoute 1
            LineNum = .CountOfLines + 1
            ' Puis on insére à cette ligne le texte ci dessous entre " "
            .InsertLines LineNum, _
            "Public Function TrouverLien(ByVal stringNom As String)" & Chr(13) & _
            "   Select Case stringNom" & Chr(13)
        End With
    End Function
    Voila le genre de fonction qu'il fallait faire

Discussions similaires

  1. [XL-2010] Liste de Lien HyperText
    Par Hephaitos dans le forum Excel
    Réponses: 7
    Dernier message: 22/08/2014, 22h22
  2. [WD-2003] liste de liens hypertexte ?
    Par sabredebois dans le forum Word
    Réponses: 10
    Dernier message: 04/10/2012, 13h19
  3. Faire d'une ligne de liste un lien hypertexte
    Par hugobob dans le forum SharePoint
    Réponses: 6
    Dernier message: 07/04/2009, 09h28
  4. [E-07] Comment créer une liste de liens hypertextes ?
    Par xtremlimit dans le forum Excel
    Réponses: 3
    Dernier message: 11/01/2009, 21h09
  5. lien hypertexte dans une zone de liste
    Par corwin44 dans le forum Access
    Réponses: 1
    Dernier message: 02/11/2005, 11h48

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