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