Nom du classeur VBA (Obtenir, Définir, sans extension)

Ce didacticiel montrera comment obtenir et définir le nom du classeur dans VBA.

Nous pouvons obtenir ou définir le nom du classeur actif dans VBA, ou parcourir tous les classeurs ouverts dans Excel et obtenir ou définir le nom de chacun d'eux à l'aide d'une boucle VBA.

Obtenir le nom du classeur

Pour obtenir le nom du classeur actif, nous devons utiliser la propriété name de l'objet classeurs.

12345 Sub GetWorkbookName()Dim strWBName en tant que chaînestrWBName = ActiveWorkbook.NameMsgBox strWBNameFin du sous-marin

Si nous devions exécuter le code ci-dessus, nous verrions une boîte de message apparaître à l'écran avec le nom du classeur actif.

Pour parcourir tous les classeurs actifs et renvoyer les noms des classeurs à Excel, nous pouvons exécuter le code suivant :

1234567 Sub GetWorkbookNames()Dim wb comme classeurPour chaque wb dans les classeursActiveCell = wb.NomActiveCell.Offset(1, 0).SélectionnerProchainFin du sous-marin

Les exemples ci-dessus incluront l'extension du fichier (par exemple xlsx). Si vous ne souhaitez pas inclure l'extension, nous pouvons utiliser quelques méthodes pour obtenir uniquement le nom de fichier du classeur.

Obtenir le nom du classeur sans extension

Nous pouvons utiliser les fonctions LEFT et INSTR pour supprimer tous les caractères après le point dans le nom du fichier :

12345 Sub GetWorkbookName()Dim strWBName en tant que chaînestrWBName = Gauche(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameFin du sous-marin

Nous pouvons utiliser les fonctions LEFT et LEN pour supprimer 5 caractères à la fin du nom du fichier :

12345 Sub GetWorkbookName()Dim strWBName en tant que chaînestrWBName = Gauche(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 55)MsgBox strWBNameFin du sous-marin

Définition du nom du classeur

Pour définir le nom d'un classeur dans VBA, nous utilisons toujours la propriété Name du classeur, mais nous ne pouvons pas utiliser cette méthode pour modifier le nom du classeur actif. Cela est dû au fait que le classeur actif est ouvert et qu'une erreur d'accès au fichier se produira. Pour surmonter cela, nous pouvons enregistrer le fichier sous un nouveau nom, puis supprimer l'ancien fichier.

12345678910 Public Sub SetWorkbookName()Dim strPath en tant que chaîneDim strNewName en tant que chaîneDim strOldName en tant que chaînestrOldName = ActiveWorkbook.NamestrNewName = InputBox("Veuillez entrer un nouveau nom pour le classeur")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameTuez strPath & "/" & strOldNameFin du sous-marin

Pour renommer un classeur qui n'est pas ouvert, nous pouvons utiliser la méthode Name.

123 Public Sub RenameWorkbook()Nommez "C:\Data\MyFile.xlsx" comme "C:\Data\MyNewFile.xlsx"Fin du sous-marin

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave