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 :

Fusionner plusieurs feuilles en une seule via une macro VBA avec conservation de la mise en forme [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 8
    Par défaut Fusionner plusieurs feuilles en une seule via une macro VBA avec conservation de la mise en forme
    Bonjour a tous, tout d'abord je tiens à vous remercier pour le travail merveilleux que vous fournissez sur ce forum, je l'utilise depuis très longtemps et j'ai résolu beaucoup de mes problèmes grâce aux solutions que vous proposez donc tout ça pour dire que je suis un grand fan Mais cette fois ci j'ai un petit problème, je suis encore étudiant et étant une véritable bille en VBA je me tourne vers vous pour un problème qui je pense sera d'une trivialité affligeante pour la plupart d'entre vous.

    Je souhaiterai pouvoir copié collé plusieurs feuilles les une à la suite des autres dans une feuille récapitulative appelé "chemin des attentes". Je sais bien il existe beaucoup de sujet sur le forum à ce propos et je les ai consulté mais en vain je n'arrive pas à reproduire les mises en forme et le résultat obtenu est pour le moins pathétique.

    Je m'explique, dans ce fichier Excel on y trouve une feuille appelé "base" (placé en 1ère position) que je ne souhaite pas copié collé dans la fiche récapitulatives puis des feuilles appelées "poste 1", "poste 2" etc. Le principe est que l'utilisateur peut si il le souhaite ajouter autant de "postes" dont il a besoin (enfin avec un maximum de 30 ce qui n'arrive presque jamais) et une fois qu'il a fini de détailler ces "postes" il déplace la feuille "chemin des attentes" (par exemple si il a besoin de deux "postes" on trouverait la feuille "base","poste 1", "poste 2","chemin des attentes","poste 3", "poste 4" etc. (les postes 3, 4 etc ne sont pas utilisés) puis clique sur la macro et celle ci lui ajoute l’entête avec le numéro de devis le nom etc (tiré de la première ligne de "base" et présente dans "poste 1" et "poste 2" via une formule) puis ce qui suit dans la feuille (avec la mise en forme c'est à dire des tableaux avec quelques formules et des lignes avec des fonds coloré ce genre de chose). Elle passe alors à la feuille suivante (sans ajouter l’entête) et lorsque que la macro arrive à la feuille de récapitulation ("chemin des attentes") elle se stoppe.

    En gros j'arrive a peu près à naviguer entre les feuilles mais la mise en forme est immonde et je ne sais pas pour quelle raison je n'arrive à copier que les 5 premières lignes de chaque feuilles dans mon "chemin des attentes". Si quelqu'un aurait une petite idée de la solution du bout de code avec les explications pour que je comprenne et ainsi augmente mes connaissances cela serait très sympa de sa part pour ne pas dire salutaire !

    Merci beaucoup d'avance pour le temps que vous consacrez à tous les noob dans mon genre sur ce forum en espérant avoir une réponse de votre part

  2. #2
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour,
    Fais un test avec ton enregistreur de macro en copiant/collant avec collage special pour garder ton format et regarde le code tu devrais y trouver ton bonheur.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 8
    Par défaut
    D'accord j'essaye ça tout de suite merci !

  4. #4
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    Une fois le code fait avec l'enregistreur de macro je te conseil de revenir avec le code obtenu (cf ma signature pour insérer le code), car celui-ci ne donne pas un code optimisé.
    Si tu as des difficultés avec l'enregistreur de macro, il y a un très bon tuto sur celui-ci dans la faq.
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 8
    Par défaut
    Bon ba je n'y arrive pas... il ne me copie toujours que mes 5 premières lignes alors que j'en ai un peu plus de 100 dans chaque feuilles (cela varie parfois 112 parfois 113...) un peu d'aide ?

    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
        Sub RegroupeFeuilles()
        Dim Lg&, Sh As Worksheet, f As Worksheet
                Set f = Sheets("Chemin des Attentes")
            f.Range("a2:m" & f.[a65000].End(xlUp).Row).ClearContents
     
            For Each Sh In Worksheets
                If Sh.Name <> f.Name And Sh.Name <> "Base" Then
                   Lg = Sh.Range("a" & Rows.Count).End(xlUp).Row
                    Sh.Range("a2:m" & Lg).Copy Destination:= _
                    f.Range("a" & Rows.Count).End(xlUp)(2)
                End If
                If Sh.Name = f.Name Then
                    Exit For
                End If
            Next
        End Sub
    Et le j'ai essayé avec l'enregistreur cela fonctionne mais je ne vois pas comment l'automatiser car comme je l'ai dit juste avant le nombre de lignes varie et le nombre de pages aussi donc comment peut il deviner que la prochaine fois que je lance cette macro il faudra faire une pages de moins ou de plus et même chose pour les lignes. Je suis obligé de faire une petite procédure non ?

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    C'est l'une des raisons, que je t'ai conseillé de poster ton code ok avec l'enregistreur de macro , bien sûr il faut que cela soit accompagné d'une explication claire => tenants / aboutissants ou spécificités
    afin de prendre la bonne direction
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 8
    Par défaut
    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
     
    Sub Fusion()
    '
    ' Fusion Macro
    '
     
    '
        Sheets("Poste 1").Select
        Selection.Copy
        Sheets("Chemin des Attentes").Select
        Range("A1").Select
        ActiveSheet.Paste
        Sheets("Poste 2").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Chemin des Attentes").Select
        ActiveWindow.SmallScroll Down:=90
        Range("A113").Select
        ActiveSheet.Paste
        Sheets("Poste 3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Chemin des Attentes").Select
        ActiveWindow.SmallScroll Down:=111
        Range("A225").Select
        ActiveSheet.Paste
    End Sub
    Donc voila le code de l'enregistreur de macro tout en sachant que le nombre de "poste" peut varier comme je l'explique dans mon premier message ainsi que le nombre de ligne et il faut que lorsque la macro arrive à la feuille "chemin des attentes" celle ci se stoppe cela t'aide un peu à comprendre mon problème ?

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

Discussions similaires

  1. [ksh] Ajouter une ligne via une seule commande PRINT dans plus d'un fichier
    Par Krapouille dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 21/05/2014, 17h09
  2. [XL-2007] rassembler plusieurs feuilles d'un classeur en une seule
    Par klash384 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/11/2009, 11h21
  3. Réponses: 14
    Dernier message: 10/09/2009, 19h08
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 2
    Dernier message: 17/04/2007, 17h14

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