Vba Excel2007 - Exporter feuilles en CSV

Fermé
Palteza Messages postés 79 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 6 septembre 2014 - 22 janv. 2010 à 13:52
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 7 févr. 2010 à 15:48
Bonjour à tous

Je possède un code pour exporter une feuille, et une seule, d'un classeur vers un nouveau fichier csv
Cependant je voudrais pouvoir en exporter plusieurs à la fois sur une seule macro.

Sur le code qui suit, on ne peut pas ajouter basiquement d'autres feuilles (il affiche alors l'erreur "L'indice n'appartient pas à la sélection" sur la ligne de la nouvelle feuille copiée). Il semble ne marcher que pour une seule feuille.

Si quelqu'un à la solution ça serait cool. Merci d'avance



Sub Bouton72_Clic()

Sheets("Données_Statistiques").Visible = True
Sheets("Données_Statistiques").Copy

ActiveWorkbook.SaveAs Filename:= _
"c:\BDD_Enquêtes.csv", FileFormat:=xlCSV _
, CreateBackup:=False

End Sub
A voir également:

3 réponses

Palteza Messages postés 79 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 6 septembre 2014 3
22 janv. 2010 à 18:35
Désolé mais je remonte mon topic
0
Palteza Messages postés 79 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 6 septembre 2014 3
7 févr. 2010 à 13:06
Nouvelle tentative
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
7 févr. 2010 à 15:48
Bonjour,

Comme tu ne précises pas si toutes les feuilles doivent être enregistrées et que de plus le nom de fichier est différent du nom d'onglet je te propose ceci :
-le nom_de_fichier.csv voulu doit se trouver dans une cellule de la feuille (ici A1)
-sélectionner les feuilles concernées avant de lancer la macro (clic su r le 1er onglet, shift+clic sur le dernier, ctrl+clic pour sélectionner/déselectionner les onglets individuellement)

code à mettre dans un module :
Sub copyCSV()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Windows(1).SelectedSheets
        fich = "D:\" & ws.[A1].Value
        ws.SaveAs Filename:=fich, FileFormat:=xlCSV, CreateBackup:=False
    Next ws
End Sub


eric
0