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 :

Comparaison de plusieurs colonnes entre différentes feuilles et déplacement de certaines lignes [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut Comparaison de plusieurs colonnes entre différentes feuilles et déplacement de certaines lignes
    Bonjour à tous !

    J'ai essayé d'être clair dans le titre mais ce n'est pas simple.
    J'ai un fichier Excel qui contient des extractions depuis la base documentaire de mon entreprise. Il s'agit donc d'une feuille dont la première colonne indique la dénomination du document (chiffres et lettres) et la seconde colonne indique le titre du document (chiffres et lettres).

    Il y a ensuite 3 autres feuilles sur le même fichier, qui représentent chacune un département de l'entreprise, et une 5 ème feuille qui s'appelle "nouveaux documents".

    Le but de la macro que je veux créer est de comparer la colonne A (dénomination du document) de la feuille 1 (extraction depuis la base documentaire) avec les colonnes A des 4 autres feuilles. Si un document existe déjà dans une des feuilles 2 à 5, la macro doit supprimer la ligne entière du document concerné dans la feuille 1 (extraction). Sinon, elle doit déplacer la ligne entière du document concerné de la feuille 1 vers la feuille 5 (nouveaux documents), afin que le nouveau document puisse être traité et mis manuellement dans l'une des trois feuilles qui représentent les documents de chaque département.

    Idéalement, je mettrai un MsgBox à la fin pour dire combien de documents ont été placés dans la catégorie "nouveaux documents".

    Je suis nouveau sur VBA et j'ai regardé des cours en ligne mais je n'ai pas trouvé la réponse à ma question, ni dans les cours, ni dans le forum.

    Merci pour votre aide, j'espère avoir été clair !

    Bonne journée !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur amateur VBA Excel
    Inscrit en
    Janvier 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur amateur VBA Excel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2013
    Messages : 69
    Par défaut
    Bonjour, ta demande concernant ce que tu veux faire est très claire. En revanche sur ce que tu attend de nous c'est plus flou ...
    Tu souhaites qu'on écrive le programme à ta place ?
    Tu veux qu'on t’oriente vers un tuto qui correspond à ton cas ?

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Bonjour,

    Je te conseille l'utilisation des filtres avancés: http://philippetulliez.developpez.co...dvancedfilter/
    Avec un critère calculé bien choisi tu peux vérifié si ton identifiant est déjà présent sur une des autres feuilles et copier ceux qui ne le sont pas.

  4. #4
    Expert éminent
    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
    Par défaut
    Bonjour,

    consulter aussi dans l'aide VBA interne la méthode Range.Find.
    Sans oublier l'Enregistreur de macro pour l'ébauche du code …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    Merci pour vos réponses rapides !

    Effectivement je me suis tellement concentré sur l'explication de la macro que j'ai oublié de dire ce qui me bloque !

    J'aimerais en effet comprendre comment comparer plusieurs colonnes de plusieurs feuilles, et apprendre comment déplacer automatiquement des lignes entières.

    Je vais regarder de ce pas le cours que tu me conseilles, j'espère que ça m'aidera. Merci beaucoup !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    Bonjour !

    Le cours que vous m'avez conseillé est très bien, j'ai appris beaucoup de choses ! Mais je n'arrive pas à bien l'utiliser dans ma situation.
    J'ai simplifié mon problème par une étape intermédiaire. La macro va maintenant chercher la colonne A de chaque feuille (1 à 3) et les met en colonnes A, B et C de la feuille 5.

    Elle va aussi chercher les extractions (colonne A de la feuille 4), et les met en colonne D de la feuille 5. Je travaille donc uniquement sur la feuille 5, qui représente les nouveaux documents. Ce que je cherche à faire maintenant, c'est supprimer tout ce qui est dans la colonne D et qui se trouve déjà dans la colonne A, B ou C. Puis je supprimerai les colonnes A, B et C et il restera la colonne D qui représentera tous les nouveaux documents.

    J'ai beau tourner le filtre avancé dans tous les sens, je n'arrive pas à obtenir quelque chose de satisfaisant, et pourtant je suis certain qui ça peut marcher. Est-ce que vous avez une idée ?

    Merci d'avance et bonne journée !

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Je ne pense pas que déplacer tes colonnes dans une nouvelle feuille simplifie le problème, mais c'est toi qui vois.

    Un exemple tiré d'une autre discussion avec une demande similaire:

    Citation Envoyé par halaster08 Voir le message
    (attention aux $ dans la formule)
    Pièce jointe 230030
    L'idée c'est trouvé le bon critère calculé, MATCH ( EQUIV je crois en français) permet de trouver si une valeur se trouve dans une autre colonne, vu que toi tu as 3 colonnes tu devras faire une formule avec OU(equiv sur ta première colonne, equiv sur la seconde, equiv sur la troisième), mais commence déjà par le faire sur une colonne pour comprendre le principe.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    Je peux mettre les colonnes les unes à la suite des autres pour qu'il n'y en ait qu'une ça ce n'est pas un problème et c'est probablement ce qu'il faut faire.
    Mais dans l'exemple que tu me montres la colonne de résultat représente ce qu'il y a en commun entre les colonnes A et D.
    Ce que je veux, c'est justement ce qu'il y a dans D mais qu'il n'y a pas dans A (si je fusionne les colonnes A, B et C en une seule colonne A).

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Je sais bien ce qu'il y a dans l'exemple, c'est exactement l'inverse de ce que tu demandes.
    Il y a juste une adaptation a faire au niveau du critère calculé, je te laisse y réfléchir un peu, c'est vraiment pas compliqué, si besoin relis bien dans le tuto comment fonctionne le critère calculé.

    Je peux mettre les colonnes les unes à la suite des autres pour qu'il n'y en ait qu'une ça ce n'est pas un problème et c'est probablement ce qu'il faut faire.
    Tu peux le faire, mais tu peux aussi t'en passé avec un critère un peu plus compliqué que celui de l'exemple.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    Je suis désolé je n'y arrive pas. J'ai repris le cours, qui donne des exemples très basiques que j'ai réussi à très bien faire du premier coup quand je l'ai lu la première fois, mais là je ne vois pas.

    J'ai même complètement refait ce que tu m'as mis en photo sur ma feuille Excel, et le résultat n'est même pas identique il ne me trouve rien en commun (après traduction en français et tout).

    Je suis peut-être idiot, mais en tout cas je n'y arrive pas ... Est-ce que tu peux m'aider s'il te plaît ?

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    J'ai repris une nouvelle feuille et j'ai refait l'exemple que tu m'as donné et ça marche, ENFIN !

    Et du coup je pense que j'ai trouvé la solution, il faut simplement enlever le "NON". Je vais voir si ça marche sur ma feuille !

  12. #12
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par Koshea Voir le message
    Et du coup je pense que j'ai trouvé la solution, il faut simplement enlever le "NON". Je vais voir si ça marche sur ma feuille !
    C'est exactement ça.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    Merci mille fois tout fonctionne parfaitement !

    Bonne fin de journée

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

Discussions similaires

  1. [LibreOffice][Tableur] récuperer le contenu d'une cellule après comparaison de deux colonnes dans deux feuilles différentes
    Par JvL007 dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 17/07/2017, 11h08
  2. Réponses: 0
    Dernier message: 27/03/2015, 11h31
  3. [XL-2003] Boucle entre différentes feuilles
    Par vercingetorix76 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/03/2012, 10h39
  4. Comparaison multicritère de données sur différentes feuilles
    Par kromacks03 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/03/2011, 11h48
  5. Naviguer rapidement entre différentes feuilles de clacul
    Par solipas dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/07/2007, 12h15

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