[Macro exportation données Excel
Fermé
Benoit A.
Messages postés
455
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
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.
PLEASE Help me !!
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 !!
A voir également:
- [Macro exportation données Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
4 réponses
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 .....
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 .....
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 !!!
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 !!!
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....
Ben oui.. et alors ... ça change quoi ???!
Ben.. comme tu l'as dis toi même.... un modérateur.....
Sûrement puisqu'il a fallu que j'intervienne ....
C'est bien.. je suis fier de toi... \o/
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....
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...)
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.
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.
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 !!!
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....
ce qui donnerait pour ta macro quelque chose du genre :
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