Bonjour à toutes et à tous,
dans un fichier que je diffuse, je veux interdire aux utilisateurs l’enregistrement sous un format autre que .xlsm
A partir de bribes de code récupérées à droite et à gauche, j’arrive à ce qui suit, qui marche mais dans le code intial, il y avait une instruction que je ne comprends pas (ou plus exactement je ne vois pas sa raison d’être) et que j’ai donc enlevée, sans incidence (apparemment ?)
_________________Mon code, allégé par mes soins _____________________________________________
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim varWorkbookName
If SaveAsUI = True Then
Application.DisplayAlerts = False
varWorkbookName = Application.GetSaveAsFilename(FileFilter:="Uniquement macros (*.xlsm), *.xlsm", Title:=ThisWorkbook.Name)
ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=52
Application.DisplayAlerts = True
Cancel = True
End If
End Sub
_____________________ Le code initial :avec ligne 7 l’instruction mystère ___________________
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim varWorkbookName
If SaveAsUI = True Then
Application.DisplayAlerts = False
varWorkbookName = Application.GetSaveAsFilename(FileFilter:="Excel Macro Enabled Workbook (*.xlsm), *.xlsm", Title:=ThisWorkbook.Name)
If InStr(varWorkbookName, "\") > 0 Then ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=52
Application.DisplayAlerts = True
Cancel = True
End If
End Sub
____________________________________________________________________________________
Ma question porte sur InStr(varWorkbookName, "\") > 0
… je lis à droite et à gauche que InStr(varWorkbookName, "\") > 0 permet de savoir si le caractère « \ » est bien présent dans la chaîne et donc si c’est on a bien un chemin d’accès (à cause des « \ »)
Je ne comprends pas pourquoi cette instruction car pour moi, varWorkbookName remonte quoi qu’il arrive le chemin d’accès
Qui peut m’éclairer sur l’intérêt de cette instruction et surtout mon code (sans Instr …) est-il valide ou recèle-t-il un bug à venir, par exemple dans un cas extrême ?
Merci d'avance
dans un fichier que je diffuse, je veux interdire aux utilisateurs l’enregistrement sous un format autre que .xlsm
A partir de bribes de code récupérées à droite et à gauche, j’arrive à ce qui suit, qui marche mais dans le code intial, il y avait une instruction que je ne comprends pas (ou plus exactement je ne vois pas sa raison d’être) et que j’ai donc enlevée, sans incidence (apparemment ?)
_________________Mon code, allégé par mes soins _____________________________________________
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim varWorkbookName
If SaveAsUI = True Then
Application.DisplayAlerts = False
varWorkbookName = Application.GetSaveAsFilename(FileFilter:="Uniquement macros (*.xlsm), *.xlsm", Title:=ThisWorkbook.Name)
ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=52
Application.DisplayAlerts = True
Cancel = True
End If
End Sub
_____________________ Le code initial :avec ligne 7 l’instruction mystère ___________________
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim varWorkbookName
If SaveAsUI = True Then
Application.DisplayAlerts = False
varWorkbookName = Application.GetSaveAsFilename(FileFilter:="Excel Macro Enabled Workbook (*.xlsm), *.xlsm", Title:=ThisWorkbook.Name)
If InStr(varWorkbookName, "\") > 0 Then ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=52
Application.DisplayAlerts = True
Cancel = True
End If
End Sub
____________________________________________________________________________________
Ma question porte sur InStr(varWorkbookName, "\") > 0
… je lis à droite et à gauche que InStr(varWorkbookName, "\") > 0 permet de savoir si le caractère « \ » est bien présent dans la chaîne et donc si c’est on a bien un chemin d’accès (à cause des « \ »)
Je ne comprends pas pourquoi cette instruction car pour moi, varWorkbookName remonte quoi qu’il arrive le chemin d’accès
Qui peut m’éclairer sur l’intérêt de cette instruction et surtout mon code (sans Instr …) est-il valide ou recèle-t-il un bug à venir, par exemple dans un cas extrême ?
Merci d'avance