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

Enregistrer en format xls en macro avec Office 2007

6 réponses
Avatar
Laurent
Bonjour,
J'ai une macro qui enregistre un document en xls (j'ai des utilisateurs en
Office 2000, 2003 et 2007).
J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "\" &
NomFichier & ".xls")
Mon problème est qu'il enregistre un xls... mais il s'agit en fait d'un xlsx
renommé en xls donc illisible dans une version antérieure à Office 2007.
Je ne trouve pas de paramètre pour forcer le format xls, de plus la macro
pourra être lancé en Office 2003 ou en Office 2007
Auriez vous une solution à me proposer ?
Merci d'avance
Laurent

6 réponses

Avatar
Daniel.C
Bonjour.
Utilise :
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Cordialement.
Daniel

Laurent a écrit :
Bonjour,
J'ai une macro qui enregistre un document en xls (j'ai des utilisateurs en
Office 2000, 2003 et 2007).
J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "" &
NomFichier & ".xls")
Mon problème est qu'il enregistre un xls... mais il s'agit en fait d'un xlsx
renommé en xls donc illisible dans une version antérieure à Office 2007.
Je ne trouve pas de paramètre pour forcer le format xls, de plus la macro
pourra être lancé en Office 2003 ou en Office 2007
Auriez vous une solution à me proposer ?
Merci d'avance
Laurent


Avatar
Laurent
Merci Daniel,
C'est effectivement le contournement que j'ai fait, pour info le xlExcel8 ne
fonctionne pas avec Office 2000, je l'ai remplacé par xlNormal.
L'inconvenient de cette méthode est que je suis obligé de gérer l'écrasement
de mes fichiers en macro et pas par la fonction (ce que faisait bien
xlDialogSaveAs).
Si le fichier existe suppression du fichier existant, voici le bout de code
correspondant.

....
If Dir(fich) <> "" Then
Msg = MsgBox("Attention le fichier existe déjà" & Chr(13) &
"Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
' Si oui, faut t-il l'effacer ?
If Msg = 6 Then ' Oui
Kill fich' Efface
Else ' Non
GoTo Enregistrement
End If
End If
....
Je garde cette solution pour le moment.

Cdlmt
Laurent
"Daniel.C" a écrit :

Bonjour.
Utilise :
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Cordialement.
Daniel

Laurent a écrit :
> Bonjour,
> J'ai une macro qui enregistre un document en xls (j'ai des utilisateurs en
> Office 2000, 2003 et 2007).
> J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "" &
> NomFichier & ".xls")
> Mon problème est qu'il enregistre un xls... mais il s'agit en fait d'un xlsx
> renommé en xls donc illisible dans une version antérieure à Office 2007.
> Je ne trouve pas de paramètre pour forcer le format xls, de plus la macro
> pourra être lancé en Office 2003 ou en Office 2007
> Auriez vous une solution à me proposer ?
> Merci d'avance
> Laurent



Avatar
Daniel.C
Un autre façon de faire :

Do
Err.Clear
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Loop Until Err.Number = 0

Daniel

Laurent a écrit :
Merci Daniel,
C'est effectivement le contournement que j'ai fait, pour info le xlExcel8 ne
fonctionne pas avec Office 2000, je l'ai remplacé par xlNormal.
L'inconvenient de cette méthode est que je suis obligé de gérer l'écrasement
de mes fichiers en macro et pas par la fonction (ce que faisait bien
xlDialogSaveAs).
Si le fichier existe suppression du fichier existant, voici le bout de code
correspondant.

....
If Dir(fich) <> "" Then
Msg = MsgBox("Attention le fichier existe déjà" & Chr(13) &
"Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
' Si oui, faut t-il l'effacer ?
If Msg = 6 Then ' Oui
Kill fich' Efface
Else ' Non
GoTo Enregistrement
End If
End If
....
Je garde cette solution pour le moment.

Cdlmt
Laurent
"Daniel.C" a écrit :

Bonjour.
Utilise :
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Cordialement.
Daniel

Laurent a écrit :
Bonjour,
J'ai une macro qui enregistre un document en xls (j'ai des utilisateurs en
Office 2000, 2003 et 2007).
J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "" &
NomFichier & ".xls")
Mon problème est qu'il enregistre un xls... mais il s'agit en fait d'un xlsx
renommé en xls donc illisible dans une version antérieure à Office 2007.
Je ne trouve pas de paramètre pour forcer le format xls, de plus la macro
pourra être lancé en Office 2003 ou en Office 2007
Auriez vous une solution à me proposer ?
Merci d'avance
Laurent






Avatar
Daniel.C
Oups :

On Error Resume Next
Do
Err.Clear
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Loop Until Err.Number = 0

Daniel

Daniel.C a écrit :
Un autre façon de faire :

Do
Err.Clear
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Loop Until Err.Number = 0

Daniel

Laurent a écrit :
Merci Daniel,
C'est effectivement le contournement que j'ai fait, pour info le
xlExcel8 ne fonctionne pas avec Office 2000, je l'ai remplacé par
xlNormal.
L'inconvenient de cette méthode est que je suis obligé de gérer
l'écrasement de mes fichiers en macro et pas par la fonction (ce que
faisait bien xlDialogSaveAs).
Si le fichier existe suppression du fichier existant, voici le bout de
code correspondant.

....
If Dir(fich) <> "" Then
Msg = MsgBox("Attention le fichier existe déjà" & Chr(13) &
"Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
' Si oui, faut t-il l'effacer ?
If Msg = 6 Then ' Oui
Kill fich' Efface
Else ' Non
GoTo Enregistrement End If
End If
....
Je garde cette solution pour le moment.

Cdlmt
Laurent
"Daniel.C" a écrit :

Bonjour.
Utilise :
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files
(*.xls), *.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Cordialement.
Daniel

Laurent a écrit :
Bonjour,
J'ai une macro qui enregistre un document en xls (j'ai des
utilisateurs en Office 2000, 2003 et 2007).
J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "" &
NomFichier & ".xls")
Mon problème est qu'il enregistre un xls... mais il s'agit en fait
d'un xlsx renommé en xls donc illisible dans une version antérieure
à Office 2007.
Je ne trouve pas de paramètre pour forcer le format xls, de plus la
macro pourra être lancé en Office 2003 ou en Office 2007
Auriez vous une solution à me proposer ? Merci d'avance Laurent








Avatar
Philippe
Bonjour à tous

Laurent, si mes souvenirs sont bons, et si c'est cela que tu recherches, n'y
a t -il pas une MAJ de micrososft office pour excel qui comporte un
convertisseur pour lire du 2007 sur du 2003 ?
C'est ce que j'ai sur ma machine.
Philippe

"Daniel.C" a écrit dans le message de news:

Oups :

On Error Resume Next
Do
Err.Clear
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Loop Until Err.Number = 0

Daniel

Daniel.C a écrit :
Un autre façon de faire :

Do
Err.Clear
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Loop Until Err.Number = 0

Daniel

Laurent a écrit :
Merci Daniel,
C'est effectivement le contournement que j'ai fait, pour info le
xlExcel8 ne fonctionne pas avec Office 2000, je l'ai remplacé par
xlNormal.
L'inconvenient de cette méthode est que je suis obligé de gérer
l'écrasement de mes fichiers en macro et pas par la fonction (ce que
faisait bien xlDialogSaveAs).
Si le fichier existe suppression du fichier existant, voici le bout de
code correspondant.

....
If Dir(fich) <> "" Then
Msg = MsgBox("Attention le fichier existe déjà" & Chr(13) &
"Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
' Si oui, faut t-il l'effacer ?
If Msg = 6 Then ' Oui
Kill fich' Efface
Else ' Non
GoTo Enregistrement End If
End If
....
Je garde cette solution pour le moment.

Cdlmt
Laurent
"Daniel.C" a écrit :

Bonjour.
Utilise :
Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
*.xls")
ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
Cordialement.
Daniel

Laurent a écrit :
Bonjour,
J'ai une macro qui enregistre un document en xls (j'ai des
utilisateurs en Office 2000, 2003 et 2007).
J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "" &
NomFichier & ".xls")
Mon problème est qu'il enregistre un xls... mais il s'agit en fait
d'un xlsx renommé en xls donc illisible dans une version antérieure à
Office 2007.
Je ne trouve pas de paramètre pour forcer le format xls, de plus la
macro pourra être lancé en Office 2003 ou en Office 2007
Auriez vous une solution à me proposer ? Merci d'avance Laurent










Avatar
Laurent
Bonjour Philippe
Effectivement il existe... mais il pose deux problèmes :
D'abord j'ai encore un serveur en Office 2000, donc impossible de l'utiliser.
Je l'ai testé, et pour moi il n'est pas satisfaisant, il permet de consulter
des documents Office 2007 mais pas de les modifier pour échanger avec
quelqu'un en Office 2007, en tout cas pas pour Excel (il ouvre une copie il
me semble ???)

Laurent

"Philippe" a écrit :

Bonjour à tous

Laurent, si mes souvenirs sont bons, et si c'est cela que tu recherches, n'y
a t -il pas une MAJ de micrososft office pour excel qui comporte un
convertisseur pour lire du 2007 sur du 2003 ?
C'est ce que j'ai sur ma machine.
Philippe

"Daniel.C" a écrit dans le message de news:

> Oups :
>
> On Error Resume Next
> Do
> Err.Clear
> Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
> *.xls")
> ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
> Loop Until Err.Number = 0
>
> Daniel
>
> Daniel.C a écrit :
>> Un autre façon de faire :
>>
>> Do
>> Err.Clear
>> Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
>> *.xls")
>> ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
>> Loop Until Err.Number = 0
>>
>> Daniel
>>
>> Laurent a écrit :
>>> Merci Daniel,
>>> C'est effectivement le contournement que j'ai fait, pour info le
>>> xlExcel8 ne fonctionne pas avec Office 2000, je l'ai remplacé par
>>> xlNormal.
>>> L'inconvenient de cette méthode est que je suis obligé de gérer
>>> l'écrasement de mes fichiers en macro et pas par la fonction (ce que
>>> faisait bien xlDialogSaveAs).
>>> Si le fichier existe suppression du fichier existant, voici le bout de
>>> code correspondant.
>>>
>>> ....
>>> If Dir(fich) <> "" Then
>>> Msg = MsgBox("Attention le fichier existe déjà" & Chr(13) &
>>> "Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
>>> ' Si oui, faut t-il l'effacer ?
>>> If Msg = 6 Then ' Oui
>>> Kill fich' Efface
>>> Else ' Non
>>> GoTo Enregistrement End If
>>> End If
>>> ....
>>> Je garde cette solution pour le moment.
>>>
>>> Cdlmt
>>> Laurent
>>> "Daniel.C" a écrit :
>>>
>>>> Bonjour.
>>>> Utilise :
>>>> Fich = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls),
>>>> *.xls")
>>>> ActiveWorkbook.SaveAs Filename:=Fich, FileFormat:=xlExcel8
>>>> Cordialement.
>>>> Daniel
>>>>
>>>> Laurent a écrit :
>>>>> Bonjour,
>>>>> J'ai une macro qui enregistre un document en xls (j'ai des
>>>>> utilisateurs en Office 2000, 2003 et 2007).
>>>>> J'utilise : Application.Dialogs(xlDialogSaveAs).Show(Chemin & "" &
>>>>> NomFichier & ".xls")
>>>>> Mon problème est qu'il enregistre un xls... mais il s'agit en fait
>>>>> d'un xlsx renommé en xls donc illisible dans une version antérieure à
>>>>> Office 2007.
>>>>> Je ne trouve pas de paramètre pour forcer le format xls, de plus la
>>>>> macro pourra être lancé en Office 2003 ou en Office 2007
>>>>> Auriez vous une solution à me proposer ? Merci d'avance Laurent