Extraire le nom de l'onglet actif et le renvoyer sous forme de lien
Bonjour,
Dans la continuité de mon projet, j'aimerai extraire le lien hypertexte de l'onglet actif pour le copier avec d'autres info sur une feuille récapitulative.
Ce lien hypertexte me permettrait qu'étant dans la feuille récapitulative (ici souffrances), les lignes insérées comporte un lien permettant l'accès direct à la feuille de base de cette ligne .
Ci-dessous un test de code qui ne fonctionne malheureusement pas..
voir fin du code à partir de : with ws_feuil2
Sub CdeRECURENCE4()
'Commande HORECA(Articles ayant une récurrence de 4
Application.CommandBars("Workbook tabs").ShowPopup
Dim msg, Style, Title, Help, Ctxt, Reponse
Dim wk_fichier As Workbook
Dim ws_feuil1 As Worksheet
Dim ws_feuil2 As Worksheet
Dim lstrw_feuil1 As Long, lstrw_feuil2 As Long
Dim ligne_coller As Long
Dim i As Integer
Dim VariableNom As String
VariableNom = ActiveSheet.Name
msg = "Voulez-vous insérer la Cde pour la période " & VariableNom & "?" ' Définition du message.
Style = vbOKCancel ' Definition bouton.
Title = "CONFIRMATION D'INSERTION DE COMMANDE" ' Définition du titre.
Help = "DEMO.HLP" ' Define Help file.
Ctxt = 2000 ' Define topic context.
Reponse = MsgBox(msg, Style, Title, Help, Ctxt)
If Reponse = vbCancel Then
Exit Sub
Else
'définir les valeurs des variables pour les fichiers et onglets
Set wk_fichier = ActiveWorkbook
Set ws_feuil1 = wk_fichier.Worksheets("BD Articles") '1 entre parenthèse indique la feuille 1 qui est la BD articles
Set ws_feuil2 = ActiveSheet 'onglet dans lequel on se trouve et où l'on veut insérer la commande
'identifier dernière ligne colonne A de l'onglet BD Articles (feuil1)
lstrw_feuil1 = ws_feuil1.Cells(Rows.Count, 1).End(xlUp).Row
'effectue une boucle toutes sur les lignes comptées en commençant à la ligne 2 (ne prend pas en compte les titres de la ligne 1)
For i = 2 To lstrw_feuil1
'imposition des conditions avant de prendre en compte la ligne sur: La récurrence doit être de 4, il doit y avoir un nombre à commander et doit être supérieur à zéro, copier coller dans la période de commande (feuille2)
If ws_feuil1.Cells(i, 5) = 4 And ws_feuil1.Cells(i, 12) <> "" And ws_feuil1.Cells(i, 12) > 0 Then
'identifier dernière ligne colonne A feuil2
lstrw_feuil2 = ws_feuil2.Cells(Rows.Count, 2).End(xlUp).Row
ligne_coller = lstrw_feuil2 + 1
'copier coller de l'ongelt BD Articles vers onglet actif
'ws_feuil2.Cells(ligne_coller, 2) = ws_feuil1.Cells(i, 1)
ws_feuil2.Cells(ligne_coller, 3) = ws_feuil1.Cells(i, 2)
ws_feuil2.Cells(ligne_coller, 7) = ws_feuil1.Cells(i, 12)
ws_feuil2.Cells(ligne_coller, 10) = "I"
With ws_feuil2
.Hyperlinks.Add Anchor:=.Range(ligne_coller, 1), _
Address:=VariableNom, TextToDisplay:=VariableNom
End With
End If
Next
End If
End Subbonsoir,
essaie ceci
With ws_feuil2
.Hyperlinks.Add Anchor:=.Range(ligne_coller, 1), _
Address:="", SubAddress:="'" & VariableNom & "'!A1", TextToDisplay:=VariableNom
End WithBonjour et merci, mais malheureusement non...
"la méthode range de l'objet worksheet à échoué"
bonsoir,
j'ai zappé le fait que tu n'as pas utilisé la bonne syntaxe pour .range ...
correction donc, remplacer Range par Cells
With ws_feuil2
.Hyperlinks.Add Anchor:=.Cells(ligne_coller, 1), _
Address:="", SubAddress:="'" & VariableNom & "'!A1", TextToDisplay:=VariableNom
End WithBonsoir et super pour la réactivité mais aussi l'efficacité.
j'ai même peaufiner le code afin d'arriver sur la même ligne.
With ws_feuil2
.Hyperlinks.Add Anchor:=.Cells(ligne_coller, 1), _
Address:="", SubAddress:="'" & VariableNom & "'!A" & ligne_coller, TextToDisplay:=VariableNom
End With
Un tout grand merci de l'aide apportée, mon projet avance à grand pas