Exporter en .CSV, mais compliqué ... HELP !

PatLac

XLDnaute Occasionnel
Bonjour à tous !
J´ai consulter le forum pour mon soucis ( ou plutot les 4 premiers onglets), mais n´ais rien trouvé, meme approchant.
Donc je me permet de soliciter votre bienveillance.
Voici donc ma requete :
  1. Je désire exporter une feuille, et que celle-ci soit enregistrée au format ".csv", sur un lecteur nommé "K:\" On va dire que ce fichier s´appelera "TEST"... donc a terme "test.csv"... K:\test.csv
  2. C´est là que ca devient chaud : cette feuille il y en a une tous les jours, et il faudrait que cette 2 eme feuille, puis la 3 eme, etc ... vienne compléter le fichier creé au début, donc ouvrir le fichier "test.csv", complèter à la suite le fichier "test.csv", puis le refermer, et cela tous les jours ...
Est-ce que ca peut se faire ?
Merci d´avance pour votre aide et n´hésitez pas, toutes les aides sont les bienvenus.

Cordiales Salutations

PS: Je verse 2 fichiers ...
 

Pièces jointes

  • Mappe1.xlsx
    9.4 KB · Affichages: 43
  • Mappe2.xlsx
    9.6 KB · Affichages: 28

zebanx

XLDnaute Accro
Bonjour Patlac

Un essai

Les csv sont enregistrés dans le même répertoire.
Il faut dézipper le fichier joint et les enregistrer dans un répertoire test svp.

On va sur le premier fichier xls et on "lance" puis en fin d'opération on enregistre en "csv".

Il y a plusieurs boutons pour voir les étapes intermédiaires :

1. Macro "lancer"
- transformation des csv en xls
- import des xls
- recap (limité à la colonne J - à modifier suivant vos besoins)

2. Macro "csv"
- uniquement enregistrer la première feuille finale

C'est pas l'idéal mais ça fonctionne pour avoir un fichier consolidé en quelques clics

zebanx
 

Pièces jointes

  • CSV.zip
    27.4 KB · Affichages: 26
Dernière édition:

PatLac

XLDnaute Occasionnel
Bonsoir Zebanx !
Merci pour l´essai, mais avec votre respect, on s´égare !:)
La conversion csv en xls n´est pas utile, et j´avoue que je n´ai pas bien compris le principe.:oops:

En fait, il faut juste convertir le .xls en .csv , en un fichier "test" sur une racine de lecteur "K:\" ... ce qui donne a terme K:\test.csv .;)

Par la suite, ce fichier créé (test.csv) ,pouvoir le compléter jour après jour ... ce qui implique le fait de l´ouvrir, le compléter et le refermer, tout cela à l´aide d´une Macro, sans intervenir physiquement dessus, en cliquant sur l´icone en fait... que ce soit automatisé .
C´est pour cela que j´ai mis 2 fichiers différents plus haut.

Mais bon, peut etre que ce n´est pas possible du tout, j´en sais rien en fait, c´est pour cela que j´ai besoin de vos lumières.o_O

Merci !:D
 

sousou

XLDnaute Barbatruc
Bonsoir.
map1 est le fichier du premier jour et map 2 celui du jour suivant?
Tu oublies de préciser la manière dont tu veux compléter le fichier 'test'
map2 de vient la deuxième feuille du fichier test?
quelle résultat veux-tu dans ce fichier?
Un exemple de résultat souhaité serait le bien venue
 

PatLac

XLDnaute Occasionnel
En fait je viens de comprendre ...lol :p

Le soucis, c´est que dans votre exemple, les fichiers sont déja existants (mappe 1, 2, 3 et 4) au format CSV ...

Moi, je désire partir de rien ... sur K:\, il n´y aura rien, jusqu´a ce que les fichier "TEST.csv" soit généré ...
Au départ, il y a juste le fichier mappe1.xls qui est ouvert, qui avec la macro générera le fichier "test.csv", et par le suite devra etre complété jour aprés jour.

La Macro qui sera dans "mappe1.xlsm" doit pouvoir ouvrir le fichier "test.csv", le compléter avec ce qui aura été saisi, et le refermer .

Merci.;)
 

PatLac

XLDnaute Occasionnel
@sousou , Bonsoir !:)
Map1 et Map2 devront etre sur la meme feuille de "test.csv", c´est pour cela que j´en ai mis 2.
Puis viendra map3 etc ... qui viennent se mettre toujours a la suite...

L´extension csv n´étant pas autorisée, je mets le mets le fichier en xlsx, donc "test.xlsx", pour que vous ayez un visuel du final désiré.

Merci;)
 

Pièces jointes

  • test.xlsx
    9.8 KB · Affichages: 20
Dernière édition:

cp4

XLDnaute Barbatruc

Bonsoir, Je n'ai pas bien compris ce que tu veux obtenir exactement par rapport à ton précédent message.

Le csv est un format texte, en lecture seule. Je ne crois pas qu'il est possible de lui intégrer des macros.

une approche à mettre dans un module standard du fichier où se trouve la feuille à exporter.
VB:
Sub CréerFichierCSV()
    Dim Plage As Range
    Dim Chemin As String, Fichier As String, NomFichier As String, Chaine As String
    Dim L As Long, F As Integer, c As Integer
    Dim Fd As Worksheet
    Set Fd = Worksheets("Mappe1")
    '----------------------------------------------------------------------------------------------
    NomFichier = "1Test" & ".csv"
    Chemin = "K:"

    ChDir Chemin    'se place sur le repertoire du programme

    Fichier = Chemin & "\" & NomFichier

    Application.ScreenUpdating = False

    With Fd
        Set Plage = Fd.UsedRange
        F = FreeFile()
        Open Fichier For Output As #F
        For L = 1 To Plage.Rows.Count
            Chaine = Plage.Cells(L, 1)
            For c = 2 To Plage.Columns.Count
                Chaine = Chaine & ";" & Plage.Cells(L, c)
            Next c
            Print #F, Chaine
        Next L
        Close #F
    End With
    Set Fd = Nothing
End Sub
 

eriiic

XLDnaute Barbatruc
Bonjour,

la même idée, mais avec For Append pour ajouter en fin de fichier et non écraser :
VB:
Sub test()
    Dim numfich As Integer, lig As Long, col As Long, ch As String
    numfich = FreeFile
    Open "D:\tmp\test.csv" For Append As #numfich
    For lig = 1 To 3
        ch = ""
        For col = 1 To 5
            ' fabriquer ta ligne de données
            ch = ch & ";" & Cells(lig, col)
        Next col
        Print #numfich, Mid(ch, 2)
    Next lig
    Close #numfich
End Sub
eric
 

PatLac

XLDnaute Occasionnel
@cp4 Bonsoir ! Super, c´est plus mon souhait final ... maintenant il faudrait que je puisse mettre á la suite, d´autres données, disons qu´a la place de Lundi, Mardi etc... je puisse inscerer janvier, fevrier etc ... mais sans remplacer les premières saisies, juste mettre tout cela á la suite .
 

cp4

XLDnaute Barbatruc
Eriiiic;), Patlac:),

Il faudrait plus de précisions. Est-ce que tu exécutes le code toujours à partir du même fichier, les feuilles à exporter sont-elles dans ce même fichier et portent-elles des noms différents?
ou est-ce que c'est la même feuille dont les données changent?
 

PatLac

XLDnaute Occasionnel
Bon, je me disais bien que quelque part ca allait bugger ...et bien c´est fait :
@cp4 Re- ! Avec le code de eriiiic ca fonctionne mais j´ai un bug


Sub test()
Dim numfich As Integer, lig As Long, col As Long, ch As String
numfich = FreeFile
Open "K:\IND\MAWI\Tor3\1test.csv" For Append As #numfich
For lig = 55 To 75
ch = ""
For col = 4 To 9
' fabriquer ta ligne de données
ch = ch & ";" & Cells(lig, col):mad:
Next col
Print #numfich, Mid(ch, 2)
Next lig
Close #numfich
End Sub
 

zebanx

XLDnaute Accro
Bonsoir à tous,

Codes nettement plus basiques que ceux présentés supra.
Néanmoins, il copie bien à la suite les données de recap jour dans un fichier test.csv.

Le chemin est à adapter.
Le fichier de départ (test.csv) converti dans un fichier temporaire se "cale" sur les 5 colonnes transmises dans le fichier de départ. Là aussi, c'est à adapter en fonction du nombre de colonnes total...

Bons essais
zebanx
 

Pièces jointes

  • sav_test.zip
    20.2 KB · Affichages: 24
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 328
Messages
2 087 319
Membres
103 515
dernier inscrit
Cherbil12345