Extraire une feuille pour l'enregistrer en .csv (avec séparateur point)

Bonjour à tous,

J'ai créé le code ci-dessous qui aurait dû me permettre à partir de fichiers source de remplir le fichier cible ci-joint.

Sub recup_donnees()

Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER_TD").Range("B6:H5000").Copy Destination:=Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER").Range("a2")

Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER_MG").Range("F6:F5000").Copy Destination:=Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER").Range("I2")

Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER").Range("A2", Range("A2").End(xlDown)).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo

Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER").Range("A2:A5000").Copy Destination:=Workbooks("Liste des salariés v1.xlsm").Worksheets("Employees Template()").Range("E5")

Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER").Range("B2:B5000").Copy Destination:=Workbooks("Liste des salariés v1.xlsm").Worksheets("Employees Template()").Range("B5")

Workbooks("Liste des salariés v1.xlsm").Worksheets("_DATA_MASTER").Range("C2:C5000").Copy Destination:=Workbooks("Liste des salariés v1.xlsm").Worksheets("Employees Template()").Range("D5")

Workbooks("Liste des salariés v1.xlsm").Worksheets("Employees Template()").Range("A5:EG5000").Copy Destination:=Workbooks("Liste des salariés v1.xlsm").Worksheets("Employees update").Range("A2")

Workbooks("Liste des salariés v1.xlsm").Worksheets("Employees update").SaveAs Filename:="Employees update", FileFormat:=xlCSV

Workbooks("Employees update").Close False

Application.DisplayAlerts = True

Workbooks("Liste des salariés v1.xlsm").Close False

End Sub

Dans l'absolu, j'aurais aimé :

- enregistrer l'onglet "Employees update" dans le même dossier que le fichier cible mais il est enregistré dans "c:/documents".

- qu'Excel écrase systématiquement la dernière version existante en .csv de la feuille "Employees update" en la remplaçant par la nouvelle sans modifier mon fichier cible ("Liste de salariés v1")

- après avoir enregistré la version .csv (avec séparateur point virgule), l'enregistrer sous le même nom mais en version .txt

Le but final étant d'envoyer ce fichier .txt vers un serveur ftp sécurisé (que l'éditeur de logiciel ne m'a pas encore transmis), je reviendrai surement vers vous plus tard (il parait qu'on ne change pas une équipe qui gagne

mais je regarderai avant si je ne peux me débrouiller seul).

Un gros merci par avance parce que j'avance plus là

Karim

Bonjour

Pensez à utiliser les balises de code lorsque vous postez un code dans un fil de discussion (Cliquez sur l'icone code </> dans le menu puis coller votre code dans la fenêtre)

Votre code à essayez pour la sauvegarde en format CSV

Sub recup_donnees()
Dim LeNom As String

With Workbooks("Liste des salariés v1.xlsm")
    .Worksheets("_DATA_MASTER_TD").Range("B6:H5000").Copy .Worksheets("_DATA_MASTER").Range("a2")
    .Worksheets("_DATA_MASTER_MG").Range("F6:F5000").Copy .Worksheets("_DATA_MASTER").Range("I2")
    With .Worksheets("_DATA_MASTER")
        .Range("A2", Range("A2").End(xlDown)).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo
        .Range("A2:A5000").Copy .Worksheets("Employees Template()").Range("E5")
        .Range("B2:B5000").Copy .Worksheets("Employees Template()").Range("B5")
        .Range("C2:C5000").Copy .Worksheets("Employees Template()").Range("D5")
    End With
    .Worksheets("Employees Template()").Range("A5:EG5000").Copy .Worksheets("Employees update").Range("A2")

    Application.DisplayAlerts = False

    LeNom = "Employees update"
    With .Worksheets("Employees update")
        .SaveAs Filename:=ThisWorkbook.Path & "\" & LeNom, FileFormat:=xlCSV, CreateBackup:=False
        ActiveWorkbook.Close False
        .SaveAs Filename:=ThisWorkbook.Path & "\" & LeNom, FileFormat:=xlTextMSDOS, CreateBackup:=False
        ActiveWorkbook.Close False
    End With
    .Close False

End With
Application.DisplayAlerts = True
End Sub

Cordialement

Merci Dan,

Je viens de lire le message. Je vais le tester et vous fais un retour rapidement.

Merci encore.

OK. J'attends votre retour

En dehors de ce fil, vous avez d'autres fils en suspend. Merci de les mettre en résolu si vous en avez terminé --> https://forum.excel-pratique.com/membre/70422

Cordialement

Rechercher des sujets similaires à "extraire feuille enregistrer csv separateur point"