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

problème de version entraînant une erreur du compilateur

2 réponses
Avatar
Jean-Claude Rivière
Bonjour à tous,

J'utilise excel 2002. J'envoie à des clients un fichier excel, et ceux-ci me
renvoie un fichier csv afin que je puisse effectuer des traitements dans une
base de données. Le parc des clients est partagé entre la version 2000 et
supérieur.
Pour convertir vers un classeur CSV, j'utilisais le code suivant :
(...)
ActiveSheet.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:=False
(...)
Cependant, en version 2002, lors de la conversion en csv, les ";" sont
remplacés par des ",". J'ai trouvé qu'il fallait agir sur une nouvelle
clause "local" apparue avec la version 2002. Après divers essais, ma
procédure est peu à peu devenue la suivante :
(...)
If Val(Application.Version) < 10 Then
ActiveSheet.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:=False
Else
' à partir de la version 2002, le séparateur ";" est remplacé par
défaut par "," !
' il faut séparer la feuille à convertir, puis préciser la clause
local
' pour qu'xl utilise le séparateur de liste prévu dans le panneau de
configuration
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:=False, local:=True
End If
(...)
Le problème est que, bien sûr, quand cela doit tourner sur une version 2000,
le compilateur bute sur local:=true à la compilation. Comment puis-je sortir
de ce cercle infernal?
Merci à tous pour votre aide.

Jean-Claude

2 réponses

Avatar
isabelle
bonjour Jean-Claude,

il faudrait ajouter une option pour cette version et peut être pour d'autres,

Select Case Val(Application.Version)
Case 8: action1 ' Office 97
Case 9: action2 ' Office 2000
Case 10: action3 ' Office 2002
End Select


isabelle


Bonjour à tous,

J'utilise excel 2002. J'envoie à des clients un fichier excel, et ceux-ci me
renvoie un fichier csv afin que je puisse effectuer des traitements dans une
base de données. Le parc des clients est partagé entre la version 2000 et
supérieur.
Pour convertir vers un classeur CSV, j'utilisais le code suivant :
(...)
ActiveSheet.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:úlse
(...)
Cependant, en version 2002, lors de la conversion en csv, les ";" sont
remplacés par des ",". J'ai trouvé qu'il fallait agir sur une nouvelle
clause "local" apparue avec la version 2002. Après divers essais, ma
procédure est peu à peu devenue la suivante :
(...)
If Val(Application.Version) < 10 Then
ActiveSheet.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:úlse
Else
' à partir de la version 2002, le séparateur ";" est remplacé par
défaut par "," !
' il faut séparer la feuille à convertir, puis préciser la clause
local
' pour qu'xl utilise le séparateur de liste prévu dans le panneau de
configuration
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:úlse, local:=True
End If
(...)
Le problème est que, bien sûr, quand cela doit tourner sur une version 2000,
le compilateur bute sur local:=true à la compilation. Comment puis-je sortir
de ce cercle infernal?
Merci à tous pour votre aide.

Jean-Claude




Avatar
Jean-Claude Rivière
Merci beaucoup, ça fonctionne ainsi.

JC

"isabelle" a écrit dans le message de news:

bonjour Jean-Claude,

il faudrait ajouter une option pour cette version et peut être pour
d'autres,

Select Case Val(Application.Version)
Case 8: action1 ' Office 97
Case 9: action2 ' Office 2000
Case 10: action3 ' Office 2002
End Select


isabelle


Bonjour à tous,

J'utilise excel 2002. J'envoie à des clients un fichier excel, et ceux-ci
me renvoie un fichier csv afin que je puisse effectuer des traitements
dans une base de données. Le parc des clients est partagé entre la
version 2000 et supérieur.
Pour convertir vers un classeur CSV, j'utilisais le code suivant :
(...)
ActiveSheet.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:úlse
(...)
Cependant, en version 2002, lors de la conversion en csv, les ";" sont
remplacés par des ",". J'ai trouvé qu'il fallait agir sur une nouvelle
clause "local" apparue avec la version 2002. Après divers essais, ma
procédure est peu à peu devenue la suivante :
(...)
If Val(Application.Version) < 10 Then
ActiveSheet.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:úlse
Else
' à partir de la version 2002, le séparateur ";" est remplacé par
défaut par "," !
' il faut séparer la feuille à convertir, puis préciser la clause
local
' pour qu'xl utilise le séparateur de liste prévu dans le panneau
de configuration
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=nomcsv, FileFormat:=xlCSV,
CreateBackup:úlse, local:=True
End If
(...)
Le problème est que, bien sûr, quand cela doit tourner sur une version
2000, le compilateur bute sur local:=true à la compilation. Comment
puis-je sortir de ce cercle infernal?
Merci à tous pour votre aide.

Jean-Claude