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 :

Copier Coller lignes dans une autre feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut Copier Coller lignes dans une autre feuille
    Bonjour à tous,

    J'essaye de faire une macro qui, après quelques manipulations que j'ai réussi à implémenter, copierait chaque ligne à partir de la 5ème jusqu'à la fin de la feuille (le nombre de ligne dépend de chaque onglet et est variable), dans ma dernière feuille "Récapitulatif".

    Merci à tous ceux qui m'aideront, cela me sera d'une grande utilité!

    Cordialement,

    Théo

  2. #2
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Février 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Février 2017
    Messages : 82
    Par défaut
    Bonjour,
    essai cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Range("A5:C5").Select 'exemple sur 3 colonnes
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Récapitulatif").Select
    ActiveSheet.Paste 'éventuellement selectionne la cellule pour coller
     
    End Sub

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut
    Bonjour,

    Je te propose d'améliorer le code precedent en n'utilisant PAS Select, Activate, ActiveSheet... qui sont des fonctionnalités qui entraînent souvent des problèmes difficilement gérables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
        Dim derLig As Long
        derLig = Sheets("feuille source").Cells(Rows.Count, 1).End(xlUp).Row
        Sheets("feuille source").Range("A5:C" & derLig).Copy destination:=Sheets("Récapitulatif").Range("A1")
    End Sub
    il faut bien sûr modifier le nom de la feuille source ou ne pas spécifier le nom de la feuille si tu veux tout simplement copier la feuille active.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut
    Bonjour et merci à tous les deux,

    riaolle, j'avais quelque chose de semblable à ton code, sauf que le problème qui m'est apparu est que si je change le code pour qu'il agisse sur tous les onglets, je n'arrive pas à coller les valeurs de chaque onglet après celles de l'onglet précédent : En clair, avec ton code tout sera copié sur A1 et le reste sera écrasé.

    Verrais-tu une solution éventuelle ?

  5. #5
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut
    Citation Envoyé par Theologie Voir le message
    Verrais-tu une solution éventuelle ?
    Oui
    Pour récupérer la première cellule non vide de la colonne A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Récapitulatif").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    Ainsi, le code sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
        Dim derLig As Long
        derLig = Sheets("feuille source").Cells(Rows.Count, 1).End(xlUp).Row
        Sheets("feuille source").Range("A5:C" & derLig).Copy destination:=Sheets("Récapitulatif").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    End Sub

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut
    Merci encore riaolle,

    Mon code adapté à mon classeur donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
        Dim derLig As Long
        Dim Ws As Worksheet
     
     Application.ScreenUpdating = False
     For Each Ws In Worksheets
         Ws.Select
     
        derLig = Ws.Cells(Rows.Count, 1).End(xlUp).Row
        Ws.Range("A5:AN5" & derLig).Copy Destination:=Sheets("Récapitulatif").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
     
    Next Ws
     
    End Sub
    Je pensais que tout marchait bien mais malheureusement je ne comprends pas pourquoi mais le code copie des lignes en plus répétées de certains onglets.

    Aurais-tu une fois de plus une idée d'où le problème pourrait venir ?

    Merci encore toutefois pour ta réponse qui m'a bien fait avancer.

    EDIT : Je me rends compte que c'est ma boucle qui agit sur tous les onglets dont le dernier "Récapitulatif", provocant ces lignes indésirables. Je n'arrive pas à modifier ça, si mon code est :

    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
    Sub test()
        Dim derLig As Long
        Dim Ws As Worksheet
     
     
     Application.ScreenUpdating = False
     
    For i = 1 To Sheets.Count - 1
     
        Ws.Select
     
        derLig = Ws.Cells(Rows.Count, 1).End(xlUp).Row
        Ws.Range("A5:AN5" & derLig).Copy destination:=Sheets("Récapitulatif").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
     
      Next 
     
    End Sub
    Il me sort l'erreur : "Variable objet ou variable de bloc With non définie."

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/05/2014, 09h04
  2. [XL-2007] copier coller valeur dans une autre feuille avec itération de colonne
    Par profnans dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 24/02/2013, 19h21
  3. copier coller couleur dans une autre feuille grâce a un bouton
    Par antoine2933 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2011, 22h52
  4. [XL-2003] Copier des lignes dans une autre feuille à la première ligne vide
    Par PasDan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/09/2010, 13h34
  5. Pour chaque ligne supprimée, copier cette ligne dans une autre feuille
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2008, 03h35

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