Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester l'extension d'un fichier Excel.

3 réponses
Avatar
JMV
Bonjour,

J'essaie de trouver une méthode en VBA consistant à tester l'extension d'un
fichier Excel.

A priori, pas de problèmes : il faut travailler avec activeworkbook.fullname

Pourtant, je n'arrive pas à m'en sortir !

En effet, les fichiers Excel à tester peuvent avoir 3 extensions différentes
:
a - .xls
b - .xlt
c - pas d'extension.

Le but du 'jeu' est de savoir si le fichier ouvert est un .xlt.

Or, le problème est que activeworkbook.fullname relatif à un fichier .xlt ne
ramène pas d'extension (j'ai cru comprendre, qu'une copie de travail est
fait à partir du modèle).
Je n'arrive donc pas à opérer une distinction entre les catégories b et c.

J'ai aussi essayé :

Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec
path complet et extension

Le résultat est identique.

Est-ce que quelqu'un voit une astuce pour me permettre de différencier les
catégories b et c ?


Merci d'avance et bonne journée.

Jean-Marc

3 réponses

Avatar
Daniel
Bonjour.
Si le fichier xlt a été ouvert en tant que modèle, il garde cette extension.
Si le classeur a été créé d'après un fichier modèle avec Fichier /
Nouveau..., c'est une copie de fichier modèle et il n'a pas d'extension tant
qu'il n'a pas été enregistré.
Je ne sais pas si cela répond à ta question.
Cordialement.
Daniel
"JMV" a écrit dans le message de news:

Bonjour,

J'essaie de trouver une méthode en VBA consistant à tester l'extension
d'un
fichier Excel.

A priori, pas de problèmes : il faut travailler avec
activeworkbook.fullname

Pourtant, je n'arrive pas à m'en sortir !

En effet, les fichiers Excel à tester peuvent avoir 3 extensions
différentes
:
a - .xls
b - .xlt
c - pas d'extension.

Le but du 'jeu' est de savoir si le fichier ouvert est un .xlt.

Or, le problème est que activeworkbook.fullname relatif à un fichier .xlt
ne
ramène pas d'extension (j'ai cru comprendre, qu'une copie de travail est
fait à partir du modèle).
Je n'arrive donc pas à opérer une distinction entre les catégories b et c.

J'ai aussi essayé :

Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec
path complet et extension

Le résultat est identique.

Est-ce que quelqu'un voit une astuce pour me permettre de différencier les
catégories b et c ?


Merci d'avance et bonne journée.

Jean-Marc







Avatar
JMV
Le code VBA qui doit me permettre de tester le type de classeur ouvert est
effectée à l'initialisation dans le Workbook_Open().

Typiquement, lorsque le classeur Excel s'ouvre , du code s'exécute dans le
Workbook_open() afin de déterminer le type d'extension du classeur qui vient
de s'ouvrir (xls, xlt, pas d'extension).

Cdt

JM





"Daniel" a écrit dans le message de
news:
Bonjour.
Si le fichier xlt a été ouvert en tant que modèle, il garde cette
extension.

Si le classeur a été créé d'après un fichier modèle avec Fichier /
Nouveau..., c'est une copie de fichier modèle et il n'a pas d'extension
tant

qu'il n'a pas été enregistré.
Je ne sais pas si cela répond à ta question.
Cordialement.
Daniel
"JMV" a écrit dans le message de news:

Bonjour,

J'essaie de trouver une méthode en VBA consistant à tester l'extension
d'un
fichier Excel.

A priori, pas de problèmes : il faut travailler avec
activeworkbook.fullname

Pourtant, je n'arrive pas à m'en sortir !

En effet, les fichiers Excel à tester peuvent avoir 3 extensions
différentes
:
a - .xls
b - .xlt
c - pas d'extension.

Le but du 'jeu' est de savoir si le fichier ouvert est un .xlt.

Or, le problème est que activeworkbook.fullname relatif à un fichier
.xlt


ne
ramène pas d'extension (j'ai cru comprendre, qu'une copie de travail est
fait à partir du modèle).
Je n'arrive donc pas à opérer une distinction entre les catégories b et
c.



J'ai aussi essayé :

Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier
avec


path complet et extension

Le résultat est identique.

Est-ce que quelqu'un voit une astuce pour me permettre de différencier
les


catégories b et c ?


Merci d'avance et bonne journée.

Jean-Marc











Avatar
Daniel
Essaie :

Private Sub Workbook_Open()
If InStr(1, ActiveWorkbook.Name, ".") = 0 Then
MsgBox "pas d'extension"
Else
MsgBox "extension : " & Split(ActiveWorkbook.Name, ".")(1)
End If
End Sub

Daniel
"JMV" a écrit dans le message de news:


Le code VBA qui doit me permettre de tester le type de classeur ouvert est
effectée à l'initialisation dans le Workbook_Open().

Typiquement, lorsque le classeur Excel s'ouvre , du code s'exécute dans le
Workbook_open() afin de déterminer le type d'extension du classeur qui
vient
de s'ouvrir (xls, xlt, pas d'extension).

Cdt

JM





"Daniel" a écrit dans le message de
news:
Bonjour.
Si le fichier xlt a été ouvert en tant que modèle, il garde cette
extension.

Si le classeur a été créé d'après un fichier modèle avec Fichier /
Nouveau..., c'est une copie de fichier modèle et il n'a pas d'extension
tant

qu'il n'a pas été enregistré.
Je ne sais pas si cela répond à ta question.
Cordialement.
Daniel
"JMV" a écrit dans le message de news:

Bonjour,

J'essaie de trouver une méthode en VBA consistant à tester l'extension
d'un
fichier Excel.

A priori, pas de problèmes : il faut travailler avec
activeworkbook.fullname

Pourtant, je n'arrive pas à m'en sortir !

En effet, les fichiers Excel à tester peuvent avoir 3 extensions
différentes
:
a - .xls
b - .xlt
c - pas d'extension.

Le but du 'jeu' est de savoir si le fichier ouvert est un .xlt.

Or, le problème est que activeworkbook.fullname relatif à un fichier
.xlt


ne
ramène pas d'extension (j'ai cru comprendre, qu'une copie de travail
est
fait à partir du modèle).
Je n'arrive donc pas à opérer une distinction entre les catégories b et
c.



J'ai aussi essayé :

Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier
avec


path complet et extension

Le résultat est identique.

Est-ce que quelqu'un voit une astuce pour me permettre de différencier
les


catégories b et c ?


Merci d'avance et bonne journée.

Jean-Marc