2 votes

Comment donner aux feuilles de calcul Excel des noms/des légendes en double ?

Existe-t-il un moyen de donner à une feuille de calcul Excel une légende/un titre/une étiquette différente de son nom (via l'automatisation OLE, si cela est pertinent) ?

La raison en est que je peux avoir des noms qui ne diffèrent que par la casse, et que je ne peux donc pas les utiliser comme Worksheet.Name. Mais je n'ai pas besoin d'y faire référence dans VBA, je veux simplement que l'utilisateur puisse les voir.

Edit : Je veux changer ces cordes : screenshot

musique2année a une meilleure explication de mon problème :

Excel applique une politique de non-doublonnage sur le nom donné, et le fichier nom donné est le nom visible.

Ma question est/était : Puis-je avoir un nom visible différent du prénom ?

1voto

music2myear Points 38573

Vous ne pouvez pas définir le titre/label visible sur un onglet de feuille de calcul comme étant différent du titre/label réel. Excel applique une politique de non-duplication sur le nom donné, et le nom donné est le nom visible.

Toutefois, en VBA, vous ne devez pas nécessairement faire référence à la feuille de calcul en utilisant son nom.

De http://www.techrepublic.com/blog/10-things/10-ways-to-reference-excel-workbooks-and-sheets-using-vba/ nous apprenons que nous pouvons référencer les feuilles par leur index (dépendant de l'ordre des feuilles) ou par leur propriété de nom de code.

Index :

Les valeurs d'index sont utiles lorsque vous ne vous souciez pas de feuilles spécifiques, mais seulement de leur nombre ou de leur ordre. Bien sûr, ce n'est pas une tâche courante, mais de temps en temps, la référence à des valeurs d'index peut s'avérer utile. La procédure suivante ajoute et supprime des feuilles en fonction du nombre de feuilles que vous souhaitez :

Function ControlSheetNumber(intSheets As Integer)

  'Add or delete sheets to equal intSheets.

  Application.DisplayAlerts = False

  'Delete sheets if necessary

  While Worksheets.Count > intSheets

    Worksheets(1).Delete

  Wend

  'Add sheets if necessary

  While Worksheets.Count < intSheets

    Worksheets.Add

  Wend

  Application.DisplayAlerts = True

End Function

Code Nom Propriété :

Code qui fait référence à un objet Feuille de calcul par le nom figurant dans l'onglet de la feuille. risque de générer une erreur. En effet, vous devez vous souvenir de mettre à jour le code lorsque vous changez le nom de la feuille. Non seulement c'est beaucoup d'ennuis, mais les utilisateurs ont tendance à changer le nom d'une feuille. Une façon de protéger le code qui se réfère à des feuilles spécifiques par leur nom est d'utiliser la balise CodeName. Le nom de code est le nom par défaut de la feuille, qu'Excel attribue lorsque vous la créez - le nom de code est le nom de la feuille. Excel l'attribue lorsque vous la créez - Sheet1, Sheet2, etc. La modification du nom de la feuille, tel qu'il est affiché dans l'onglet de la feuille, ne modifie pas son nom de code. ne modifie pas son nom de code, comme vous pouvez le voir dans la Figure D. Les noms entre parenthèses sont les noms de la feuille (ou de l'onglet). parenthèses sont les noms des feuilles (tels qu'ils apparaissent sur les onglets des feuilles). Notez que les noms par défaut, les noms de code, restent les mêmes même si vous changez le nom de la feuille.

1voto

Malheureusement, la réponse est non. Vous ne pouvez pas avoir deux feuilles de calcul avec les mêmes noms.

enter image description here


Je peux proposer une solution de contournement en utilisant VBA.

Sub AutomateSpreadSheetName()
    Dim name1 As String
    name1 = "Sheet1" 'note Sheet1 already exists
    RenameIfExist name1
End Sub

Private Sub RenameIfExist(name1)
    Dim ws As Worksheet
    For Each ws In Sheets
        If ws.Name = name1 Then
            ws.Name = name1 & Chr(32) & Int(Rnd() * 10)
            RenameIfExist name1
            Exit Sub
        End If
    Next
End Sub

Vous définissez le nom dans le name1 variable. Si le nom existe dans la collection de feuilles de travail, la feuille actuelle sera renommée avec un chiffre aléatoire de 0 à 9.

1voto

Bardaf Points 1

Vous pouvez mettre un espace à la fin du nom de la feuille de travail, pour la distinguer. Ainsi, "Sheet1" sera identique à "SHEET 1" pour l'utilisateur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X