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 :

Feuilles d'1 classeur exportées en plusieurs classeurs [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Feuilles d'1 classeur exportées en plusieurs classeurs
    Bonjour,

    Je suis novice dans le VBA, je compte apprendre car ça m'interesse.
    Cependant aujourd'hui je rencontre une problèmatique pour un fichier Excel d'une connaissance, qui comporte pas moins de 200 feuilles dans le même classeur !
    Bref au final aujourd'hui cette personne a besoin de se retrouver avec autant de classeurs qu'il y a de feuilles.
    J'ai donc pensé a une macro, mais je n'arrive pas à inserer des variables.
    Car le but et que, une fois la macro executer sur le classeur en question, on se retrouve avec "X" classeurs portant le nom des feuilles exportées...
    J'éspère que ma demande est explicite.

    Sinon voici un début de macro, mais qui ne fonctionne que pour une seule feuille, et puis il n'y a pas de variables ( donc pas interessant ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
    '
        Sheets("Ville1").Select
        Sheets("Ville1").Copy
        ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and Settings\Administrateur\Bureau\Patelin_2.xls", FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
    End Sub

    Si je pouvais avoir une soluce , ce serait le pieds !

    @ bientôt

  2. #2
    Membre actif Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Points : 237
    Points
    237
    Par défaut
    Bonsoir le forum,

    essaie avec ce bout de 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
    Sub test()
     
    Dim C
    Dim vFichier
     
    For C = 1 To Worksheets.Count
        vFichier = Sheets(C).Name + ".xls"
        Sheets(C).Select
        Sheets(C).Copy
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\Administrateur\Bureau\" & vFichier, FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    Next
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour à toi marc58 !

    Merci beaucoup d'avoir apporté une solution à mon problème.
    J'ai donc executé la macro que tu ma proposé.
    Cependant il y a une erreur visiblement sur cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vFichier = Sheets(C).Name + ".xls"
    Le debogage m'indique cette partie qui fonctionne partiellement ( j'ai bien une feuille qui est exportée en classeur portant bien le nom de la feuille, mais les autres feuilles ne sont pas générés dû au blocage dans le code.
    Je vais essayé de trouver, mais si tu as une idée ?

    Merci encore pour tes lumières

    cordialement

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour

    une remarque pour marc
    Déclarer ses variables c'est bien leur donner un type c'est mieu
    une autre en VBA la concaténation se fait plutot avec &, le + génère des erreures, du moins j'ai déjà vu quelque souci

    En reprenant le code avec quelques modifs

    préciser a chaque fois si on parle de thisworkbook (qui contient la macro) ou activeworkbook (classeur actif) peut être utile.
    Et bien sûr fermer les classeur

    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
    Sub test()
     
    Dim C As Integer
    Dim vFichier As String
     Dim fin As Integer
     fin = ThisWorkbook.Worksheets.Count
    For C = 1 To fin
        vFichier = ThisWorkbook.Sheets(C).Name & ".xls"
        'Sheets(C).Select
        ThisWorkbook.Sheets(C).Copy
        ActiveWorkbook.SaveAs Filename:= _
        ThisWorkbook.Path & "\" & vFichier, FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
        ActiveWorkbook.Close
    Next C
     
    End Sub

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour Krovax,

    Merci pour ton aide !
    J'ai testé la macro et elle fonctionne avec succès.
    Mon problème est donc résolu.
    Merci beaucoup encore à toi ainsi qu'a marc58, ce forum semble actif et très fréquentés

    Bonne journée

    à bientôt

    Alex

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/02/2015, 16h48
  2. [AC-2010] Importer plusieurs classeurs Excel dans plusieurs tables Acess
    Par jslpfasc2 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/04/2014, 13h34
  3. [XL-2010] regrouper les macro de plusieurs classeurs dans un seul classeur
    Par jinane13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/03/2013, 11h29
  4. [XL-2010] Liaison entre un classeur source et plusieurs classeurs destination
    Par cyberbab dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/02/2012, 12h51
  5. Réponses: 1
    Dernier message: 13/03/2009, 13h08

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