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 :

VBA copier ligne d'une feuille à l'autre si non exixtante


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut VBA copier ligne d'une feuille à l'autre si non exixtante
    Bonjour,

    je débute sur ce forum,

    J'ai un classeur excel avec une feuille ayant pour source une requète ODBC, ce qui fait qu'à chaque fois que je l'actualise, les données sont susceptibles de changer.
    J'ai une autre feuille dans laquelle je stocke donc ces données pour garder un historique.
    J'aimerai automatiser ceci avec une macro qui copierai chaque nouvelle ligne d'une feuille à l'autre si celle ci n'est pas déjà présente.
    Je connais un peu Vba mais c'est au dessus de mes compétences.

    Par avance, merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 383
    Points : 659
    Points
    659
    Par défaut
    Bonjour,

    Le forum n'a pas pour vocation a donner des solutions clé en main.

    Tu devrais essayer de lire des tutos sur les bases du VBA. Cela te premettra d'une part de progresser, et d'arriver à faire ce que tu souhaites car il ne faut pas beaucoup plus que les bases pour y arriver.

    Si malgré les bases tu es toujours bloqué, à ce moment là on pourra t'aiguiller sur les partie où tu bloques.


    Comme dit le proverbe, si on veut du poisson, il vaut mieux apprendre à en pêcher plutôt que de demander sans cesse du poisson aux autres pêcheurs.
    Demain, je vais commencer par m'acheter des lunettes. Et après, je verrai bien.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci d'avoir répondu, je suis tout à fait d'accord avec la réponse, je suis nouveau sur le forum mais cela fait un bout de temps ( en années) que je me "dépatouille" comme je peux avec vba en cherchant les solutions... j'ai trouvé des choses sur le forum et sur d'autres sites mais n'ai pas la bonne solution...Je voulais gagner du temps.

    Je vais donc persévérer à chercher.

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par VCHGOE Voir le message
    J'aimerai automatiser ceci avec une macro qui copierai chaque nouvelle ligne d'une feuille à l'autre si celle ci n'est pas déjà présente.
    Il faut faire une boucle For To ou For Each sur la liste source (le résultat de la requête) et pour chaque ligne, faire un Find (ou utiliser une fonction Excel comme NB.SI) sur la liste destination pour savoir si cette référence existe déjà.
    Si ce n'est pas le cas, tu peux faire la copie, par exemple avec un EntireRow.Copy sur la cellule source vers la première ligne vide de la liste cible.

    Lire ça (entre autre) :
    https://docs.microsoft.com/fr-fr/off...next-statement
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)
    https://msdn.microsoft.com/fr-fr/lib...0(v=office.15)
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Vacances achevées,

    J'avance dans le projet, à tatillons, je commence à avoir un bon résultat par contre, j'extraie soit dans une autre feuille, soit une seule ligne à la fin de mon tableau à mettre à jour.

    Dans le fichier joint crée pour mes essais, je veux mettre à jour le fichier report à partir du fichier base.

    La macro Analyse 3 copie une seule ligne à la fin de mon tableau REPORT
    La macro Analyse 5 copie toutes les lignes dans une autre feuille (feuille ANA)

    Voilà, si quelqu'un a un élément de réponse pour moi...
    Fichiers attachés Fichiers attachés

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Pour compléter...

    Je pourrais éventuellement copier les lignes de la feuille supplémentaire et les coller à la fin du tableau Report mais je trouve que c'est du bricolage...

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par VCHGOE Voir le message
    Voilà, si quelqu'un a un élément de réponse pour moi...
    Pour avoir un élément de réponse, il faudrait qu'il y ait une question.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour Menhir,

    La question que je me pose est comment je fais pour copier toutes les lignes différentes à la suite du tableau dans la feuille "REPORT"?


    breiz atao

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ouvre jamais les fichiers joints donc c'est difficile de répondre sans avoir plus d'explications.
    Toutefois si la recherche d'une ligne peut s'effectuer grâce à une clé primaire (unique), une solution est l'utilisation de la méthode AdvancedFilter (filtre avancé d'excel) avec comme critère calculé une formule utilisant la fonction EQUIV
    Le code VBA peut se résumer ) à moins de cinq lignes de code.

    A lire et consulter éventuellement
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2010] Transfert de lignes d'une feuille à l'autre - VBA
    Par Paul_DRU dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/04/2017, 08h08
  2. Copier ligne d'une feuille à une autre
    Par hollye dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2016, 13h05
  3. Copier Coller d'une feuille à l'autre avec VBA
    Par julie.t dans le forum Excel
    Réponses: 4
    Dernier message: 06/10/2015, 15h07
  4. [XL-2007] Copier dernière ligne d'une feuille vers autre classeur fermer
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/04/2012, 11h13
  5. Macro automatique pour passer une ligne d''une feuille à l'autre
    Par ElPibeOro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/04/2012, 11h58

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