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 ligne et coller dernière ligne non vide [XL-2007]


Sujet :

Macros et VBA Excel

  1. #21
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Dans la feuille, la dernière colonne saisie est bien la 11 ème ?

    Dans ce cas, encore une fois, c'est plus rapide via .CurrentRegion ! Voir aussi .UsedRange

    Maintenant pour copier les lignes d'une feuille si la donnée dans la première colonne n'existe pas
    dans la feuille de destination, il faut tester ligne par ligne via une boucle …


  2. #22
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Oui je te confirmer que la dernière colonne est la 11ème à savoir la K.
    En fait il n'y a pas énormément de lignes dans la feuille "ImportClient" étant donné qu'elle conserve uniquement les derniers clients pas encore importés (copiés). Cependant la feuille "FichierClient" à plus de 18 000 lignes.
    Du coup, si j'ai bien compris, il faut faire une boucle FOR afin de tester chaque valeur de la colonne A de "ImportClient" et de la comparer aux valeurs de la colonne A de la feuille "FichierClient"

  3. #23
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Oui c'est cela …

    Y-a-t-il une ligne de titre ou pas ? Les données commencent en quelle n° de ligne ?


    Sinon je viens de percuter - avant d'aller vers l'usine à gaz - qu'à partir de la version 2007
    il y a la méthode Range.RemoveDuplicates existant aussi à partir du menu d'Excel.

    Donc même pas besoin de VBA : un copier/coller puis suppression des doublons à partir du menu …

  4. #24
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Oui il y a une ligne de titre dans la feuille principale "FichierClient". En fait j'aimerai vraiment passer par macro afin que mon utilisateur n'ai qu'a faire un clique qui lance une macro appelant plusieurs procédures mais je t'avoue que je galère...

    J'ai peut-être trouvé quelque chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub SupprimeDoublons()
     
    Worksheets("FichierClient").Range("A:K").RemoveDuplicates Columns:=1, Header:=xlYes
     
     
    End Sub
    Ca à l'air de me donner ce que je veux.
    Est il possible de choisir quel sera la ligne doublon supprimée? Je m'explique, imaginons que la dernière ligne importée comporte plus d'information que la précédente (un numéro de téléphone en plus par exemple). Est-il possible de conserver celle la?

  5. #25
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Il faudrait alors tenter un tri auparavant …

  6. #26
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Comment ça?

  7. #27
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Les données vides d'une plage triée apparaissent après les non vides …

  8. #28
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Le problème est que je veux garder l'ordre du plus anciens client au plus récent

  9. #29
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Direction l'usine à gaz …

    Sauf s'il y a une date d'entrée dans les données …


    Sinon boucle sur les lignes de l'import,
    comparaison une à une avec l'autre feuille via la méthode Range.Find,
    si le client existe, ne copier que les colonnes non vides …

  10. #30
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Oula, je ne sais même pas par ou commencer, j'ai vraiment beaucoup de mal en programmation

    En fait c'est bon ne t'embête pas je vais rester avec le RemoveDuplicates.

    En tout cas merci d'avoir pris le temps de m'aider!

  11. #31
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Citation Envoyé par John Parker Voir le message
    En fait il n'y a pas énormément de lignes dans la feuille "ImportClient" étant donné qu'elle conserve uniquement les derniers clients pas encore importés (copiés). Cependant la feuille "FichierClient" à plus de 18 000 lignes.
    Comme il n'y a pas beaucoup de lignes à importer,
    la méthode Find étant assez véloce même sur des milliers de lignes,
    si l'ordre des colonnes est le même et si l'ordinateur ne rame pas trop, ce serait acceptable …

    Le code ne devrait pas être une usine, c'est plutôt la manière comparée à d'autres
    mais dans ce cas je ne vois pas d'autre possibilité …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé


    __________________________________________________________________________________________
    Dieu créa le monde … Le reste c'est Made in China !


+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Dernière cellule non vide et ligne correspondante
    Par Phixidor dans le forum Excel
    Réponses: 3
    Dernier message: 29/03/2013, 12h53
  2. [XL-2010] Dernière cellule non vide d'une ligne et simplification code
    Par Ditch3122 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/07/2012, 21h48
  3. Dernière cellule non vide d'une ligne
    Par rapheb dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/11/2011, 07h45
  4. [XL-2003] code copier formule jusqu'à la dernière ligne
    Par ridokou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2011, 15h56
  5. compter sur une ligne à partir de derniere cellule non vide
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 19h23

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