MAcro pour liste Onglets par code Name

Bonjour qu'elle est la macro pour lister les onglets par leur codename

j'ai déjà une qui afficher par leur nom :

Sub Snamelist()
Dim i As Integer

    Range("B5").Select

    For i = 1 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name

        ActiveCell.Offset(1, 0).Select
    Next i

End Sub

Cette macro m'affiche le nom de la feuille alors que je veux le code name, ce qu'on voit dans VBA

Par Feuil1(Feuil1)

je veux le nom qui est en gras, merci

Bonjour,

essaie ceci:

Sub Snamelist()
Dim i As Integer
Range("B5").Select
For i = 1 To Sheets.Count
  Cells(i, 2).Value = Sheets(i).CodeName
  Cells(i, 3).Value = Sheets(i).Name
Next i
End Sub

Merci,

C'est bon j'ai donc affichage des deux noms, gracia

Par contre est-ce que tu sait comment adapter ce code qui prend en compte CodeName, mais comment faire afin qu'il prenne les nom de la feuille.

sheets("nomdelafeuille") ?

Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille

Merci

Salut,

Là tu utilises le nom de code de la même façon que le nom de feuille... ce n'est pas très intéressant.

Supposons la feuille 1 nommée Feuil1, et nom de code Feuil1 (puisque sont identiques par défaut à l'origine...)

Tu dois écrire Worksheets("Feuil1").Visible en utilisant le nom de feuille.

Mais tu peux écrire en utilisant le nom de code : Feuil1.Visible (juste le nom sans guillemets, mais ne peut se faire qu'avec le nom directement, pas une représentation sous forme de chaîne).

L'intérêt est surtout d'avoir un nom plus stable que le nom de feuille, dans l'utilisation courante (sinon il est indispensable pour accéder au module...)

Cordialement

Merci MFerrand,

Comme d'habitude, j'ai appris quelque chose.

En fait depuis plus de 5 jours j'essaye des codes, j'ai des erreur je les corriger mais le résultat n'est pas bon pour mon problème d'afficher les feuilles suivant les utilisateurs connecte et es feuilles qu'ils pouvant voir.

Puis pour la feuille 2012 dans Vba c'est sh2012(2012) pou ACCEUIL c'est sh10(ACCEUIL), en gros j'ai codenames jusqu'à sh01 vers sh11 pour les feuille des calcule et paramétrage et donc pour les années j'ai sh2012(2012) jusqu'à par exemple sh2019(2019)

J'ai une feuille Admin où j'ai mis? sachant que ACCEUIL c'est en C5 et Admin en A6

ACCEUIL 2013 2014 2015 2016

Admin 111 X X X X X

User1 222 X X X

User2 333 X X X X

Puis les nom de Feuille ne sont pas toutes afficher car les autres sont que pour BigAdmin, donc je les afficher par ce code :

Sub ListerOngletsDisponible()
    Dim rg As Range, Ws As Worksheet

    Set rg = [C5]

    For Each Ws In ThisWorkbook.Worksheets
   If Ws.Name Like "20##" = True Or Ws.Name = "ACCEUIL" Then
        rg = Ws.Name

        Set rg = rg.Offset(0, 1)
      End If
    Next Ws

End Sub

J'ai mon USF qui est comme ça :

Private Sub B_ok_Click()
Dim i As Byte, j As Byte, Ligne As Long, nbColonnes As Byte, nbLignes As Integer, feuille As Long
    Dim User As String

  If Me.motpasse <> "" And Me.Utilisateur <> "" Then
     NbEssai = NbEssai + 1: Me.Label3.Caption = NbEssai & " essai(s)"
     For i = 1 To Range("MotPasse").Count
       If UCase(Me.motpasse) = UCase(Range("MotPasse")(i)) And _
         UCase(Me.Utilisateur) = UCase(Range("Utilisateur")(i)) Then
     With Sheets("Admin")

      nbColonnes = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
      nbLignes = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row

    For i = 6 To nbLignes

        If Sheets("Admin").Range("A" & i) = UCase(Utilisateur) Then
        Ligne = L

           Exit For
        End If
    Next
            For j = 3 To nbColonnes
                If UCase(.Cells(nbColonnes, j)) = "X" Then
                    Sheets(.Cells(1, j).Value).Visible = True
                Else
                    Sheets(.Cells(1, j).Value).Visible = xlSheetVeryHidden
                End If
            Next j

        Unload USF
 End With

         Unload Me: Exit Sub
       End If
      Next i
   End If
   If NbEssai > 3 Then
      MsgBox NbEssai & " essais!"
      ThisWorkbook.Close False
   End If
End Sub

Sachant que

Range("MotPasse") c'est colonne B6B31

Range("Utilsateur") c'est colonne A6A31

Je n'est plus erreur en ce qui concerne Utilisateur et mdp donc utilisateur est connecter mais les feuille ne sont pas affiche.

Mais je vais trouver un jour mais quand

Bonjour,

Inexpérimenté en VBA et ayant effectuer de nombreuses recherches infructueuses, je cherche à exclure certaines feuilles dans ma macro qui les listes sans y parvenir.

Je ne sais pas si je suis au bon endroit mais je tente.

Voici mon code:

Sub Clients()

Dim i As Integer

For i = 1 To Worksheets.Count

Cells(11 + i, 1) = Worksheets(i).Name

If WorkSheet.Name = "AAA" Ten Exit Sub

If WorkSheet.Name = "RECAP" Then Exit Sub

If WorkSheet.Name = "LISTE" Then Exit Sub

End If

Next i

End Sub

mon bloc If ne fonctionne pas. Si je le supprime la liste est complète sans soucis. Merci de votre aide

vinzz a écrit :

Bonjour,

Inexpérimenté en VBA Merci de votre aide

Ouvre ton propre post sans t'incruster dans celui d'une autre personne ça sera mieux

P.

Je veux bien mais je vois pas comment.

Mea Culpa trouvé. Merci

Rechercher des sujets similaires à "macro liste onglets code name"