EXCEL - Comparer des données et synthétiser les résultats (résolu)

* Chaton
Anonyme
Envoyé le 31/01/2015 à 14:58

Bonjour,

Voici mon problème : J'ai le tableau ci-joint (dont j'ai effacé les données pour des raisons de confidentialité). Je dois comparer les données des colonnes vertes dans deux premiers onglets.

L'onglet "Base" contient des informations de carnet d'adresse. Les noms n'apparaissent donc qu'une seule fois par personne.

L'onglet "Comparer" contient les différentes affectations des personnes. Le nom du salarié apparaît donc autant de fois qu'il a d'affectation.

Je dois vérifier que le nom de chaque salarié est bien orthographié et qu'il correspond à la bonne division, au bon secteur et au bon Responsable (N+1).

Difficulté supplémentaire : tous les noms de l'onglet "base" n'apparaissent pas dans l'onglet "comparer".

L'idéal serait que les différences s'affichent SOIT en rouge dans les deux onglets, soit face à face dans le dernier onglet que j'ai créé.

J'ai plus de 7000 noms dans le deuxième onglet, j'espère qu'il y a une meilleure solution que de tout vérifier à la main... [;(]

Merci pour votre aide.

Bien cordialement.

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 31/01/2015 à 16:02


Bonjour,

Ce serait un plaisir d'imaginer et de proposer une solution, mais il faudrait le fameux tableau ci-joint ! [:o)]
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 02/02/2015 à 09:41

Bonjour,

Au temps pour moi, il se trouve ici

Merci :)



Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 02/02/2015 à 10:12 Modifié par Claude40


Bonjour,

C'est un peu plus clair, mais il aurait été "sympa" d'avoir quelques lignes sur chaque feuille à titre d'exemple, avec des données fictives, une sorte de jeu d'essai.
D'autre part, je me pose au moins une question (en attendant le jeu d'essai) :
Puisqu'il y a plusieurs fois le même nom sur la feuille COMPARER, quel est le critère pour décider où sont les bonnes informations qui doivent figurer dans "BASE" ?
A +
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 02/02/2015 à 10:43

Bonjour,

VOICI

En fait, il y a (visiblement) des erreur dans la fiche "comparer". Les noms sont correctement orthographiés et répartis par secteur dans la "base" (hihi, normal, c'est moi qui l'ai faite ^^) mais tout le monde a mis son grain de sel dans "Comparer". Je dois donc vérifier que les noms, secteurs et hérarchiques ont été rentrés correctement en face des noms de clients. Ce sont deux extractions de deux bases de données distinctes alors il va ensuite falloir corriger les erreurs, s'il y a lieu, dans chacune d'entre elle.

Je ne sais pas si c'est clair...

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 02/02/2015 à 20:06


Bonjour,

Le problème est assez complexe et je propose une solution mixte à base de formules et à base d’une Macro.
Pour commencer, insérer une colonne à gauche de la colonne A de la feuille « BASE » et écrire cette fonction en A2, puis l’étendre sur toutes les lignes de la feuille : =NB.SI(COMPARER!$F2:$Fnnn;D2), dans laquelle « nnn » représente le nombre de lignes effectif de la feuille « COMPARER »
Le résultat de cette formule est que l’on obtient le nombre de fois ou un nom de la feuille « BASE » se retrouve sur la feuille « COMPARER ».
Première information : si on a zéro dans la colonne A de la feuille « BASE », cela signifie que le nom n’est pas dans la feuille « COMPARER ».
Faire la même manœuvre avec la feuille « COMPARER». Insérer une colonne à gauche de la colonne A , coder cette fonction : =NB.SI(BASE!$D$2:$D$nnn;COMPARER!G2) et l’étendre sur toutes les lignes.
De la même façon « nnn » représente le numéro de ligne maxi de la feuille « BASE ».
A noter que les formules de feuille « BASE » ont été automatiquement changées du fait de l’insertion d’une colonne dans la feuille « COMPARER »
On obtient en colonne A le nombre de fois où un nom de la feuille « COMPARER » est sur la feuille « BASE ». Le cas normal est 1. Si le résultat est zéro, cela signifie qu’un nom de la feuille « COMPARER » est absent de la feuille « BASE » Un nombre supérieur à 1 indique qu’il y a plusieurs noms identiques sur la feuille « BASE », ce qui ne serait pas impossible car on ne traite pas les prénoms.
Ces interventions présentent déjà l’utilité de pointer sur des « anomalies ». En outre, elles facilitent beaucoup l’écriture de la Macro.
Voici donc une version du classeur avec une macro qui se lance, soit pas la barre d’outils accès rapide, soit la le bouton situé sur la feuille « RESULTAT ».
Ce n’est qu’un premier jet et cette solution peut, bien sûr, être améliorée.

cjoint.com/?3BcugesZUo6
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 03/02/2015 à 11:14

Bonjour Claude40,

Merci pour ton aide !

J'ai un petit souci avec la macro : dans l'onglet "Résultats", la colonne I ne se remplit pas. En réalité, j'ai l'impression que seule une partie de la macro s'exécute (après le programme ne répond plus) : elle me met bien les noms en face les uns des autres mais ne compare pas.

J'ai tenté (ça n'a peut-être aucune incidence) de mettre le nombre exact de lignes à comparer dans la macro (d'ailleurs, un grand merci pour le texte et les indications !) mais ça ne change pas grand chose...

S'il n'y a pas de solution je comparerai à la main, c'est déjà une grosse épine que tu m'enlèves du pied !

A bientôt !


Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 03/02/2015 à 12:09


Bonjour,

Il y avait effectivement un petit défaut dans la macro, du fait qu'au début, je ne sortais pas sur la feuille "RESULTAT", mais sur une feuille provisoire "RES".
J'ai mofifié la macro pour changer "RES" en "RESULTAT", mais je ne me suis plus souvenu que j'avais aussi, dans un premier temps, inséré une colonne de plus à la droite de la colonne A. Donc toutes les colonnes de "RESULTAT" étaient décalées.
Ci-joint nouveau tableur avec nouvelle macro, qui fonctionne bien chez moi maintenant.
A +
cjoint.com/?3BdmmGlPRdW
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 03/02/2015 à 14:35

Bonjour,

Il y a un problème sur cette partie du code :


End If


Sheets("COMPARER").Select


Next j
Sheets("BASE").Select

Next i
'****** Vérification et alertes
Sheets("RESULTAT").Select
For i = 2 To LignesC
If Cells(i, 1



Qui ressort en anomalie et fait tout boguer. Je me suis torturé les méninges pour tenter de ne pas vous embêter une fois de plus mais il va décidément falloir que je m'y mette sérieusement avec un professionnel pour y comprendre quelque chose...

Encore merci.

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 03/02/2015 à 14:57 Modifié par Claude40


Bonjour,

Je suppose que c'est quand la macro est exécutée sur le fichier réel et non sur le jeu d'essai. Il faudrait me donner le code erreur et tous les messages qui apparaissent dans ce cas. C'est souvent le cas avec les jeux d'essais qui ne présentent pas forcément tous les pièges d'un fichier réel.
Ne pas hésiter à me demander, car je reste toujours à disposition tant que le problème n'est pas résolu. C'est le principe sur Memoclic ! [:o)]
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 03/02/2015 à 15:08

Bonjour,

Il n'y a aucun message particulier : la macro s'active normalement, mouline exactement comme dans le fichier test puis tout s'arrête. Le message "Ne répond pas" s'affiche sur la fenêtre Excel et plus rien ne bouge. Impossible de faire quoi que ce soit, et ce même en attendant quelques minutes.

Quand enfin je craque et que j'appuie sur la petite croix rouge pour fermer, il me propose de "redémarrer le programme" puis la fenêtre suivante s'affiche :



Si je clique sur "Débogage", il me renvoi dans l'éditeur de code en surlignant la ligne que je vous ai indiquée en jaune.

Merci !

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 03/02/2015 à 16:32


Bonjour,

A la fin de la macro sous
'****** Vérification et alertes
mettre Activate au lieu de Select
Sheets("RESULTAT").Activate

On va y arriver !
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 03/02/2015 à 17:03

Bonjour,

Toujours pas. Le même problème se pose :



Peut-être y a-t-il trop de données pour comparer ? Si c'est le cas, retirer la dernière partie du code permettrait au moins de classer les données ? (dans ce cas, je ferai le tri manuellement).

Merci.

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 03/02/2015 à 17:27


Bonjour,

Je pense que les caractéristiques du fichier réel et la programmation (peut-être un peu trop simpliste) font que l'on se trouve dans le cas d'un dépassement de capacité pour les résutats de sortie. On peut effectivement "neutraliser" la fin de la macro en mettant EXIT SUB juste avant le commentaire ' **** Vérification et Alertes. Mais je ne suis pas sûr que cela fonctionne.
Faire cela dans un premier temps et me dire ce qu'il en est.
à +
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 03/02/2015 à 19:27


Bonjour,

Je confirme qu'il s'agit d'un dépassement de capacité. A force de faire +1 sur une variable qui va indiquer un numéro de ligne, on sort des capacités d'une feuille de calcul. Je n'avais pas vu cela avec le jeu d'essai réduit.
Je cherche
A +
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 03/02/2015 à 20:23


Bonsoir,
Voici une nouvelle version qui, je l'espère, marchera mieux. En tout cas, chez moi, ça fonctionne, mais toujours avec un jeu d'essai réduit en taille.
J'en ai profité pour remplir toutes les cellules de la feuille RESULTAT avec les données de la Feuille BASE.
Par contre la Macro, ne traite pas les noms présents dans BASE et absents dans COMPARER et vice-versa.
Pour les détecter, on peut appliquer un filtre sur 0 en colonne A.
Me dire ce qu'il en est ?
Merci
A +

cjoint.com/?3BduyHgfX1i
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 04/02/2015 à 10:01

Bonjour Claude40,

Malheureusement, toujours pas. J'ai recréé un tableau tes en y insérant le nombre exacte de cellules. J'y ai inséré diverses erreurs. En espérant que ça fonctionne mieux.

Le voici !

Merci encore (et toujours) :)


Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 04/02/2015 à 12:08


Bonjour,

Pour moi, cela fonctionne. Je renvoie un nouveau fichier et une (nouvelle) macro. Par sécurité, supprimer toutes les macros "Comparer" avant de récupérer le fichier
Attention cependant à bien transférer la macro sur le fichier modifiable car le fichier transmis par ci-joint.com est en lecture seule.
Durée du traitement sur mon PC = 11 minutes.
A bientôt pour de meilleures nouvelles.

cjoint.com/?3BemlIgvoBO
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* Chaton
Anonyme
Envoyé le 04/02/2015 à 15:49

Bonjour Claude40,

C'est fantastique, ça fonctionne parfaitement maintenant !

Un grand merci pour votre aide, votre patience et votre disponibilité ! [:)(]




Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 04/02/2015 à 17:51


Bonjour,

Ce fut un plaisir (+)
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum