Macro - Comparaison / Différences entre 2 fichiers

Bonjour,

Je souhaiterais créer une macro afin de pouvoir comparer les différences entre 2 feuilles Excel.

J'aimerais faire apparaitre ces différences dans une 3ème feuille.

Vous trouverez ci-dessous un fichier Excel en guise d'exemple regroupant :

  • Feuil1 : regroupent les données du mois de Septembre
  • Feuil2 : regroupent les données du mois de Novembre (les modifications effectuées apparaissent en jaune)
  • Feuil3 : emplacement dans lequel j'aimerais faire figurer les différences tout en pouvant voir dans quelle colonne celles-ci sont localisées
Mon but final serait de faire également apparaitre :
  • l'évolution des données chiffrées ou pourcentage (par exemple : si on est passé de 20% en Septembre à 50% en Novembre, je souhaiterais afficher dans Feuil3 quelque chose du style : "évolution = 30%"
  • une colonne supplémentaire avec la somme de différences par lignes
  • etc..

J'espère avoir été clair, merci d'avance à ceux qui se pencheraient sur la question !

6classeur1.xlsx (11.33 Ko)

Bonjour Tdodoret

Voici une solution sans visual basic

Mettre le nom de la feuille 1 (Origine) et de la feuille 2 à lui comparer

Attention, un pourcentage qui passe de 20% à 50% donne une progression de 1.5/1.2-1 soit 25%

Les formules peuvent être tirées vers le bas pour couvrir le nombre de lignes que vous voulez

Cdt Toukoul

Bonjour

Une autre solution sans VBA, en utilisant PowerQuery intégré à Excel

La restitution pourrait être différente mais sans plus d'infos...

5comparer3-pq.xlsx (24.97 Ko)

Un énorme merci à vous deux ! (je m'arrachais les cheveux avec VBA...)

Les deux options marchent à merveille et sont des alternatives complémentaires.

Si d'autres idées vous viennent je suis toujours preneur !

Bonjour

Pas de MP non sollicité, merci

Les 2 plages ont été mises sous forme de tableaux structurés auxquels j'ai laissé exceptionnellement le nom automatique de type Tableau1

  1. Depuis une cellule de Tableau2, Données à partir d'un tableau : ce qui ouvre PowerQuery
  2. Ajouter une colonne, Colonne d'index, Personnalisé : à partir de 2, incrément 1
  3. sélectionner la colonne Index, clic droit : Dépivoter les autres colonnes
    dans la barre de formule remplacer Attribut par Colonne
  4. Ajouter une colonne, Colonne d'index
  5. Sortir par Fermer et Charger dans, Connexion uniquement
  6. Refaire les étapes 1 à 4 à partir de Tableau1 puis
  7. Accueil, Fusionner les requêtes, prendre Tableau2 en seconde requête, sélectionner Index.1 dans chaque requête, jointure interne
  8. cliquer sur la double flèche près du titre Tableau2, décocher tout sauf Valeur
  9. Ajouter une colonne, Colonne personnalisée : nom Filtre, formule :
    =if [Valeur] <> [Valeur.1] then [Colonne] else null
  10. filtrer la colonne Filtre pour éliminer null
  11. Ajouter une colonne, Colonne personnalisée : nom Delta, formule :
    =try("Evolution " & Number.ToText([Valeur.1]-[Valeur],"0.00%")) otherwise [Valeur]&" --> "&[Valeur.1]
    (tente une soustraction et si pas possible construit un texte)
  12. sélectionner et supprimer les colonnes Valeur, Valeur.1, Filtre
  13. sélectionner la colonne Colonne, Transformer, Pivoter : colonne de valeur Delta, ne pas agréger
  14. renommer la colonne Index en Ligne
  15. supprimer la colonne Index.1
  16. Sortir par Fermer et Charger dans, Connexion uniquement
  17. Dans Excel, afficher les requêtes, clic droit sur Tableau1, Charger dans , Table et choisir l’emplacement

Oups désolé.

Merci je vais essayer tout ça.

Bonne journée à vous,

Thomas

@78chris

Serait-il possible de récupérer le détail de votre paramétrage avec PowerQuery ?

Je suis novice en la matière, est-ce que tes paramétrages sont accessibles dans le fichier que vous nous avez transféré ?

Ce serait plus facile pour m'exercer et me familiariser avec l'outil.

Merci d'avance,

Bonjour

J'ai listé toutes les manips depuis 0 jusqu'au bout

Qu'entends-tu par paramétrage ?

Si tu ouvres le fichier posté tu peux y voir toutes les étapes décrites en ouvrant PowerQuery (Données, Obtenir des données, Lancer l'éditeur OwerQuery).

Autant pour moi, je viens de mettre la main sur tout le détail que tu as réalisé sous PowerQuery.

Désolé pour les questions bêtes, cet outil à l'air puissant, j'espère montée en compétence assez vite

Merci encore à vous

RE

Si tu coinces sur une étape, reposte

Rebonjour,

Je coince sur l'étape 4. "Sortir par Fermer et Charger dans, Connexion uniquement"

Seule l'option "Fermer et charger" est possible de mon côté. Le champ "Fermer et charger dans..." est flouté et je ne peux pas le sélectionner.

Possible d'échanger via MP ?

Merci d'avance,

Rebonjour,

Je suis coincé à l'étape 5 : "Fermer et Charger dans, Connexion uniquement"

En effet, l'option "Fermer et charger dans.." est floutée et n'est pas disponible. Seule l'option "Fermer et charger" est autorisée.

Serait-il possible d'échanger avec vous via MP ?

Merci d'avance,

RE

Si on a déjà opté pour Fermer et charger dans, Connexion seulement sur une requête, cela reste valide pour cette requête et du coup le choix n'est effectivement pas proposé

Ce peut être le cas aussi si c'est le paramétrage choisi par défaut dans PowerQuery (c'est mon cas sur 365)

Sauf aspect confidentiel de la question on peut échanger ici : tes questions servent à d'autres qui auraient le même type de problématique

Alors j'ai réussi à réaliser toutes les étapes en faisant "Fermer et charger" plutôt que "Fermer et charger dans".

Le seul problème intervient lors du traitement des données (l'étape 16)

Un message d'erreur s'affiche avec un panneau /!\ : "Téléchargement non effectué"

RE

Si tu visualises les requêtes dans PowerQuery en te plaçant sur la dernière étape, sur 365 en haut des colonnes, sous le titre tu as un filet de couleur

Est-il vert dans chaque colonne ?

Si non c'est qu'il y a une erreur dans la colonne où le filet a une autre couleur

Si pas d'erreur dans PowerQuery, que donne l'étape 17 ? Il faut charger sans une plage vide

Je viens de retenter, même problème, le message suivant s'affiche : "Expression. Error Désolé Nous n'avons pas pu appliquer l'opérateur & aux types Dates et Test".

A la fin de la dernière étape, dans Power Query, deux lignes s'affichent en verts avec le message "Error" à chaque colonne

RE

Il doit y avoir une erreur à l'étape 11

Quand on crée le étapes l"erreur s'affiche dans les résultats : Error

En effet c'est bien l'étape 11 qui crée l'erreur

Voici une capture d'écran.

Pensez-vous qu'il est possible d'adapter la fonction de l'étape 11 ?

3img-2852.pdf (147.71 Ko)

Re

Vérifie l'étapes 3 : ta colonne Filtre ne contient pas ce qui est attendu et cela est lié à cette étape

Sinon à l'étape 11 tu as Valeur1 comme en-tête de colonne mais Valeur.1 dans la formule

Rechercher des sujets similaires à "macro comparaison differences entre fichiers"