Je voudrais créer un user-defined
fonction dans Excel
pouvant renvoyer la feuille de calcul en cours. Je pourrais utiliser le
sheetname = ActiveSheet.Name
Mais le problème, c’est que cela fonctionne et, tout à coup, le nom de la feuille commence à être différent. Par exemple, au lieu de SHEET I LOVE YOU
il retourne SHEET I HATE YOU
.
Y a-t-il un moyen de résoudre ce problème - ou cela pourrait être possible parce que je pense que cela ne peut pas être statique mais varie?
Function MySheet()
MySheet = Application.Caller.Worksheet.Name
End Function
Cela 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
Cela fonctionne pour moi.
worksheetName = ActiveSheet.Name
Vous pouvez utiliser le code ci-dessous pour obtenir le nom de la feuille active et le changer pour 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
Étendre le code pour afficher la ou les feuilles sélectionnées [une ou plusieurs feuilles].
Sub Show_SelectSheet()
For Each xSheet In ThisWorkbook.Worksheets
For Each xSelectSheet In ActiveWindow.SelectedSheets
If xSheet.Name = xSelectSheet.Name Then
'=== Show Selected Sheet ===
GoTo xNext_SelectSheet
End If
Next xSelectSheet
xSheet.Visible = False
xNext_SelectSheet:
Next xSheet
MsgBox "Show Selected Sheet(s) Completed !!!"
end sub