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 :

Boucle + Copie d'onglets sur Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Boucle + Copie d'onglets sur Excel
    Bonjour tout le monde,

    Je suis tout nouveau sur ce site et je débute également en VBA. Je vous expose donc mon problème:

    J'ai un classeur excel avec en tout 34 onglets. Pour faire simple, j'aimerai consolider plusieurs onglets en 1 seul déjà existant en créant un macro qui copie une plage de cellule définie dans chaque onglet pour la copier dans l'onglet consolidé, puis boucler ainsi de suite sur l'onglet suivant en copiant à la suite sur l'onglet consolidé. Voici la macro que j'ai débuté:

    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
    Sub MaJ_consolidé()
     
    Dim Source As Worksheet
     
    For Each Source In ThisWorkbook.Worksheets
        If Range("A2") = "Direct" Then
     
           Range("A9:BY9").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy
            Worksheets(3).Activate
            Cells(16384, 1).End(xlUp).Select
            ActiveCell.Offset(1, 0).Activate
     
            ???????
     
     
        End If
    Next Source
     
    End Sub
    Je précise que pour faire reconnaître les feuilles par la macro, le critère DIRECT est toujours placé en A2 sur les onglets que je souhaite consolider. La structure des feuilles est toujours la même afin de faciliter ce genre de tâche. Mon problème avec la macro ci dessus c'est que je n'arrive pas à mettre la bonne instruction pour coller le contenu du clipboard dans ActiveCell, puis faire une boucle pour mettre à la suite les autres onglets (j'espère que je m'exprime de façon compréhensible, désolé dans le cas contraire !)

    Merci d'avance de votre aide !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 93
    Points : 73
    Points
    73
    Par défaut
    Bonjour, pour resumer et voir si j'ai bien compris, tu veux copier les cellules de A9 a BY## (## etant la derniere ligne ou il y a de l'information dans la colonne BY) de chaque onglet dans la feuille 3 , les un a la suite des autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub copier()
     
    For i = 1 To Sheets.Count
     
        If (Sheets(i).Range("A2").Value Like ("direct")) Then
     
            Sheets(i).Range("A9:" & Range("BY65536").End(xlUp).Address(False, False)).Copy Destination:=ThisWorkbook.Sheets(3).Range("A65536").End(xlUp).Offset(1, 0)
     
        End If
    Next i
    End Sub
    Par contre dans cet exemple tu va aussi verifier ta feuille 3 qui sert a ta consolidation. Mais si tu ne met pas "direct" dans "A2" tu sera correct.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut

    Merci beaucoup pour ta réponse rapide !
    Ton code marche parfaitement, il est surtout beaucoup plus simple que l'usine à gaz que j'atais en train de monter (....newbie inside)
    Par contre, au lieu de me copier toutes les lignes de A9 à BXXX, il me copie les lignes A1 à A9 à la suite dans l onglet destination...je comprends pas pourquoi car le code semble impec......

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 93
    Points : 73
    Points
    73
    Par défaut
    bonjour si j'ai bien compris ton nouveau probleme, c'est normal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets(i).Range("A9:" & Range("BY65536").End(xlUp)
    Si tu n'as aucune valeur dans la colonne "BY", dans ces cas la, la formule va copier la plage allant de A9:BY1 car End(xlUp) remonte la colonne "BY".

    Si jamais tu n'es pas sur que la colonne "BY" soit remplie mais que la colonne A l'est,remplace le code dans la formule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets(i).Range(Range("A65536").End(xlUp) & ":BY9")
    Tu peux verifier ce qui est copier en remplacant la fonction copy par select. Comme ca tu visualiseras mieux ce qui est selectionne. Puis apres tu remets copy.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Effectivement, ma colonne BY est vide c'est juste que j'avais étendu le Range pour avoir de la marge dans le fichier ! tout fonctionne parfaitement maintenant merci da991319 !

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

Discussions similaires

  1. [XL-2010] Bloquer les onglets sur excel en vba
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 29/06/2015, 20h25
  2. [VS 2008][Excel] HRESULT: 0x800A03EC sur copie d'onglet
    Par weejungle dans le forum ASP.NET
    Réponses: 0
    Dernier message: 30/01/2009, 09h35
  3. [Excel] Supprimer des leins lors de copies d'onglet
    Par marsupilami34 dans le forum Excel
    Réponses: 9
    Dernier message: 26/07/2007, 10h36
  4. Export requete sur excel sur plusieur onglets
    Par Renardo dans le forum Access
    Réponses: 10
    Dernier message: 26/01/2007, 17h13
  5. Macro sur Excel/Boucle sur les lettres
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/11/2005, 11h56

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