Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Lien hypertexte

Othmane204

XLDnaute Nouveau
Bonjour à tous,

Je suis entrain de créer une facture avec VBA, et je bloque à cause d'une fonction que j'aimerais appliquer, j'ai beau cherché mais je ne trouves pas ce que je cherche.

Je veux créer un lien hypertexte a travers la derniere feuille ajoutée dans le classeur et mettre le lien dans une cellule predefinie dans une autre feuille ("HISTORIQUE FACTURES") par exemple cellule K4. Et je veux que ca s'ajoute sur une nouvelle ligne a chaque fois que je crée une feuille

Voici le code où je suis arrivé.

Sheets("HISTORIQUE FACTURES").Select
ligne = Range("A2").End(xlDown).Row + 1
ActiveSheet.Hyperlinks.Add Anchor:=Cells(ligne, 1), Address:="", SubAddress:= _
Sheets(Sheets.Count).Name & "!A1", TextToDisplay:=Sheets("FACTURE").Range("K18") & " " & Sheets("FACTURE").Range("F23").Value

Merci d'avance!
 
Solution
Bonsoir à tous je tiens à vous remercier pour vos efforts et votre aide, je vous informe que finallement je suis arrivé au résultat voulu grace au code suivant :
VB:
Dim Derlig&
With Sheets("HISTORIQUE FACTURES")
    Derlig = .Range("L" & Rows.Count).End(xlUp).Row + 1
    .Hyperlinks.Add Anchor:=.Cells(Derlig, 12), Address:="", SubAddress:= _
    "'" & Sheets(Sheets.Count).Name & "'!A1", TextToDisplay:=Sheets("FACTURE").Range("K18") & " " & Sheets("FACTURE").Range("F23").Value & "!A1"
End With

C'est bien ce que @Phil69970 m'avait proposé, c'est juste qu'il devait mettre les apostrophes devant et derrière le nom.

Merci encore!

job75

XLDnaute Barbatruc
Voyez le fichier joint et le code de la feuille HISTORIQUE FACTURES :
VB:
Private Sub Worksheet_Activate()
Dim lig&, w As Worksheet, a(1 To 11), i%
Application.ScreenUpdating = False
With [Tableau1] 'tableau structuré
    .Rows(1).ClearContents 'RAZ
    If .Rows.Count > 1 Then .Rows(2).Resize(.Rows.Count - 1).Delete xlUp 'RAZ
    lig = 1
    For Each w In Worksheets
        Erase a 'RAZ
        a(1) = w.Range("K18") & " " & w.Range("F23")
        If LCase(a(1)) = LCase(w.Name) Then
            a(2) = w.Range("F26")
            For i = 3 To 7
                a(i) = w.Range("K" & 15 + i)
            Next i
            a(8) = w.Range("E29") 'bizarre non ???
            On Error Resume Next 'au cas où...
            a(9) = w.Columns("K").Find("sous-total", , xlValues)(1, 2)
            a(10) = w.Columns("J").Find("TVA")(1, 3)
            a(11) = w.Columns("K").Find("TTC")(1, 2)
            On Error GoTo 0
            .Rows(lig) = a 'restitution
            Hyperlinks.Add .Cells(lig, 1), "", "'" & w.Name & "'!A1" 'création du lien
            lig = lig + 1
        End If
    Next w
End With
End Sub
Le tableau se met à jour quand on active la feuille.
 

Pièces jointes

  • FACTURE(1).xlsm
    58.9 KB · Affichages: 5

Othmane204

XLDnaute Nouveau
Re,
Je ne sais pas pourquoi mais la macro de votre fichier se desactive
 

Othmane204

XLDnaute Nouveau
Bonsoir à tous je tiens à vous remercier pour vos efforts et votre aide, je vous informe que finallement je suis arrivé au résultat voulu grace au code suivant :
VB:
Dim Derlig&
With Sheets("HISTORIQUE FACTURES")
    Derlig = .Range("L" & Rows.Count).End(xlUp).Row + 1
    .Hyperlinks.Add Anchor:=.Cells(Derlig, 12), Address:="", SubAddress:= _
    "'" & Sheets(Sheets.Count).Name & "'!A1", TextToDisplay:=Sheets("FACTURE").Range("K18") & " " & Sheets("FACTURE").Range("F23").Value & "!A1"
End With

C'est bien ce que @Phil69970 m'avait proposé, c'est juste qu'il devait mettre les apostrophes devant et derrière le nom.

Merci encore!

 

Discussions similaires

Réponses
5
Affichages
504
Réponses
7
Affichages
736
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…