Microsoft 365 Générer automatiquement un fichier CSV et non pas XLSX

  • Initiateur de la discussion Initiateur de la discussion MOA_Excel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MOA_Excel

XLDnaute Nouveau
Bonjour,

J'exporte un onglet dans un nouveau fichier créé à cet effet en faisant une macro de type "copié/collé"

Tout fonctionne, à un détail près : même en ayant mis xlCSV, ça s'enregistre en xlsx alors même que le contenu du fichier est en csv !! (avec les virgules séparatrices)

Résultat : quand je tente d'ouvrir le fichier, un message d'erreur s'affiche forcément car c'est incompatible. Il faut d'abord que je remplace xlsx par csv pour ouvrir le fichier nouvellement créé

Question : comment éviter cette manipulation fastidieuse pour les Collaborateurs ?

Je vous remercie par avance de l'intérêt que vous porterez à ce post

Ci-dessous le code réalisé qui serait à amélioré :

VB:
Sub GENERER_NOUVEAU_FICHIER_IMPORT_CONFIDENTIEL()
Dim ChDir As String, nmFich As String
ChDir = "\\CONFIDENTIEL-FILES\datas\CONFIDENTIEL\20-Exploitation\ETL_Exploitation\4 - CONFIDENTIEL\"
nmFich = Sheets("Référentiel").Range("X29").Value & ".xlsx"
With ThisWorkbook
    AfficheDebloque .Sheets("CLIENT1"), "ETL"
    .Sheets("CLIENT1").Copy
    With ActiveWorkbook
        .Sheets(1).Range("A1:DC10000").Value = .Sheets(1).Range("A1:DC10000").Value
        'application.displayalerts = false 'si besoin
        .SaveAs Filename:=ChDir & nmFich, FileFormat:=xlCSV, CreateBackup:=False
        'application.displayalerts = true
        .Close
    End With
    CacheBloque .Sheets("CLIENT1"), "ETL"
End With
End Sub

Sub AfficheDebloque(Feuille As Worksheet, Optional Password As String)
With Feuille
    .Unprotect Password
    .Visible = True
End With
End Sub

Sub CacheBloque(Feuille As Worksheet, Optional Password As String)
With Feuille
    .Visible = False
    .Protect Password
End With
End Sub

Excellente journée à tous
Bien cordialement
JA
 
Solution
Bonjour,

J'exporte un onglet dans un nouveau fichier créé à cet effet en faisant une macro de type "copié/collé"

Tout fonctionne, à un détail près : même en ayant mis xlCSV, ça s'enregistre en xlsx alors même que le contenu du fichier est en csv !! (avec les virgules séparatrices)

Résultat : quand je tente d'ouvrir le fichier, un message d'erreur s'affiche forcément car c'est incompatible. Il faut d'abord que je remplace xlsx par csv pour ouvrir le fichier nouvellement créé

Question : comment éviter cette manipulation fastidieuse pour les Collaborateurs ?

Je vous remercie par avance de l'intérêt que vous porterez à ce post

Ci-dessous le code réalisé qui serait à amélioré :

VB:
Sub GENERER_NOUVEAU_FICHIER_IMPORT_CONFIDENTIEL()...
Bonjour,

J'exporte un onglet dans un nouveau fichier créé à cet effet en faisant une macro de type "copié/collé"

Tout fonctionne, à un détail près : même en ayant mis xlCSV, ça s'enregistre en xlsx alors même que le contenu du fichier est en csv !! (avec les virgules séparatrices)

Résultat : quand je tente d'ouvrir le fichier, un message d'erreur s'affiche forcément car c'est incompatible. Il faut d'abord que je remplace xlsx par csv pour ouvrir le fichier nouvellement créé

Question : comment éviter cette manipulation fastidieuse pour les Collaborateurs ?

Je vous remercie par avance de l'intérêt que vous porterez à ce post

Ci-dessous le code réalisé qui serait à amélioré :

VB:
Sub GENERER_NOUVEAU_FICHIER_IMPORT_CONFIDENTIEL()
Dim ChDir As String, nmFich As String
ChDir = "\\CONFIDENTIEL-FILES\datas\CONFIDENTIEL\20-Exploitation\ETL_Exploitation\4 - CONFIDENTIEL\"
nmFich = Sheets("Référentiel").Range("X29").Value & ".xlsx"
With ThisWorkbook
    AfficheDebloque .Sheets("CLIENT1"), "ETL"
    .Sheets("CLIENT1").Copy
    With ActiveWorkbook
        .Sheets(1).Range("A1:DC10000").Value = .Sheets(1).Range("A1:DC10000").Value
        'application.displayalerts = false 'si besoin
        .SaveAs Filename:=ChDir & nmFich, FileFormat:=xlCSV, CreateBackup:=False
        'application.displayalerts = true
        .Close
    End With
    CacheBloque .Sheets("CLIENT1"), "ETL"
End With
End Sub

Sub AfficheDebloque(Feuille As Worksheet, Optional Password As String)
With Feuille
    .Unprotect Password
    .Visible = True
End With
End Sub

Sub CacheBloque(Feuille As Worksheet, Optional Password As String)
With Feuille
    .Visible = False
    .Protect Password
End With
End Sub

Excellente journée à tous
Bien cordialement
JA
Je me permets de clôturer moi-même le ticket car je viens de trouver le pb.

Sur une ligne dans le code j'ai mis ".xlsx". Le simple remplacement par ".csv" est la solution

Bien cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
74
Réponses
4
Affichages
358
Réponses
2
Affichages
714
Réponses
5
Affichages
398
Réponses
3
Affichages
534
Réponses
2
Affichages
422
Retour