Mise à jour lien automatique

Résolu/Fermé
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016 - 5 sept. 2016 à 14:50
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016 - 6 sept. 2016 à 08:56
Bonjour,

J'ai dans un classeur pas mal de lien (jusque la tout va bien) , je voudrais créer une liste dans un onglet où il y aurai tout les liens vers les différents onglets mon classeur ( jusque la ca va encore). Le problème est que je veux le faire sur 3 colonnes (c'est la que les choses se corsent )

j'ai mon code qui est ici :

Private Sub CommandButton1_Click()

'Lien vers les différents onglets du classeur

Dim i As Integer
Dim Menu(2 To 50, 1 To 1) As Variant
Dim FeuilleActive As String

CommandButton1.BackColor = RGB(100, 149, 237)
CommandButton1.WordWrap = True


FeuilleActive = ActiveSheet.Name

    For i = 3 To 17
    
        If Sheets(i).Name <> "Menu" Then
        
            Cells(i + 3, 1).Select
            
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
            
    
        End If
    
    Next
    
For Each Sh In Array("T1-A", "T1-A-TB1", "T1-A-TB2", "T1-A-TB1&2", "T1-R", "T1-R-TB1", "T1-R-TB2", "T1-R-TB1&2", "T2-A", "T2-A-TB1", "T2-A-TB2", "T2-A-TB1&2", "T2-R", "T2-R-TB1", "T2-R-TB2", "T2-R-TB1&2")

 For i = 18 To ThisWorkbook.Sheets.Count
    
        If Sheets(i).Name <> "Menu" And Sheets(i).Name = Sh Then
        
            Cells(i + 3 - 15, 3).Select
            
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name

    
        End If
    
    Next
    
Next Sh


 For i = 18 To ThisWorkbook.Sheets.Count
    
    For Each Sh In Array("T1-A", "T1-A-TB1", "T1-A-TB2", "T1-A-TB1&2", "T1-R", "T1-R-TB1", "T1-R-TB2", "T1-R-TB1&2", "T2-A", "T2-A-TB1", "T2-A-TB2", "T2-A-TB1&2", "T2-R", "T2-R-TB1", "T2-R-TB2", "T2-R-TB1&2")
    
        If Sheets(i).Name <> Sh Then
        
            Cells(i + 3 - 15, 5).Select
            
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
        
        End If
    
    Next Sh
    
Next

    
 Sheets("Menu").Cells(1, 1) = "Liste des différents onglets du classeur"

End sub


J'ai une première partie dans ma colonne A, ca c'est bien, une seconde partie dans ma colonne C et dans ma colonne E j'aimerai avoir le reste.

Cependant quand je fais le code qui est la cela me remets les onglets qui sont déjà affiché dans ma colonne C et j'aimerai qu'il n'apparaisse pas ... je ne sais pas comment faire ...

En photo :
Ce que j'ai :


ce que j'aimerai



Merci de votre aide :)

Feudora

A voir également:

2 réponses

thev Messages postés 1852 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 23 avril 2024 681
Modifié par thev le 5/09/2016 à 16:20
Bonjour,

Essayer ce code

For i = 18 To ThisWorkbook.Sheets.Count
feuilles = Array("T1-A", "T1-A-TB1", "T1-A-TB2", "T1-A-TB1&2", "T1-R", "T1-R-TB1", "T1-R-TB2", "T1-R-TB1&2", "T2-A", "T2-A-TB1", "T2-A-TB2", "T2-A-TB1&2", "T2-R", "T2-R-TB1", "T2-R-TB2", "T2-R-TB1&2")
If UBound(Filter(feuilles, Sheets(i).Name)) = -1 Then
Cells(i + 3 - 15, "E").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
End If
Next i


 
1
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
5 sept. 2016 à 16:31
parfait ça marche ça ne m'inscrit plus les noms que je ne voulais pas :) , je ne voudrais pas abuser mais y a-t- il un moyen pour que dans mon code je supprime les cellules vides entre 2 liens ?
0
thev Messages postés 1852 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 23 avril 2024 681
Modifié par thev le 5/09/2016 à 17:54
Ce code devrait fonctionner


i2 = 6
For i1 = 18 To ThisWorkbook.Sheets.Count
feuilles = Array("T1-A", "T1-A-TB1", "T1-A-TB2", "T1-A-TB1&2", "T1-R", "T1-R-TB1", "T1-R-TB2", "T1-R-TB1&2", "T2-A", "T2-A-TB1", "T2-A-TB2", "T2-A-TB1&2", "T2-R", "T2-R-TB1", "T2-R-TB2", "T2-R-TB1&2")
If UBound(Filter(feuilles, Sheets(i1).Name)) = -1 Then
Cells(i2, "E").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i1).Name & "'!A1", TextToDisplay:=Sheets(i1).Name
i2 = i2 + 1
End If
Next i1



 
1
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
6 sept. 2016 à 08:56
ca fonctionne super bien !! Merci beaucoup beaucoup pour ton aide!!
0