[Macro exportation données Excel
Fermé
Benoit A.
Messages postés
455
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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