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 :

Macro fusion 3 feuilles


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
    Formateur en informatique
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Par défaut Macro fusion 3 feuilles
    Bonjour,

    J'ai plusieurs feuilles mensuelles avec une liste, dont une colonne qui contient un nom d'agent.
    J'aimerais avoir toutes les données des feuilles mensuelles dans un recap (Feuille "ANNUEL"), et j'aimerais m'en servir pour créer deux TCD, un par agent, dans deux feuilles différentes.
    J'ai essayé d'utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub recap2()
        Dim sh As Worksheet
        For Each sh In Worksheets
            If sh.Name <> "ANNUEL" And sh.Name <> "NATHALIE" And sh.Name <> "CELINE" Then
                sh.Activate
                sh.Range("A2").End(xlDown).Select.Copy
                Sheets("ANNUEL").Select
                Range("A2").PasteSpecial
            End If
        Next sh
    End Sub
    Mais je n'arrive pas à la faire fonctionner.
    Quelqu'un aurait une solution ?

    Merci de votre aide.
    Julien

  2. #2
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 583
    Par défaut
    Bonjour

    A priori, c'est normal que "ça ne marche pas" car, à chaque fois, le code revient coller dans la feuille ANNUEL dans la cellule A2. Et non pas de plus en plus en dessous.

    Je vous propose, sans avoir essayé, de remplacer la ligne 8 de votre code Range("A2").PasteSpecial par ces deux nouvelles lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LigneAEcrire = Sheets("ANNUEL").Range("A" & Rows.Count).End(xlUp).Row
    Range("A" & LigneAEcrire).PasteSpecial

    En espérant que cela aide.

    Bonne journée

    Pierre Dumas

  3. #3
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Par défaut
    Merci de votre réponse,

    J'ai remplacé les lignes que vous m'avez indiqué, mais j'ai toujours une erreur 424 Objet requis, il semblerait qu'il s'agisse de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh.Range("A2").End(xlDown).Select.Copy
    mais je ne vois pas où est le problème ^^

  4. #4
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 583
    Par défaut
    Rebonjour

    Effectivement, cela n'est pas bon comme instruction.
    Voici votre module entièrement corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub recap2()
        Dim sh As Worksheet
        For Each sh In Worksheets
            If sh.Name <> "ANNUEL" And sh.Name <> "NATHALIE" And sh.Name <> "CELINE" Then
                sh.Activate
                sh.Range("A2", Range("A2").End(xlDown)).Copy
                Sheets("ANNUEL").Select
                LigneAEcrire = Sheets("ANNUEL").Range("A" & Rows.Count).End(xlUp).Row + 1
                Range("A" & LigneAEcrire).PasteSpecial
             End If
        Next sh
    End Sub
    En espérant toujours que cela aide.

    Bonne journée

    Pierre Dumas

  5. #5
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Par défaut
    Merci beaucoup, ça m'aide énormément, mais j'ai encore deux problèmes :
    Nom : Capture.PNG
Affichages : 92
Taille : 50,0 Ko

    Et j'ai essayé de modifier la portée de A2 en A2:Q2 pour ensuite faire le xlDown, mais ça m'affiche également un message d'erreur.

    Voyez-vous une solution ?

  6. #6
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 583
    Par défaut
    Concernant la première erreur, sur quelle ligne cela se déclenche ? C'est à dire, quand vous cliquez sur "Débogage", quelle est la ligne qui se met en jaune ?

    Concernant la deuxième erreur, il ne faut pas modifier A2 par A2:Q2 pour aller en bas. Excel s'en occupera tout seul.
    Dans la ligne de code qui a été donnée, Excel copie toutes les cellules de la A2 et jusqu'à la dernière en bas de la colonne A (à la restriction prés qu'il ne FAUT PAS de cellules vides dans cette colonne).

    Est-ce que vous avez essayer d'exécuter le code donné tel quel pour savoir s'il fonctionne avant de le modifier ?

    Bonne journée

    Pierre Dumas

Discussions similaires

  1. [OpenOffice][Tableur] Soucis :Fusion de feuilles via macros
    Par petoncle dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 04/04/2014, 15h35
  2. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13
  3. macro sur plusieurs feuilles
    Par lolo_bob2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2006, 16h51
  4. [VBA-E] Lier une macro a une feuille excel
    Par Ol.Geez dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/06/2006, 10h53
  5. Réponses: 9
    Dernier message: 30/05/2006, 17h55

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