[Macro exportation données Excel

Fermé
Bonjour à tous,

Comme je l'explique dans le fichier excel ci-joint, j'aimerais créer une extraction de deux fichiers de deux onglets différents dans mon classeur via un bouton et une macro qui lui serait associé.

Seulement je n'ai aucune idée de comment faire ... Pourriez-vous m'aider ?

Merci beaucoup pour votre aide.

http://www.cjoint.com/data/0AjjCSu98yK.htm

Pour l'instant j'ai quelque chose comme ça mais il me sort un fichier en hiéroglyphe en sortie.

Sub Macro1()
Dim CO As Workbook 'déclare la variable CO (Classeur Origine)
Dim OO As Object 'déclare la variable OO (Onglet Origine)
Dim CH As String 'déclare la variable CH (CHemin d'accès)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Object 'déclare la variable OD (Onglet Destination)

Set CO = ThisWorkbook 'définit le classeur origine CO
Set OO = CO.Sheets("Onglet 1") 'définit l'onglet origine OO
CH = Sheets("procédure").Range("A30")
Workbooks.Add 'ajoute un classeur vierge
ActiveWorkbook.SaveAs (CH & "\" & "mensuel.csv") 'enregistre le classeur sous
Set CD = ActiveWorkbook 'définit le classeur CD
Set OD = CD.Sheets(1) 'définit l'onglet OD
OO.Range("A1").CurrentRegion.Copy 'copy les données de la colonne A de l'onglet OO
OD.Range("A1").PasteSpecial (xlPasteValues) 'les colle dans A1 de l'onglet OD
OO.Range("D1").CurrentRegion.Copy 'copy les données de la colonne D de l'onglet OO
OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) 'les colle dans la première cellule vide de la colonne A de l'onglet OD
CD.Close True 'ferme le classeur en enregistrant les modifications

Set OO = Sheets("Onglet 2") 'redéfinit l'onglet OO
CH = Sheets("procédure").Range("A32")
Workbooks.Add 'ajoute un classeur vierge
ActiveWorkbook.SaveAs (CH & "\" & "mensuel_fc.csv") 'enregistre le classeur sous
Set CD = ActiveWorkbook 'définit le classeur CD
Set OD = CD.Sheets(1) 'définit l'onglet OD
OO.Range("A1").CurrentRegion.Copy 'copy les données de la colonne A de l'onglet OO
OD.Range("A1").PasteSpecial (xlPasteValues) 'les colle dans A1 de l'onglet OD
CD.Close True 'ferme le classeur en enregistrant les modifications

End Sub


PLEASE Help me !!

4 réponses

  1. Modérateur
    Bonjour,

    Cela fait DEUX fois que nous modifions le titre de ta question pour retirer le URGENT....

    La notion d'urgence n'est QUE pour toi ...
    Ici.. les personnes qui répondent sont des bénévoles qui le font sur leur temps libre et répondent donc lorsqu'ils savent et peuvent ....
    Pour nous.. tous les sujets sont traités de la même manière... et il est clair que nous n'allons pas nous "dépêcher" encore plus sur un sujet sous prétexte que tu nous le demande..... bien au contraire ......

    Donc.. pas la peine de remettre encore une fois ton URGENT dans le titre de ta question (ni même dans la description de ton problème..) ... pas besoin non plus de faire des UPs sur ta discussion....
    Elle existe.. on l'a vu... on répondra quand on le pourra/voudra .....

    1. WOW c'est un modérateur du site qui me dis ça !!! Non mais vous vous prenez pour qui au juste ??? Vous croyez que j'ai des leçon à recevoir de vous ???????

      J'ai été longtemps actif sur le site pour aidé des internautes. J'ai menacé quelqu'un si j'avais pas de réponses ?? Non alors arrêté vos blablas. C'est n'importe quoi !!! Vous savez quoi oublié c'est visiblement pas ici que je vais trouver de l'aide, avec une politique aussi détestable !!!
      1. Modérateur
        Oula...
        C'est bien dommage que je n'ai pas rafraichi ma page avant de poster mon précédent message..( la réponse...) .... sinon il est clair que j'aurai tourné les talons !

        Donc reprenons....
        WOW c'est un modérateur du site qui me dis ça !!!

        Ben oui.. et alors ... ça change quoi ???!

        Non mais vous vous prenez pour qui au juste ??

        Ben.. comme tu l'as dis toi même.... un modérateur.....

        Vous croyez que j'ai des leçon à recevoir de vous ???????

        Sûrement puisqu'il a fallu que j'intervienne ....

        J'ai été longtemps actif sur le site pour aidé des internautes

        C'est bien.. je suis fier de toi... \o/

        J'ai menacé quelqu'un si j'avais pas de réponses ??

        Aucunement.. et je n'ai jamais dis ça ... Je t'ai uniquement fait remarqué ton utilisation de URGENT dans le titre de ta question...... mais peut être ai-je mal rédigé mon message ou que vous ne savez pas lire....


        Et c'est vrai que les sujets sont traités de la même manière bravo vous n'avez que 2 050 000 sujets en attente !!!

        Comme je l'ai marqué ... les personnes (modérateurs y compris) qui interviennent ici ne sont que des bénévoles... qui le font sur leur temps libre et selon leurs connaissances....
        (voir mon point précédent concernant votre capacité à lire...)


        C'est n'importe quoi !!! Vous savez quoi oublié c'est visiblement pas ici que je vais trouver de l'aide

        Ah .. ben Zut alors....
        je reviens.. je vais pleuré un coup.... ... ..... ou pas...!

        Enfin bon.. vu que vous partez... je ferme le sujet.

        Bonne journée.
        Cordialement ( ou pas d'ailleurs...)
        Jordane.
    2. Et c'est vrai que les sujets sont traités de la même manière bravo vous n'avez que 2 050 000 sujets en attente !!!
      1. Modérateur
        Pour répondre à ta question...
        Je pense que le souci se trouve au niveau des SAVEAS. ( le reste du code me semblant correct...)

        Déjà.. place le SAVE AS ... après avoir remplis ton fichier.
        Ensuite.. pour exporter en format CSV .. il existe une syntaxe à respecter....

         ActiveWorkbook.SaveAs Filename:=CH & "\" & "mensuel.csv", _
                                   FileFormat:=xlCSV , _
                                   CreateBackup:=False  , _
                                   Local:=True 
            ActiveWorkbook.Close savechanges:=False
        


        ce qui donnerait pour ta macro quelque chose du genre :
        Sub Macro1()
        
        Dim CH As String 'déclare la variable CH (CHemin d'accès)
        Dim ceClasseur As Workbook
        Dim Sh1 As Worksheet
        Dim Sh2 As Worksheet
        Dim OD As Worksheet
        'Definition des variables
        Set ceClasseur = ThisWorkbook
        Set Sh1 = ceClasseur.Sheets("Onglet 1")
        Set Sh2 = ceClasseur.Sheets("Onglet 2")
        
        '-----------------------------------------
        'Traitement onglet 1
        '-----------------------------------------
          CH = Sheets("procédure").Range("A30")
        'ajoute un classeur vierge
          Workbooks.Add
        'définit le classeur CD
          Set CD = ActiveWorkbook
        'définit l'onglet OD
          Set OD = CD.Sheets(1)
        'copy les données de la colonne A de l'onglet OO
          Sh1.Range("A1").CurrentRegion.Copy
        'les colle dans A1 de l'onglet OD
          OD.Range("A1").PasteSpecial (xlPasteValues)
        'copy les données de la colonne D de l'onglet OO
          Sh1.Range("D1").CurrentRegion.Copy
        'les colle dans la première cellule vide de la colonne A de l'onglet OD
          OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
        
        'Sauvegarde du fichier CSV
         CD.SaveAs Filename:=CH & "\" & "mensuel.csv", _
                   FileFormat:=xlCSV, _
                   CreateBackup:=False, _
                   Local:=True
        'Fermeture du classeur
         CD.Close savechanges:=False
        
        '-----------------------------------------
        'Traitement onglet 2
        '-----------------------------------------
         CH = Sheets("procédure").Range("A32")
        'ajoute un classeur vierge
          Workbooks.Add
        'définit le classeur CD
          Set CD = ActiveWorkbook
        'définit l'onglet OD
          Set OD = CD.Sheets(1)
        'copy les données de la colonne A de l'onglet OO
          Sh2.Range("A1").CurrentRegion.Copy
        'les colle dans A1 de l'onglet OD
          OD.Range("A1").PasteSpecial (xlPasteValues)
        
        'Sauvegarde du fichier CSV
         CD.SaveAs Filename:=CH & "\" & "mensuel_fc.csv", _
                   FileFormat:=xlCSV, _
                   CreateBackup:=False, _
                   Local:=True
        'Fermeture du classeur
         CD.Close savechanges:=False
        
        End Sub