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

vba - enregistrer en CSV

8 réponses
Avatar
sunburn
Bonjour,
que dois-je mettre en vba, si je souhaite enregsitrer mon fichier selon me
demandes suivantes :
- en format CSV, séparateur ;
- dans le même répertoire que mon .xls
- avec le meme nom que mon .xls

Je vous remercie.

YANN

8 réponses

Avatar
MichDenis
Bonjour sunburn,

Attention : Le paramètre "Local" de la méthode SAVEAS existe depuis la version Excel 2002
(de mémoire) si tu utilises la macro dans une version précédente, cela générera une
erreur.

'----------------------------------
Sub test()
Dim Nom As String
Nom = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 3)
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Nom, FileFormat:=xlCSV,
Local:=True
End Sub
'----------------------------------



"sunburn" a écrit dans le message de groupe de
discussion :
Bonjour,
que dois-je mettre en vba, si je souhaite enregsitrer mon fichier selon me
demandes suivantes :
- en format CSV, séparateur ;
- dans le même répertoire que mon .xls
- avec le meme nom que mon .xls

Je vous remercie.

YANN
Avatar
FFO
Salut à toi

Peut être avec ceci :

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" &
Mid(ThisWorkbook.Name, 1, Len(ThisWorkbook.Name) - 3) & "csv", FileFormat:= _
xlCSV, CreateBackup:úlse

Dis moi !!!!!
Avatar
sunburn
re,
alors en fait, c'est plus compliqué que ça.
j'utilise bien excel 2003, pas de soucis.
par contre, ma macro est écrite dans un fichier "MacroMoi.xls", et ce
fichier comporte 1 barre d'outils avec 2 bouton.
les effets de cette macro se font sur un autre fichier. ce fichier à traiter
change tout le temps. c'est pour ça que j'ai ma macro à part du fichier à
traiter, pour pouvoir l'utiliser facilement sur plein de fichiers.
donc le ThisWorkbook marche pas....
je vous met mon fichier avec ma macro pour voir

http://www.cijoint.fr/cjlink.php?file=cj200906/cij39fip8g.xls

merci
YANN

"MichDenis" a écrit :

Bonjour sunburn,

Attention : Le paramètre "Local" de la méthode SAVEAS existe depuis la version Excel 2002
(de mémoire) si tu utilises la macro dans une version précédente, cela générera une
erreur.

'----------------------------------
Sub test()
Dim Nom As String
Nom = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 3)
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Nom, FileFormat:=xlCSV,
Local:=True
End Sub
'----------------------------------



"sunburn" a écrit dans le message de groupe de
discussion :
Bonjour,
que dois-je mettre en vba, si je souhaite enregsitrer mon fichier selon me
demandes suivantes :
- en format CSV, séparateur ;
- dans le même répertoire que mon .xls
- avec le meme nom que mon .xls

Je vous remercie.

YANN




Avatar
sunburn
je viens de répondre plus haut à Michel Denis.
ma problématique y est expliqué.
si tu peux faire quelque chose pour moi, merci.
YANN

"FFO" a écrit :

Salut à toi

Peut être avec ceci :

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" &
Mid(ThisWorkbook.Name, 1, Len(ThisWorkbook.Name) - 3) & "csv", FileFormat:= _
xlCSV, CreateBackup:úlse

Dis moi !!!!!



Avatar
MichDenis
Je n'ai pas regardé ton fichier... mais pour obtenir
ce que tu veux :
Remplace ThisWorkbook par ActiveWorkbook

De plus, seule la feuille active du classeur actif sera enregistrée
au format CSV et non tout le classeur. En conséquence, tu dois
t'assurer que tu as la bonne feuille du bon classeur actif à l'écran
avant de lancer la procédure.

"sunburn" a écrit dans le message de groupe de
discussion :
re,
alors en fait, c'est plus compliqué que ça.
j'utilise bien excel 2003, pas de soucis.
par contre, ma macro est écrite dans un fichier "MacroMoi.xls", et ce
fichier comporte 1 barre d'outils avec 2 bouton.
les effets de cette macro se font sur un autre fichier. ce fichier à traiter
change tout le temps. c'est pour ça que j'ai ma macro à part du fichier à
traiter, pour pouvoir l'utiliser facilement sur plein de fichiers.
donc le ThisWorkbook marche pas....
je vous met mon fichier avec ma macro pour voir

http://www.cijoint.fr/cjlink.php?file=cj200906/cij39fip8g.xls

merci
YANN

"MichDenis" a écrit :

Bonjour sunburn,

Attention : Le paramètre "Local" de la méthode SAVEAS existe depuis la version Excel
2002
(de mémoire) si tu utilises la macro dans une version précédente, cela générera une
erreur.

'----------------------------------
Sub test()
Dim Nom As String
Nom = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 3)
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Nom, FileFormat:=xlCSV,
Local:=True
End Sub
'----------------------------------



"sunburn" a écrit dans le message de groupe de
discussion :
Bonjour,
que dois-je mettre en vba, si je souhaite enregsitrer mon fichier selon me
demandes suivantes :
- en format CSV, séparateur ;
- dans le même répertoire que mon .xls
- avec le meme nom que mon .xls

Je vous remercie.

YANN




Avatar
FFO
Rebonjour à toi

Ce code devrait parfaitement convenir :

ActiveWorkbook.SaveAs Filename:¬tiveWorkbook.Path & "" &
Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 3) & "csv",
FileFormat:= _
xlCSV, CreateBackup:úlse

Il suffit que le fichier à enregistrer en CVS soit actif et d'activer ce
code pour l'enregistrer en CVS dans le même répertoire que ce fichier avec le
même nom et l'extension ".CVS"

Fais des essais et dis moi !!!!!!
Avatar
sunburn
bonjour,
merci beaucoup, ça fonctionne impecablement bien.
YANN

"MichDenis" a écrit :

Je n'ai pas regardé ton fichier... mais pour obtenir
ce que tu veux :
Remplace ThisWorkbook par ActiveWorkbook

De plus, seule la feuille active du classeur actif sera enregistrée
au format CSV et non tout le classeur. En conséquence, tu dois
t'assurer que tu as la bonne feuille du bon classeur actif à l'écran
avant de lancer la procédure.

"sunburn" a écrit dans le message de groupe de
discussion :
re,
alors en fait, c'est plus compliqué que ça.
j'utilise bien excel 2003, pas de soucis.
par contre, ma macro est écrite dans un fichier "MacroMoi.xls", et ce
fichier comporte 1 barre d'outils avec 2 bouton.
les effets de cette macro se font sur un autre fichier. ce fichier à traiter
change tout le temps. c'est pour ça que j'ai ma macro à part du fichier à
traiter, pour pouvoir l'utiliser facilement sur plein de fichiers.
donc le ThisWorkbook marche pas....
je vous met mon fichier avec ma macro pour voir

http://www.cijoint.fr/cjlink.php?file=cj200906/cij39fip8g.xls

merci
YANN

"MichDenis" a écrit :

> Bonjour sunburn,
>
> Attention : Le paramètre "Local" de la méthode SAVEAS existe depuis la version Excel
> 2002
> (de mémoire) si tu utilises la macro dans une version précédente, cela générera une
> erreur.
>
> '----------------------------------
> Sub test()
> Dim Nom As String
> Nom = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 3)
> ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Nom, FileFormat:=xlCSV,
> Local:=True
> End Sub
> '----------------------------------
>
>
>
> "sunburn" a écrit dans le message de groupe de
> discussion :
> Bonjour,
> que dois-je mettre en vba, si je souhaite enregsitrer mon fichier selon me
> demandes suivantes :
> - en format CSV, séparateur ;
> - dans le même répertoire que mon .xls
> - avec le meme nom que mon .xls
>
> Je vous remercie.
>
> YANN
>
>



Avatar
sunburn
re,
merci, j'ai remplacé thisworkbook par activeworkbook, et c'est impec.
par contre, j'ai mis -4 caractères, et c'est bon.
YANN

"FFO" a écrit :

Rebonjour à toi

Ce code devrait parfaitement convenir :

ActiveWorkbook.SaveAs Filename:¬tiveWorkbook.Path & "" &
Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 3) & "csv",
FileFormat:= _
xlCSV, CreateBackup:úlse

Il suffit que le fichier à enregistrer en CVS soit actif et d'activer ce
code pour l'enregistrer en CVS dans le même répertoire que ce fichier avec le
même nom et l'extension ".CVS"

Fais des essais et dis moi !!!!!!