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 :

Extraire/Enregistrer Sous Feuilles d'un classeur en CSV [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Par défaut Extraire/Enregistrer Sous Feuilles d'un classeur en CSV
    Bonjour à tous,

    Je viens vers vous car je sens que je suis proche du but mais je rame pour trouver la solution définitive à mon problème.

    Ici je souhaite extraire différentes feuilles d'un classeur excel (de 15 feuilles) et choisir ou les enregistrer en gardant comme base le nom de la feuille puis la date qui aura été préalablement rentrée par l'utilisateur.

    Ici je pense qu'il me manque une étape ou je dois d'abord créer un nouveau classeur et non juste enregistrer mais je n'en suis pas capable...

    Voici mon code :

    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
    Sub Test()
     
        Dim chemin As String
        Dim objShell As Object, objFolder As Object, oFolderItem As Object
        Dim i As Byte
     
        Nom = InputBox("Entrer la date du l'arrêté comptable :")
     
        i = SAS
        Sheets(i).Select
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
        On Error GoTo Gesterr
     
        Set oFolderItem = objFolder.Items.Item
        chemin = oFolderItem.Path
        ActiveWorkbook.SaveAs Filename:=i & Nom & ".csv", FileFormat:=xlCSV
     
    Gesterr::
     
    End Sub
    Voilà, j'espère avoir été clair dans mon explication, merci d'avance pour votre soutien!

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, un exemple à élaguer dont tu pourras t'inspirer
    Fichiers attachés Fichiers attachés

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 115
    Par défaut
    Bonjour

    Il manque la copie de la feuille à enregistrer dans un nouveau classeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("Ma_Feuille").Select
    Sheets("Ma_feuille").Move
    ActiveWorkbook.SaveAs Filename:="Nom_Complet_de_mon_fichier.csv", _
    FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    (Le local, c'est pour avoir les points-virgule et non les virgules en séparateur)

    Sinon il y a aussi Application.FileDialog pour choisir le répertoire
    (Je travaille avec XL2007)
    @+

  4. #4
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Par défaut
    Bonjour,

    Merci cela marche déjà beaucoup mieux, cependant encore un petit point, lorsque j'active la macro l'enregistrement ce fait automatiquement dans le répertoire P:/Mes Documents et je ne comprends pas pourquoi...

    Une idée?

    Voici mon code retravaillé :

    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 Test()
     
        Dim chemin As String
        Dim objShell As Object, objFolder As Object, oFolderItem As Object
     
     
        Nom = InputBox("Entrer la date du mois en cours au format mmyyyy :")
     
     
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
        On Error GoTo Gesterr
     
        Set oFolderItem = objFolder.Items.Item
        chemin = oFolderItem.Path
        Sheets("LOC").Select
        Sheets("LOC").Copy
        ActiveWorkbook.SaveAs Filename:="LOC" & Nom & ".csv",_
        FileFormat:=xlCSV, CreateBackup:=False, Local:=True
        ActiveWorkbook.Close
     
    Gesterr::
     
    End Sub

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,

    tu utilise une variable chemin dans laquelle tu stocke le répertoire de destination ... mais tu oublie ensuite d'utiliser cette variable dans le calcul du nom de fichier (fileName) ...

  6. #6
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Par défaut
    Il faut le faire dans ce genre la ?

    Ca ne marche toujours pas même en faisant intervenir la variable chemin en question..

    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
    25
    Sub Test()
     
        Dim chemin As String
        Dim objShell As Object, objFolder As Object, oFolderItem As Object
     
     
        Nom = InputBox("Entrer la date du mois en cours au format mmyyyy :")
     
     
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
        On Error GoTo Gesterr
     
        Set oFolderItem = objFolder.Items.Item
        chemin = oFolderItem.Path
        Sheets("LOC").Select
        Sheets("LOC").Copy
        ActiveWorkbook.SaveAs Filename:= _
        chemin & "LOC" & Nom & ".csv", _
        FileFormat:=xlCSV, CreateBackup:=False, Local:=True
        ActiveWorkbook.Close
     
    Gesterr::
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer plusieurs feuilles d'un classeur
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2010, 23h12
  2. ajout d'un ouverture de classeur apres un code d'enregistrer-sous ?
    Par lebeniste dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/04/2008, 16h10
  3. Enregistrer une feuille Excel sur un autre classeur
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/01/2008, 16h41
  4. [VBA-E][2k7] Enregistrer une feuille d'un classeur dans un autre document
    Par tazamorte dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/04/2007, 18h15
  5. Enregistrer une seul feuille dans un classeur
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/08/2006, 22h58

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