Comment renommer une feuille à l’aide de VBA dans Excel ?
Lorsque vous ajoutez une nouvelle feuille dans un classeur, vous avez la possibilité de la nommer. Mais vous pouvez également le renommer à tout moment en utilisant la propriété name de la feuille de calcul. Dans ce didacticiel, nous examinerons différentes manières de renommer une feuille ou plusieurs feuilles à l’aide d’un code VBA.
Étapes pour renommer une feuille à l’aide d’un code VBA
- Tout d’abord, définissez la feuille que vous souhaitez renommer à l’aide de l’objet feuille de calcul.
- Après cela, vous devez utiliser (.Name) pour accéder à la propriété name que vous souhaitez modifier.
- Ensuite, tapez un signe égal pour indiquer à VBA la valeur que vous souhaitez utiliser pour renommer la feuille.
- À la fin, tapez le nom de la feuille que vous souhaitez utiliser.
Liens utiles : Exécuter une macro – Enregistreur de macros – Visual Basic Editor – Manuel de macros personnelles
Renommer la feuille active
Si vous souhaitez renommer la feuille active, dans ce cas, vous n’avez pas besoin de définir le nom de la feuille, à la place, vous devez utiliser l’objet ActiveSheet qui indique à VBA de se référer à la feuille active en ce moment. Voici le code.
Activesheet.Name = "mySheet"
Remarque : Pour renommer une feuille, vous n’avez pas besoin de l’activer.
Renommer une feuille à l’aide du numéro de feuille
Comme vous le savez, chaque feuille a un numéro en fonction de sa position dans le classeur. Disons que vous voulez renommer la feuille que vous avez sur le cinquième numéro, le code serait.
Sheets(5).Name = "mySheet5"
Lorsque vous exécutez la macro ci-dessus , elle renomme la feuille qui se trouve sur le cinquième numéro.
Vérifiez si la feuille existe avant de renommer
Si vous essayez de renommer une feuille de calcul qui n’existe pas, VBA vous affichera une erreur, comme ci-dessous.
La solution à ce problème est le code suivant qui utilise FOR EACH , qui peut parcourir toutes les feuilles de calcul pour trouver la feuille que vous avez définie, puis renommer cette feuille.
Sub check_sheet_rename()
Dim ws As Worksheet
Dim mySheet As String
Dim SheetName As String
mySheet = InputBox("enter the name of the sheet that you want to rename.")
SheetName = InputBox("Enter new name for the sheet.")
For Each ws In ThisWorkbook.Worksheets
If mySheet = ws.Name Then
ws.Name = SheetName
End If
Next ws
End Sub
Renommer une feuille en utilisant la valeur d’une cellule ou d’une plage
Vous pouvez également renommer une feuille en prenant la valeur d’une cellule. Disons que la valeur se trouve dans la cellule A1.
Sheets("Sheet1").name = Range("A1").Value
Mais supposons que vous souhaitiez nommer plusieurs feuilles en fonction des valeurs d’une plage de cellules. Dans ce cas, vous devez avoir un code comme celui-ci.
Sub vba_sheet_rename_multiple()
Dim wsCount As Long
Dim rCount As Long
Dim ws As Worksheet
Dim name As Range
Dim i As Long
wsCount = ThisWorkbook.Worksheets.Count
rCount = Range("A1:A10").Rows.Count
'Checks if the count of the names provided is less _
or more than the sheets in the workbook
If wsCount <> rCount Then
MsgBox "There's some problem with the names provided."
Exit Sub
Else
'Check if any of the cells in the name range is empty.
For Each name In Range("A1:A10")
If IsEmpty(name) = True Then
i = i + 1
End If
Next name
If i > 0 Then
MsgBox "There's is a blank cell in the names range."
Exit Sub
End If
End If
'rename each sheet using the value from the range cell by cell.
i = 1
For Each ws In ThisWorkbook.Worksheets
ws.name = Range("A1:A10").Cells(i, 1).Value
i = 1 + i
Next ws
End Sub
Lorsque vous exécutez ce code VBA, il vérifie d’abord si les cellules de la plage sont égales au nombre de feuilles que vous avez dans le classeur. Après cela, il vérifiera si toutes les cellules de la plage que vous avez spécifiée ont des valeurs ou non. Et à la fin, renommez toutes les feuilles en utilisant ces noms.
Il vérifiera deux conditions en utilisant IF THEN ELSE puis renommera toutes les feuilles.