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 :

Enregister plusieurs feuilles d'un classeur dans un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut Enregister plusieurs feuilles d'un classeur dans un autre classeur
    Bonjour
    je suis vraiment débutante sur VBA sous Excel

    Je souhaiterais connaître la Macro pour enregistrer seulement les feuilles actifs dans un nouveau classeur puis stocker dans l'endroit ou il veut.
    çàd l'idée comme sur la photo ou mon page d'accueil ci-dessous

    Nom : sommaire.JPG
Affichages : 1577
Taille : 133,3 Ko


    l'idée je clic par exemple sur Isp ma feuille sera ouvert , puis par exemple je clic sur Besoin crue la nouvelle feuille sera actif donc je doit enregistré que ces deux feuilles dans un autre classeur, etc ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Rectangleàcoinsarrondis3_Cliquer()
     
    Sheets("Feuil5").Visible = True
    Sheets("Feuil5").Select
     
    ActiveSheet.Copy
    End Sub
    J'arrive a faire que ce code mais c'est pas tout a fait ce que je veux

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Sans tester, ça devrait ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Feuille as worksheet
    For each feuille in Thisworkbook.Worksheets
       If feuille.visible = true then
          Feuille.copy
          'il reste à déterminer où tu veux la coller...
       end if
    Next
    MPi²

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Merci pour la réponse , reste une question peut etre bete ou je doit mettre le code çàd je créer une bouton ou j'affecte un macro ou comment ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Il y a plusieurs possibilités.
    • Un bouton qui appelle la macro
    • Un raccourci clavier pour la démarrer
    • Par le menu Développeur > macro
    • Un menu contextuel (click droit)



    Ça dépend comment tu vois la chose...
    MPi²

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Oui mais je vois pas clairement car le personne il va choisir par exemple deux formulaire donc il va cliquer sur ISP , Besoin crue et rapport final donc les 3 feuilles seront ouverts mais après je besoin que ce trois seront enregistrer sur un autre classeur donc ou je mets le bout de code

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Tu peux ajouter un bouton dans ta feuille avec les autres.
    Et dans le code de ce bouton, tu mets ceci
    Ça va copier aussi la feuille avec les boutons
    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
        Dim Feuille As Worksheet
        Dim ArrFeuilles    'tableau des feuilles visibles
        Dim Idx As Long
     
        ReDim ArrFeuilles(0)
        For Each Feuille In ThisWorkbook.Worksheets
            If Feuille.Visible = True Then
                ReDim Preserve ArrFeuilles(Idx)
                ArrFeuilles(Idx) = Feuille.Name
                Idx = Idx + 1
            End If
        Next
        Sheets(ArrFeuilles).Copy
        'il reste à déterminer ce que tu veux faire de la copie de feuilles
        'Tu peux enregistrer le nouveau classeur qui contient ces feuilles
        ActiveWorkbook.SaveAs "Chemin et nom du nouveau fichier avec extension"
        ActiveWorkbook.Close False
    Si tu ne veux pas copier la feuille avec les boutons tu dois mettre une condition
    Si la feuille se nomme "Sommaire"
    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
      Dim Feuille As Worksheet
        Dim ArrFeuilles    'tableau des feuilles visibles
        Dim Idx As Long
     
        ReDim ArrFeuilles(0)
        For Each Feuille In ThisWorkbook.Worksheets
            If Feuille.Visible = True and Feuille.Name <> "Sommaire" Then
                ReDim Preserve ArrFeuilles(Idx)
                ArrFeuilles(Idx) = Feuille.Name
                Idx = Idx + 1
            End If
        Next
        Sheets(ArrFeuilles).Copy
        'il reste à déterminer ce que tu veux faire de la copie de feuilles
        'Tu peux enregistrer le nouveau classeur qui contient ces feuilles
        ActiveWorkbook.SaveAs "Chemin et nom du nouveau fichier avec extension"
        ActiveWorkbook.Close False
    MPi²

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    je suis en train de tester ça

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Pour le code ça marche bien , mais maintenant je besoin d'aider sur même classeur. Je dois remplir dans une autre feuille , un tableau d'une façon automatique , l'idée lorsque je click sur ma page de sommaire exemple sur besoin grue , etc .... , un autre tableau sera rempli comme ci-dessous : la 1 ere ligne est par défaut
    Nom : 88.JPG
Affichages : 1236
Taille : 19,7 Ko

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    La feuille dont tu parles pourrait être masquée, j'imagine.
    Nul besoin de l'afficher, mais tu dois la spécifier dans la condition de la précédente question si tu ne veux pas la copier avec les autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim nbLignes as long
     
    with Sheets("Le nom de cette feuille")
       nbLignes = .Cells(.Rows.count, "A").end(xlup).row + 1 'la première ligne vide en colonne A
       .range("A" & nbLignes) = nbLignes - 1  'numéro si l'entête est en ligne 1
       .Range("B" & nbLignes) = "La description que tu veux y mettre"
    End with
    MPi²

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Non il m'avait demandé de mettre une feuille obligatoire , après de choisir les feuilles qui correspond a leurs choix. En gros j'ouvres mon classeurs , donc par défaut j'ai la page sommaire et autre page s'appelle rapport (en titre d'exemple) , puis sur sommaire il choisit les autres pages qui correspond a leurs demandes exemple (besoin Echafaudage , Besoin Grue ,..)
    et donc sur cette page "rapport" je trouve mon tableau que je viens de parler dans l'ancien commentaire

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Donc tu ajoutes ce bout de code lorsque tu appelles une feuille (Échafaudage, Grue,...)
    MPi²

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    J'ai pas compris , car je ne peux pas savoir quelle feuille sera appeler

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Qu'est-ce que tu mets comme code lorsque tu cliques sur le bouton?
    Est-ce que c'est une Shape (contrôle formulaire) ou un contrôle ActiveX?
    MPi²

  14. #14
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Mon code actuellement
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Sub Ouvrir_Cliquer()
    Dim Feuille As Worksheet
        Dim ArrFeuilles    'tableau des feuilles visibles
        Dim Idx As Long
     
        ReDim ArrFeuilles(0)
        For Each Feuille In ThisWorkbook.Worksheets
            If Feuille.Visible = True Then
                ReDim Preserve ArrFeuilles(Idx)
                ArrFeuilles(Idx) = Feuille.Name
                Idx = Idx + 1
            End If
        Next
        Sheets(ArrFeuilles).Copy
        'il reste à déterminer ce que tu veux faire de la copie de feuilles
        'Tu peux enregistrer le nouveau classeur qui contient ces feuilles
        ActiveWorkbook.SaveAs " Chemin et nom du nouveau fichier avec extension"
        ActiveWorkbook.Close False
        'Workbooks("Chemin et nom du nouveau fichier avec extension").Close
        'Sans page sommaire
        ' Dim Feuille As Worksheet
       ' Dim ArrFeuilles    'tableau des feuilles visibles
        'Dim Idx As Long
     
       ' ReDim ArrFeuilles(0)
        'For Each Feuille In ThisWorkbook.Worksheets
          '  If Feuille.Visible = True And Feuille.Name <> "Sommaire" Then
              '  ReDim Preserve ArrFeuilles(Idx)
              '  ArrFeuilles(Idx) = Feuille.Name
               ' Idx = Idx + 1
          '  End If
       ' Next
        'Sheets(ArrFeuilles).Copy
        'il reste à déterminer ce que tu veux faire de la copie de feuilles
        'Tu peux enregistrer le nouveau classeur qui contient ces feuilles
       ' ActiveWorkbook.SaveAs "Chemin et nom du nouveau fichier avec extension"
       ' ActiveWorkbook.Close False
     
     
    End Sub
    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
     
    Sub IST()
    Sheets("IST").Visible = True
    Sheets("IST").Select
    End Sub
    Sub BesoinNacelle_Cliquer()
    Sheets("besoin Nacelle").Visible = True
    Sheets("besoin Nacelle").Select
    End Sub
    Sub besoinEchafaudage_Cliquer()
    Sheets("besoin Echafaudage").Visible = True
    Sheets("besoin Echafaudage").Select
    End Sub
    Sub besoinGrue_Cliquer()
    Sheets("besoin Grue").Visible = True
    Sheets("besoin Grue").Select
    End Sub
     
    Sub bilanSF6Chantier_Cliquer()
    Sheets("bilan SF6 Chantier").Visible = True
    Sheets("bilan SF6 Chantier").Select
    End Sub

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Dans la 2e partie de tes codes, tu affiches les fenêtres.
    Il faudrait donc ajouter ce que je t'ai donné et mettre ça dans chacune de ces Sub en changeant le nom de la fenêtre ou ce que tu veux inscrire dans ta page Rapport selon la fenêtre que tu affiches...
    MPi²

  16. #16
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    À moins que tu ne veuilles inscrire cette liste seulement au moment de la sauvegarde...
    À toi de spécifier.
    MPi²

  17. #17
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    ok je vais le tester et je reviens vers vous

  18. #18
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Il m'affiche mais le problème comment je me positionner sur le bon endroit car j'ai des tableau que peuvent être variable en dessus de mon tableau ou je veux mettre ça.

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Peux-tu être plus claire un peu?
    N'oublie pas que je ne connais pas ton classeur...
    MPi²

  20. #20
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 60
    Points
    60
    Par défaut
    Voila mon classeur avec modification des données mais juste rassemble . Ajout d'un bouton enregistrer
    Mon fichier est .xlsb , j'arrive pas a le téléchargé mais je mets sous format xlsm
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Copier-coller une feuille d'un classeur dans un autre classeur
    Par Babar09 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/05/2017, 14h26
  2. Réponses: 2
    Dernier message: 22/05/2016, 17h41
  3. Réponses: 4
    Dernier message: 17/07/2015, 15h54
  4. Réponses: 10
    Dernier message: 18/02/2015, 16h48
  5. [XL-2007] recopier une cellule d'un classeur dans un autre classeur
    Par VIPNO dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/04/2012, 11h24

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