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

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()...

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
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
 

Discussions similaires

Réponses
2
Affichages
110

Statistiques des forums

Discussions
312 026
Messages
2 084 754
Membres
102 654
dernier inscrit
kulas11