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 :

coller sur la prochaine ligne vide [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Par défaut coller sur la prochaine ligne vide
    Bonjour,

    J'ai créé une macro pour copie une ligne d'une feuille vers une autre feuille. Le problème est que le collage se fait toujours sur la première ligne de la nouvelle feuille. Je souhaiterais que le collage se fasse sur la première ligne vide. Qu'est ce qui cloche sur ma macro?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Sub copie2()
     
    Sheets("feuil1").Select
    Rows("1").Copy
    Sheets("feuil2").Select
    ActiveSheet.Paste
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Ceci devrait convenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("feuil1").Rows(1).Copy Sheets("feuil2").Cells(Rows.Count, 1).End(xlUp)(2)

  3. #3
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    Peux tu expliqué ton code? Je ne le comprend pas.

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Sheets("feuil1").Rows(1).Copy Sheets("feuil2").Cells(Rows.Count, 1).End(xlUp)(2)
    Source de la copie Destination de la copie

    Sheets("feuil1").Rows(1).Copy = copie de la ligne 1 de la feuille 1

    Sheets("feuil2").Cells(Rows.Count, 1).End(xlUp)(2) = vers la ligne sous la dernière ligne utilisée de la colonne A de la feuille 2

    Cells(Rows.Count, 1).End(xlUp) = dernière ligne utilisée de la colonne A

    (2) = décalage de 1 ligne vers le bas, correspond à Offset(1, 0)

  5. #5
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    merci

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Précision complémentaire concernant l'utilisation de End(xlUp) ou End(xlDown).

    Je constate souvent que pour trouver la dernière ligne utilisée d'une colonne, les gens utilisent Range("A1").End(xlDown). Avec cette méthode on est pas certain de trouver la dernière ligne utilisée de la colonne A mais la dernière ligne utilisée de la plage de cellules à partir de A1. C'est à dire que la procédure va parcourir les cellules de haut en bas, au départ de la cellule A1, jusqu'à ce qu'elle va trouver une ligne vide, même si d'autres lignes sont utilisées après cette ligne vide.

    Pour être certain de trouver la dernière ligne utilisée de la colonne A, il vaut donc mieux utiliser Range("A65535").End(xlUp). Dans ce cas la procédure va parcourir les cellules de bas en haut, depuis la dernière ligne de la colonne A jusqu'à la dernière ligne utilisée de cette colonne.

    Vu que depuis la version 2007 le nombre de lignes est passé à plus d'un million, la solution pour rendre compatible cette ligne de code concernant le nombre de ligne est de la laisser elle même compter le nombre de lignes disponibles sur la feuille en utilisant Rows.Count

    Exemple :
    A1 xx
    A2 xx
    A3
    A4 xx
    A5 xx

    Range("A1").End(xlDown) = aboutira à la ligne 2

    Range("A" & Rows.Count).End(xlUp) = aboutira à la ligne 5

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

Discussions similaires

  1. [XL-2007] Relevé dans une colonne la prochaine ligne vide.
    Par toniob44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2012, 18h12
  2. déclarer prochaine ligne vide datagridview
    Par doudou47 dans le forum VB.NET
    Réponses: 3
    Dernier message: 24/03/2012, 23h46
  3. [XL-2003] mettre les données dans la prochaine ligne vide
    Par Fredo10 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/03/2010, 21h17
  4. Ecrire sur la première ligne vide
    Par vanille972 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/08/2007, 09h30

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