Suite de code VBA

Bonjour,

J'ai encore pas mal de problèmes avec mon code VBA. Ce topic est une suite au dernier que j'ai fait ici : https://forum.excel-pratique.com/excel/comparatif-de-deux-fichiers-excel-et-verification-d-erreurs-a...

Je veux donc comparer la structure des deux fichiers Excel. Ma macro VBA est dans le fichier tableau-de-saisie, ensuite Accueil => Macros (tout à droite).

J'ai simplifié mon code (il y a plein d'autres fonctions) mais je ne comprends pas pourquoi celle ci ne fonctionne pas. Le but est de chercher les lignes qui sont des dupliqués en se basant sur des valeurs identiques dans les colonnes. Par exemple dans Source Imprimée : les lignes 3, 4 et 5 devraient être signalées comme des doublons dans le fichier texte qui est créé car les colonnes ci-dessous sont identiques.

Case "SOURCE IMPRIMEE"
columnNames = Array("Titre ou [Titre forgé] + sous-titre", "Nom de fichier", "Référence (cote)", "Année d'édition", "Éditeur/Imprimeur")
Call CheckForDuplicates(wsSourceImprimee, columnNames, sortedReport)

J'ai essayé de débugger, le script trouve bien les colonnes au bon endroit, pourriez-vous m'aider s'il vous plaît.

Merci d'avance.

Bonjour Cryo,

Dans la procédure "CheckForDuplicates", remplace :

lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

par

lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row

Cela devrait mieux fonctionner car la1ère colonne est vide, j'ai mis 2 mais il faut choisir une colonne qui est obligatoirement renseignée. Si tu redéfinis tes différents tableaux en tableaux structurés, tu pourrais avoir une approche différente :

  • lastrow = ObjetTS.ListRows.Count
  • l'index d'une colonne = ObjetTS.ListColumns(<TitreDeLaColonne>).Index
  • et plein plein d'autres avantages, je t'invite à appronfondir l'utilisation des TS.

Tu pourrais aussi ajouter 2 colonnes dans les tableaux, l'une concaténant avec un séparateur les différentes valeurs des cellules de comparaison, l'autre comptant le nombre de valeurs identiques =NB.SI($AF:$AF;$AF2) avec une MFC sur les colonnes que tu souhaites pour mettre en évidence les doublons dès la saisie et sans avoir à lancer de macro.

Cdlt,

Cylfo

Bonjour,

Merci de la réponse ! J'avais utilisé cela dans deux fonctions et les deux marchent maintenant :)

J'aimerais savoir s'il était possible d'éditer ou de supprimer mon message initial (apparemment on me dit que ça pose des problèmes que j'ai partagé le fichier Excel, moi j'aurais tout laissé ainsi que ma macro VBA pour que ça puisse aider d'autres gens, tant pis).

Bonne fin de journée.

Bonjour

J'aimerais savoir s'il était possible d'éditer ou de supprimer mon message initial (apparemment on me dit que ça pose des problèmes que j'ai partagé le fichier Excel, moi j'aurais tout laissé ainsi que ma macro VBA pour que ça puisse aider d'autres gens, tant pis).

De quel message initial parlez-vous ?

Merci de préciser votre version excel dans le profil de votre compte. On ne sait pas si vous avez excel 2007, 2010, 2016 ou plus récent ou si vous êtes sur excel MAC 2011, MAC 2016... et "Français" n'aide en rien celui qui vous répond.

Crdlt

Le premier, j'en ai fait trois, j'aurais aimé supprimer les messages mais on m'a fait savoir que ce n'était pas possible. Du coup tant pis.

mlmlmlml.zip c'est le fichier Excel (le fichier des données quand la macro demande), pour le folder des pdfs, vous pouvez mettre n'importe lequel, ça n'a pas d'importance. Tableau de saisie permet d'exécuter la macro directement.

Dernière question sur cette macro vba, le reste marche, j'ai fait fonctionné les dates pour lesquels j'ai demandé de l'aide, finalement j'ai réussi à faire tout seul. J'aimerais savoir pourquoi la macro n'arrive pas à générer le premier rapport d'erreur en texte s'il vous plaît, merci. Et si c'est possible d'avoir une solution.

4mlmlmlmlp.zip (129.40 Ko)
7macro-2-1.zip (20.37 Ko)

Mise à jour : la macro marche bel et bien. J'ai travaillé dans un nouveau fichier mais elle ne marche toujours pas quand j'essaye de mettre le deuxième rapport d'erreur. Si quelqu'un pourrait m'aider s'il vous plaît merci.

4macro.txt (4.58 Ko)

Le premier, j'en ai fait trois, j'aurais aimé supprimer les messages mais on m'a fait savoir que ce n'était pas possible. Du coup tant pis.

Je ne sais pas qui vous a fait savoir cela, donnez moi les liens ce sera plus simple

Rechercher des sujets similaires à "suite code vba"