J'aimerais créer une fonction définie par l'utilisateur dans Excel qui puisse renvoyer la feuille de calcul actuelle. Je pourrais utiliser la fonction
sheetname = ActiveSheet.Name
Mais le problème, c'est qu'elle fonctionne et que soudain, elle commence à obtenir des noms de feuilles différents. Par exemple, au lieu de SHEET I LOVE YOU
, on obtient SHEET I HATE YOU
.
Existe-t-il un moyen de résoudre ce problème - ou est-ce possible car je pense qu'il ne peut pas être statique mais variable ?
Function MySheet()
' uncomment the below line to make it Volatile
'Application.Volatile
MySheet = Application.Caller.Worksheet.Name
End Function
Ceci devrait être la fonction que vous recherchez
Sub FnGetSheetsName()
Dim mainworkBook As Workbook
Set mainworkBook = ActiveWorkbook
For i = 1 To mainworkBook.Sheets.Count
'Either we can put all names in an array , here we are printing all the names in Sheet 2
mainworkBook.Sheets("Sheet2").Range("A" & i) = mainworkBook.Sheets(i).Name
Next i
End Sub
Vous pouvez utiliser le code ci-dessous pour obtenir le nom de la feuille active et le changer en votre nom préféré.
Sub ChangeSheetName()
Dim shName As String
Dim currentName As String
currentName = ActiveSheet.Name
shName = InputBox("What name you want to give for your sheet")
ThisWorkbook.Sheets(currentName).Name = shName
End Sub