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 :

Fusion de feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut Fusion de feuilles
    Bonjour,

    J'ai un classeur avec deux feuilles de même structure.
    J'ai besoin de les fusionner dans une troisième feuille.

    J'ai essayé avec une requête union sans succès.
    J'ai essayé d'enregistrer une macro en faisant des copier / coller, mais je ne connais pas à l'avance le nombre de lignes de mes deux premières feuilles.

    Bref, je ne m'en sort pas.

    Si quelqu'un avait une idée ou une piste ?

    Merci.

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    J'ai une méthode un peu bourrine, mais qui marche

    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
     
    Feuil1.Select
    Range("A2:G" & range("A50000").end(xlup).Row).Copy
    Feuil3.select
    For c = 2 To Rows.Count
    If Cells(c, 1).Value = "" Then
          Cells(c, 1).Select
          ActiveSheet.Paste
          Exit For
    End If
    Next c
    Feuil2.Select
    Range("A2:G" & range("A50000").end(xlup).Row).Copy
    Feuil3.select
    For c = 2 To Rows.Count
    If Cells(c, 1).Value = "" Then
          Cells(c, 1).Select
          ActiveSheet.Paste
          Exit For
    End If
    J'ai pas testé, mais après c'est à toi de la mettre en forme pour ce que tu veux faire.

    J'ai mis jusqu'a la colonne G, mais il faut que tu mette la lettre de ta dernière colonne, évidemment
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    j'ai fait un test avec la fonction DAO
    (http://www.developpez.net/forums/sho...15&postcount=1)

    et ça marche avec un SQL UNION

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmdRunSQL "SELECT * FROM [feuil1$A:D] UNION SELECT * FROM [feuil2$A:D]", _
            sheets("Resultat").range("A2")

  4. #4
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Merci, je teste dès demain et je vous dis.

  5. #5
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Je tente la solution de Cafeine.

    Voila mon code (à partir d'une appli VB6) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Dim db As DAO.Database
        Dim rs0 As DAO.Recordset
        Sql = "SELECT * FROM [feuil3$A:D] UNION SELECT * FROM [feuil2$A:D]"
        Set db = DAO.OpenDatabase(ActiveWorkbook.FullName, False, False, "Excel 8.0;HDR=YES;")
        Set rs0 = db.OpenRecordset(Sql, DAO.dbOpenSnapshot)
        Sheets("feuil1$").Range("A2").CopyFromRecordset rs0
        Set rs0 = Nothing
        Set db = Nothing
    Et sur la ligne Set db = DAO.............

    J'obtiens ce message :
    Variable objet ou variable bloc With non définie
    J'ai raté quelquechose ?

  6. #6
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Attention ce code nécessite le référencement de DAO 3.x et d'utiliser VBA Excel ...

  7. #7
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    C'est OK, je me suis inspiré de la méthode proposée par illight et ça a l'air de coller.

    Merci à tous.

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

Discussions similaires

  1. [OpenOffice][Tableur] Fusion de feuilles
    Par tapmen5 dans le forum OpenOffice & LibreOffice
    Réponses: 12
    Dernier message: 11/05/2015, 14h35
  2. [XL-2007] Fusion plusieurs feuilles excel dans un seul fichier
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/06/2013, 09h13
  3. [XL-2007] fusion deux feuille ont un champ identique
    Par abdelaaziz dans le forum Excel
    Réponses: 1
    Dernier message: 10/12/2012, 11h30
  4. [OpenOffice][Tableur] Fusion de feuilles
    Par Carlito08 dans le forum OpenOffice & LibreOffice
    Réponses: 14
    Dernier message: 23/11/2012, 08h14
  5. fusion des feuilles d'un classeur
    Par Milton_kinende dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/11/2008, 09h55

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