IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Export d'un classeur Excel selon un format CSV


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Export d'un classeur Excel selon un format CSV
    Bonjour à tous,

    Je voudrais faire appel à vos connaissances car je suis confronté à un cas qui dépasse LARGEMENT mes "competences" excel.

    J'espere qu'une bonne âme charitable pourra resoudre mon souci que voila :

    Je souhaite à partir d'un tableau excel faire un export en csv selon un certain format.

    Je pense qu'une macro peut en venir à bout mais je ne sais pas comment la faire (De plus je ne souhaite pas passer par une deuxieme feuille pour le traitement mais directement par une macro qui me l'enregistrerai en csv)

    Voici le resultat que je souhaiterai obtenir :




    Sachant qu'il peu y avoir x niveau de dossier, comment ne pas egalement se limiter à une plage de données prédefini ? (je pense a un truc du style "pour chaque cellule qui a du texte en la blaise Dossier et la balise Utilisateur alors traitement specifique 1 et pour ce qu'il y a entre la balise Utilisateur et Fin traitement specifique 2)



    Un ENORME merci de l'aide que vous pourrez m'apporter en tout cas
    Fichiers attachés Fichiers attachés

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut -={-_-}=-
    Salut,

    1/ Pour ecrire dans un texte il suffit d'utiliser une fonction du genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub AjoutDonnee(strContent As String, strChemFich As String)
         Dim F As Integer
     
         F = FreeFile '1er numéro libre
         Open strChemFich For Append As #F 'ouvert en ajout
         Print #F, strContent ' écrit dans le fichier dont le numéro est F
         Close #F
    End Sub
    2/Ensuite je te conseille de nommer tes cellules

    http://www.contextures.com/xlVideos02.html#NamedRange

    Cela te permettra de faire dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim rCellule As Range
    For each rCellule in Range("quantity") 'c'est l'exemple de la video
         'ton code
    Next rCellule
    L'avantage de nommer des plages de données est que tu peux les étendre MAIS ATTENTION UNIQUEMENT par insertion de cellule ou de lignes à l'intérieur de la plage.

    Bon courage

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Super !

    Grace à ta methode j'ai reussi à mettre ua point cette macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Sub Export_Structure_Dossier_OK()
     
    Dim rCellule As Range
     
        Dim txt As String
        Dim fic As Integer
        fic = FreeFile()
        Open ThisWorkbook.Path & "\export_test.csv" For Output As #fic
     
    For Each rCellule In Range("Dossier_Niveau_1").MergeArea.Cells
     
    txt = ""
            Do While Not IsEmpty(rCellule.MergeArea(1))
                txt = txt & rCellule.MergeArea(1) & ";"
                Set rCellule = rCellule.Offset(1)
     
            Loop
    Print #fic, txt
    Next rCellule
     
        Close #fic
     
    End Sub


    Ca marche super pour mes dossier et me retourne un csv du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Donnees 1;Sous Donnees 2;Sous Sous Donnees 5;
    Donnees 1;Sous Donnees 2;Sous Sous Donnees 6;
    Donnees 1;Sous Donnees 2;Sous Sous Donnees 7;
    Donnees 1;Sous Donnees 3;Sous Sous Donnees 8;
    Donnees 1;Sous Donnees 3;Sous Sous Donnees 9;
    Donnees 1;Sous Donnees 3;Sous Sous Donnees 10;
    Donnees 1;Sous Donnees 4;Sous Sous Donnees 11;
    Donnees 1;Sous Donnees 4;Sous Sous Donnees 12;
    Donnees 1;Sous Donnees 4;Sous Sous Donnees 13;

    Par contre je vois pas du tout comment faire pour qu'une autre mcro me retourne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    TOTO;E;Donnees 1;Sous Donnees 2;Sous Sous Donnees 5;
    TOTO;E;Donnees 1;Sous Donnees 2;Sous Sous Donnees 6;
    TOTO;L;Donnees 1;Sous Donnees 2;Sous Sous Donnees 7;
    TOTO;E;Donnees 1;Sous Donnees 3;Sous Sous Donnees 8;
    TOTO;E;Donnees 1;Sous Donnees 3;Sous Sous Donnees 9;
    TOTO;L;Donnees 1;Sous Donnees 3;Sous Sous Donnees 10;
    TUTU;L;Donnees 1;Sous Donnees 3;Sous Sous Donnees 5;
    TUTU;L;Donnees 1;Sous Donnees 4;Sous Sous Donnees 6;
    TUTU;E;Donnees 1;Sous Donnees 4;Sous Sous Donnees 11;
    TUTU;E;Donnees 1;Sous Donnees 4;Sous Sous Donnees 13;

    Une idée ?

    Merci beaucoup en tout cas

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Un ptit up svp j'ai encore et tj ce fichu probleme alors qqn voulais bien m'aider

Discussions similaires

  1. [AC-2003] Probléme export table vers classeur excel
    Par demichoux dans le forum Access
    Réponses: 1
    Dernier message: 06/04/2011, 23h09
  2. export requete sous classeur excel existant
    Par STANDBOY dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/03/2011, 05h55
  3. Export vers un classeur Excel avec des jolis onglets ?
    Par npopravka dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/05/2010, 11h50
  4. [AC-2003] Export dans un classeur excel se créant lors de l'export
    Par clemini dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/08/2009, 14h42
  5. Exportation vers nouveau classeur excel
    Par Bragon12 dans le forum IHM
    Réponses: 3
    Dernier message: 13/08/2008, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo