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