Microsoft 365 créer un lien vers un onglet créé

cecenico

XLDnaute Nouveau
Bonjour,

Je viens de bidouiller une macro qui créée un onglet et le nomme en fonction du contenu d'une cellule. L'idée maintenant est de créer un lien vers cet onglet, hors quand je pointe Worksheet(1), il ne me trouve pas l'onglet. De plus, je ne pense pas que ça soit la bonne méthode car tous les onglets créés de cette façon risquent de pointer vers le dernier onglet créé car Worksheet(1)

Pour expliquer sont fonctionnement:
Je met un nom de machine dans la cellule B11:M11 (fusionnée)
Je copie la cellule dans la cellule A73
Je récupère un modèle de feuille existant pour créer la nouvelle feuille que je place en première position
Je nomme la feuille nouvellement créée en fonction du contenu de la cellule A73 de l’accueil
Je crée mon lien (du moins j'essaye)
Je trie mes machines par ordre alphabétique entre A12 et A73

L'idée est de pouvoir ajouter des onglets qui correspondront à des machines, le dernier onglet créé sera toujours le 1 pour simplifier les choses, vue que je masque les onglets qui sont accessibles via les liens créés, c'est pas trop grave si c'est pas rangé dans l'ordre.





VB:
Sub creermachine()

'

' creermachine Macro

'


'Ajout de la machine
  Range("B11:M11").Select
    Selection.Copy
    Range("A73").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

'création de la feuille à partir d'un modèle existant
    Sheets(" Machine à emballer Fabbri").Select

    Sheets(" Machine à emballer Fabbri").Copy Before:=Sheets(1)

'récupération du nom de l'onglet    
Sheets("Accueil").Select

    Worksheets(1).Name = Range("A73").Value



'création du lien   (c'est la que je coince)
   Range("A73").Select
 ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _

        "Worksheets(1)"

    With Selection.Font

        .ThemeColor = xlThemeColorAccent2

        .TintAndShade = -0.249977111117893

    End With

'On met tout dans l'ordre
ActiveWorkbook.Worksheets("Accueil").Sort.SortFields.Add2 Key:=Range( _
        "A13:A73"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Accueil").Sort
        .SetRange Range("A12:M73")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply

  'Je remet le petit texte qui va bien dans la case qui me sert de référence pour l'ajout du nom de la machine
ActiveCell.FormulaR1C1 = ""
    Range("B11:M11").Select
    ActiveCell.FormulaR1C1 = _
        "Entrer ici le nom de la machine à ajouter et cliquer sur ""ajouter une machine"""
    Range("B1:M2").Select
        Application.CutCopyMode = False
        Range("A12").Select
    ActiveCell.FormulaR1C1 = "Matériel"
    Range("A1").Select

End Sub
 
Solution
Bonsoir,
L'enregistreur de macro t'aurait donné à peu près çà.
VB:
    Sheets("Feuil1").Select
    Sheets("Feuil1").Copy Before:=Sheets(1)
    Range("A73").Select
    Selection.Copy
    Sheets("Feuil1 (2)").Select
    Sheets("Feuil1 (2)").Name = Range("A73").Value
    Range("A73").Select
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        Range("A73").Value & "!A1", TextToDisplay:=Range("A73").Value
    Range("D83").Select

st007

XLDnaute Barbatruc
Bonsoir,
L'enregistreur de macro t'aurait donné à peu près çà.
VB:
    Sheets("Feuil1").Select
    Sheets("Feuil1").Copy Before:=Sheets(1)
    Range("A73").Select
    Selection.Copy
    Sheets("Feuil1 (2)").Select
    Sheets("Feuil1 (2)").Name = Range("A73").Value
    Range("A73").Select
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        Range("A73").Value & "!A1", TextToDisplay:=Range("A73").Value
    Range("D83").Select
 

cecenico

XLDnaute Nouveau
Bonsoir,
L'enregistreur de macro t'aurait donné à peu près çà.
VB:
    Sheets("Feuil1").Select
    Sheets("Feuil1").Copy Before:=Sheets(1)
    Range("A73").Select
    Selection.Copy
    Sheets("Feuil1 (2)").Select
    Sheets("Feuil1 (2)").Name = Range("A73").Value
    Range("A73").Select
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        Range("A73").Value & "!A1", TextToDisplay:=Range("A73").Value
    Range("D83").Select
En fait ta solution fonctionne, merci
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T