XL 2019 Lien hypertexte interne - modifications automatiques selon la feuille

Guillaume.Boulay

XLDnaute Nouveau
Bonjour à tous !
Je vais essayer d'être le plus clair possible.
J'ai plusieurs fichiers contenant chacun les feuilles de temps bi-hebdomadaire d'un employé.
Ceux-ci inscrivent leurs heures dans la feuille "Horaire". Ces heures sont envoyées dans la feuille de temps de la semaine en question, où les calculs de salaire sont effectués.
Comme les employés peuvent accumuler des heures, le bilan (+-) des heures effectuées est mis en évidence dans une feuille "bilan des heures".
Afin d'en améliorer, j'aimerais créer des hyperliens entre ces différentes feuilles, et que la référence se modifie selon le fichier et les feuilles/cases cibles.

J'ai essayé d'adapter des VBA d'autres réponses, mais rien de fonctionne... Mais je sais que c'est un "Code 18" comme on dit chez nous ;)
Voici un fichier expliquant le concept.
Je n'ai pas de problème à être redirigé vers une réponse déjà existante pouvant m'aider, mais de mon côté, je n'ai rien trouvé.

Merci de votre aide !!
 

Pièces jointes

  • Lien interne.xlsx
    21 KB · Affichages: 11
Dernière édition:

Guillaume.Boulay

XLDnaute Nouveau
Comme je disais... c'est probablement moi le problème, mais je n'arrive même pas à faire fonctionner les commandes présentées dans le fil !!
Mais une des chose qui est cruciale, c'est que le "file_path" doit se modifier automatiquement pour s'accorder au nom et emplacement du fichier, puisqu'il appelé à changer...
 
Re,
ok je regarde, mais il faut un déclencheur car le lien sera généré par vba, selectionchange te va pour le déclencher (sélection dune cellule) ?
ou veut tu qu'un vrai lien se crée lors d'une modification des cellules paramètres ?
ou lancer une macro qui génère les liens ?
Mais une des chose qui est cruciale, c'est que le "file_path"
c'est le fonctionnement par défaut pour les liens internes, pas de problème pour gérer cela par Vba, mais c'est pareil, il faut un évènement pour les liens en dur puisqu'ils dépendent de paramètres, alors d'après ce que tu me dis, l'appel direct du lien calculé avec selectionchange serait la meilleure solution.

Bien cordialement, @+
 
Re,
en fait, plus simple sans lien, il suffit de cliquer dans la cellule, les formules sont là pour habiller mais non nécessaires. J'ai modifié ta feuille description pour tes tests.
Si tu as besoin d'attaquer d'autres fichiers, les hyperliens seront plus efficaces
Bien cordialement, @+
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Der_Ligne&
    If Target.Count = 1 Then
        Der_Ligne = Range("A65536").End(xlUp).Row
        On Error GoTo Gere_Erreurs
        If Not Intersect(Range("E2:E" & Der_Ligne), Target) Is Nothing Then
            With Worksheets("Bilan des heures")
                .Select
                .Range("A" & Range("B" & Target.Row).Value & ":I" & Range("B" & Target.Row).Value).Select
            End With
        Else
            If Not Intersect(Range("F2:F" & Der_Ligne), Target) Is Nothing Then
                With Worksheets("Horaire")
                    .Select
                    .Range("A" & Range("C" & Target.Row).Value & ":I" & Range("D" & Target.Row).Value).Select
                End With
            Else
                If Not Intersect(Range("G2:G" & Der_Ligne), Target) Is Nothing Then
                    With Worksheets("Feuille de temps semaine " & Range("A" & Target.Row).Value)
                        .Select
                        .Range("A1").Select
                    End With
                End If
            End If
        End If
        On Error GoTo 0
    End If
    Exit Sub
Gere_Erreurs:
    Err.Clear
End Sub
 

Pièces jointes

  • Lien interne.xlsm
    31.1 KB · Affichages: 4