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

VBA Word Discussion :

Liens dans listbox


Sujet :

VBA Word

  1. #1
    Membre régulier
    Liens dans listbox
    Bonjour à tous,

    Voilà je souhaiterais une interface utilisateur avec des boutons qui pointe vers un dossier, et sous le bouton l'arborescence
    (uniquement les dossiers) qu'il contiens accessible en cliquant dessus (c'est la que sa coince)

    l'interface, la liste du dossier, sa c'est fait (reste a peaufiner)



    Ce qui me pause problème c'est les liens voici ce que j'ai fait mais sans succès

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub UserForm_Initialize()
     
        For i = 0 To UserForm1.ListBox1.ListCount
            Dim listLien
            listLien = UserForm1.ListBox1.List(i, 0)
            ThisDocument.Hyperlinks.Add Anchor:=listLien, Address:="C:\Users\V_Core\Documents\" & listLien, TextToDisplay:=listLien
        Next i
    End Sub


    la réponse que j'ai et : Erreur d'exécution '424': Objet requis

    merci par avance pour votre aide.
    Tout se sait un jour, il suffit de l'apprendre !

  2. #2
    Expert éminent sénior
    Citation Envoyé par tony76 Voir le message

    Bonjour,

    Dans la création de votre lien, Anchor doit être un objet range dans votre document. Dans votre code, listlien n'est qu'une variable de type string.
    Un exemple dans cette discussion : 1a-nb-vers-1b-na-copie-liens

    En clair, il vous faut sélectionner la chaîne à partir de laquelle s'appliquera le lien.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre régulier
    Merci pour ta réponse Eric KERGRESSE

    Toute fois faire un
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     Range Select
    dans une feuil ok pas de souci

    ce qui me pause un souci comment faire un select du contenu d'une listbox ?

    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
     
    Private Sub UserForm_Initialize()
     
        Dim i As Integer
        Me.Caption = NOM_VERSION
     
        '*******************Path Dossier (Boutton)***************
     
        Variable.Lister_Dossier (Variable.GE)
     
     
        For i = 0 To UserForm1.ListBox1.ListCount - 1
            Dim listLien
            listLien = UserForm1.ListBox1.List(i, 0)
            ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="C:\Users\V_Core\Documents\" & listLien, TextToDisplay:=listLien
        Next i
    End Sub


    Pour l'instant j'ai bien les liens mais dans la feuil moi je souhaiterais dans la listbox et quand je clique j'arrive dans le dossier en question




    Merci à tous par avance.
    Tout se sait un jour, il suffit de l'apprendre !

  4. #4
    Expert éminent sénior
    Citation Envoyé par tony76 Voir le message

    Dans un module standard :
    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 LancerLHyperlien(ByVal NomDuLien As String)
     
    Dim I As Integer
    Dim DocEnCours As Document
     
        Set DocEnCours = ActiveDocument
        With DocEnCours.Range
             For I = 1 To .Hyperlinks.Count
                 With .Hyperlinks(I)
                    If .Range.Text = NomDuLien Then
                       .Follow NewWindow:=False, AddHistory:=True
                    End If
                 End With
             Next I
        End With
        Set DocEnCours = Nothing
     
    End Sub


    Dans le userform, si le ListBox est du type FmMultiSelectSingle :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ListBox1_Click()
            LancerLHyperlien ListBox1.Value
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  5. #5
    Membre régulier
    Merci beaucoup Eric KERGRESSE


    si je peux abusé de tes connaissances

    J'ai une petite erreur dans la condition
    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
     
    Public Sub LancerLHyperlien(ByVal NomDuLien As String)
     
    Dim I As Integer
    Dim DocEnCours As Document
     
        Set DocEnCours = ActiveDocument
        With DocEnCours.Range
             For I = 1 To .Hyperlinks.Count
                 With .Hyperlinks(I)
                    If .Range.Text = NomDuLien Then
                       .Follow NewWindow:=False, AddHistory:=True '<-- ICI
                    End If
                 End With
             Next I
        End With
        Set DocEnCours = Nothing
     
    End Sub


    Le message d'erreur: Erreur d’exécution '4198' la commande a échoué
    Tout se sait un jour, il suffit de l'apprendre !

  6. #6
    Expert éminent sénior
    Citation Envoyé par tony76 Voir le message

    Mettez en ligne un exemple pour voir.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  7. #7
    Membre régulier
    Merci pour l'aide mais mon fichier ne vaux pas passer

    "Fichier non valide" je ne sais pas pourquoi.
    Tout se sait un jour, il suffit de l'apprendre !

  8. #8
    Expert éminent sénior
    Citation Envoyé par tony76 Voir le message

    Il faut le ziper.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  9. #9
    Membre régulier
    Bonjour et encore merci



    ne pas faire attention au commentaires j'ai fait de nombreux test.
    Tout se sait un jour, il suffit de l'apprendre !

  10. #10
    Expert éminent sénior
    Citation Envoyé par tony76 Voir le message

    Les liens ne peuvent pas être appliqués sur les items d'une listbox. Il faudrait d'abord exporter les répertoires dans le document (dans un tableau par exemple) et créer les liens.
    Une autre solution consiste à lister dans une autre listbox le contenu des répertoires et de lancer l'ouverture du fichier choisi avec un bouton.

    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  11. #11
    Membre régulier
    Merci pour sais astuce, je suis pas trop pour exporter dans un tableau dommage que se que je souhaite ne marche pas.

    j'ai 1 question peux t'on récupérer la valeur de l'item lorsqu'on clique sur la listbox ?
    Tout se sait un jour, il suffit de l'apprendre !

  12. #12
    Expert éminent sénior
    Citation Envoyé par tony76 Voir le message

    Si la propriété MultiSelect de la ListBox est 0 - fmMultiSelectSingle :
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  13. #13
    Membre régulier
    Bonjour à tous,

    je reviens vers vous, pour ce que sa intéresse pour avoir des liens cliquable dans une listebox
    j'avais la solution sous les yeux pourtant.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ListBox1_Click()
        Shell Environ("WINDIR") & "\explorer.exe " & Variable.GE & Mid(ListBox1.Value, 4), vbNormalFocus
    End Sub


    Pour le Mid(ListBox1.Value, 4) c'est juste dans la listebox j'insert un point avec des espaces pour les retirer.
    Pour les détails voir dans le fichier zip plus haut
    Tout se sait un jour, il suffit de l'apprendre !