XL 2010 Compléter colonnes selon fichier de référence

KIM

XLDnaute Accro
Bonjour le forum, bonjour les ami(e)s,
Votre réactivité dans ce forum m'a rendu beaucoup de services. Je reviens ainsi vers vous pour solliciter votre aide. J'ai un fichier de référence (CatGrpRef.xls) pour les catégories (3) et groupes (4).
- Les 3 catégories sont liées
- Chaque groupe est positionné à "Oui" selon le contenu des 3 catégories.
- Les données des catégories Cat_1 et Cat_2 sont figées Col B et C
- CAT_1 est obligatoire et ne peut pas être vide
-CAT_2 n'est pas obligatoire (vide)
- CAT_3 n'est pas obligatoire, peut être conforme aux données de la col D pour positionner les groupes à Oui sinon saisie libre. "*" veut dire vide ou saisie libre différente de la liste proposée.
Je reçois régulièrement un fichier de quelques milliers de lignes du type CompléterSelonCritères.xls. Je souhaite compléter les colonnes L, M, N, O à "Oui" et R pour les commentaires selon les catégories col I, J et K par les données correspondantes du fichier de référence (CatGrpRef.xls).
Les anomalies à traiter : Si CAT_1 et/ou CAT_2 ne sont pas conformes au tableau de référence :
-Il faut noter dans Commentaires (Col R) : CAT_2 INCONNU (par exemple, ligne 17) et appliquer la règle pour les groupes comme si CAT-2 est vide.
- Si Cat_1 est erronnée, c-à-d n'existe pas dans le référentiel (Col B), mettre "X" pour tous les groupes et dans Commentaires (Col R) : CAT_1 INCONNU (par exemple, ligne 24)
Ci-joints CatGrpRef.xls et CompléterSelonCritères.xls
Je vous remercie par avance de votre aide.
Bien cordialement KIM
 

Pièces jointes

  • CatGrpRef.xls
    40.5 KB · Affichages: 42
  • CompleterSelonCritères.xls
    51.5 KB · Affichages: 37

KIM

XLDnaute Accro
Bebere,
Suite au test de ta dernière macro,
1- Pourquoi compliquer quand on peut simplifier.
En regardant ton code, en effet on peut dire, pour INCONNU,au départ les cellules colonne cat1 de listacompleter sont vides. Une bonne idée. Ainsi Quand Cat1 ou Cat2 sont erronées, non conforme à la liste du fichier de référence, à les mettre en rouge, sans les remplacer et dans commentaire mettre selon la catégorie analysée, par ex Cat1 = toto par exemple INCONNU en rouge.
2- Pb La dernière ligne du fichier listeacompleter n'est pas traiter.
En attendant Bon dimanche

KIM
 

Bebere

XLDnaute Barbatruc
kim
dans mon fichier cela va jusqu'à ligne 36 dans le dernier ligne 41
ajouter ucase et changer case "vid"
Code:
         d(UCase(a(l, 1))) = UCase(a(l, 1))

             Case "VID"
                 a(Ligne, 1) = tblCat(16, 1)
                 a(Ligne, 4) = TblGrp(16, 1)
                 a(Ligne, 5) = TblGrp(16, 2)
                 a(Ligne, 6) = TblGrp(16, 3)
 

Bebere

XLDnaute Barbatruc
Kim
voilà le fichier,ajout de case else pour traiter le cas toto,il peut y en avoir d'autres
n'oublie de remettre toto si tu fais des essais
fait y tes remarques
 

Pièces jointes

  • CompleterSelonCritères_v2.xlsm
    40.5 KB · Affichages: 33

KIM

XLDnaute Accro
Bonsoir Bebere,
Je viens de tester ton nouveau fichier. Ci-joint le fichier de référence ainsi que le fichier compléterSelonCritères_v2a avec mes commentaires.
Pour résumer :
1- Est-il possible d'initialiser le nom de la feuille traitée, les colonnes à traiter de chaque catégorie et chaque groupe au début de la macro car ces colonnes peuvent être différentes d'un fichier à un autre mais les titres sont identiques ?
2- Décalage du positionnement des Oui, voir Col P dans le fichier traité,
3- Tous les INCONNU en rouge,
4- Traitement de toto est incompatible avec le traitement pour INCONNU, voir commentaires.
5- Revoir les anomalies des catégories, voir certains commentaires dans le fichier joint.
6- Appel du fichier de Référence, est-il possible de le rendre dynamique car le nombre de lignes est en évolution continue.

Merci d'avance
KIM
 

Pièces jointes

  • CompleterSelonCritères_v2a.xlsm
    32.3 KB · Affichages: 35
  • CatGrpRef.xls
    40.5 KB · Affichages: 40
Dernière édition:

KIM

XLDnaute Accro
Bonjour Bebere,
J'ai vite récupéré ton dernier fichier pour le tester. Effectivement Cat1 est mieux géré et le positionnement des oui aussi. Les erreurs de Cat2 et Cat3 ne sont pas correctement traitées. Mes commentaires dans le fichier ci-joint.
Merci d'avance
KIM
 

Pièces jointes

  • CompleterSelonCritères_v3a.xlsm
    55.5 KB · Affichages: 30

Bebere

XLDnaute Barbatruc
bonjour
Kim,oui des cas non traités, pas vu ou nouveau
je me demande si ce ne serait pas mieux de traiter les fautes de syntaxes(mettre dans un autre tableau corrigé) et ensuite faire les comparaisons
dis moi ce que tu en penses et ce que tu penses de ce qu'il faut faire dans la feuille
 

KIM

XLDnaute Accro
Bonjour Bebere,
Une bonne idée et t'en remercie par avance.
1- En effet j'allais te proposer de traiter les fautes de syntaxes dans un autre fichier xls externe par exemple Dict_ErreursCat.xls
- 1è col de ce fichier : titre de la Cat : Cat1 ou Cat2 ou Cat3.
NB : Dans le fichier de travail le nom des catégories est un nom composé avec des espaces : Cat principale, Cat spécifique et Complément de Cat
- 2è col de ce fichier : Syntaxe erronée
- 3è col : Syntaxe correcte
2- Une macro qui transforme Cat1 en majuscule dans le fichier traité CompleterSelonCritères.xls et alimente le dictionnaire des erreurs Dict_ErreursCat.xls des syntaxes erronées rencontrées pour chaque Cat,
3- On complète manuellement la 3è colonne du dict des erreurs par la syntaxe correcte,
3- Une macro qui lit ce fichier et remplace chaque cat erronée par sa syntaxe correcte.
Ce fichier peut-être utilisé pour traiter d'autres fichiers similaires. Qu'en penses-tu ?
4- Aucun souci s'il est nécessaire d'avoir un fichier externe pour chaque cat pour traiter les erreurs de syntaxe.
3- L'ordre des catégories dans le fichier de traitement CompleterSelonCritères.xls est le même que dans le fichier de référence CatGrpRef.xls. Est-ce que l'ordre des groupes dans le fichier de traitement CompleterSelonCritères.xls doit être aussi le même que dans le fichier de référence ?
Merci encore et Bonne journée
KIM
 

Bebere

XLDnaute Barbatruc
Kim
avec ordre quelconque dictionnary va chercher les lignes correspondantes à item de dictionary
autre possibilité faire un tri avant traitement dans la feuille à traiter et traitement par bloc
si j'ai bien lu en réel c'est un fichier avec beaucoup de lignesndictionary plus rapide
aujourdhui et demain un peu en vadrouille,tu as le temps de méditer
à toi de dire
bonne journée
 

KIM

XLDnaute Accro
Bonsoir Bebere, Merci pour ton aide et tes conseils.
1-Comme tu le proposes, utiliser les dictionnary car le dict des erreurs peut comporter quelques centaines de lignes et le fichier à traiter quelques milliers de lignes.
2- Séparer les actions.
a- Une macro pour corriger la syntaxe de chaque catégorie selon un dictionnaire des erreurs rencontrées
b- Une autre pour compléter les groupes à Oui selon le tableau de référence.

3- Il est peut-être nécessaire de créer un dictionnaire des erreurs par catégorie et un traitement des erreurs par catégorie. Aucun souci pour gérer 3 dictionnaires.
4- Traitement des erreurs des Cat1 et Cat2 :
a- Cat1 obligatoire, non vide ni espace et conforme exactement à Cat1 du fichier de référence. A chaque exécution du traitement avoir un message du nombre d'erreurs rencontrées.
b- Cat2 n'est pas obligatoire. peut donc être vide (espace non accepté).
Si Cat2 est non vide, elle doit conforme exactement à Cat2 du fichier de référence.
Idem, message du nombre d'erreurs rencontrées à la fin d'exécution du traitement de Cat2
c- Idem pour Cat3, à traiter seulement les erreurs saisies dans le dict des erreurs de Cat3 car Cat3 est en saisie libre aussi. Pas de message à l'écran.
5- Après avoir corriger les erreurs, on peut lancer la macro pour positionner les Oui dans les groupes selon le fichier de référence.
Qu'en pense-tu ?
Merci d'avance. KIM
 

ChTi160

XLDnaute Barbatruc
Bonjour KIM
Bonjour le fil "Bebere" ,Le Forum
Afin de ne pas venir les mains vides pour te Saluer KIM
Une approche pour répondre à ta demande , qu'il faut tester bien sur ! Lol
pas sur d'avoir répondu à toutes les contraintes .
j'ai simplifié le fichier ,j'ai réuni les données dans un seul , pour le test .
Content d'avoir pu te saluer .
Amicalement
Jean marie
 

Pièces jointes

  • CompleterSelonCritères_Chti160.xlsm
    41.4 KB · Affichages: 35

KIM

XLDnaute Accro
Bonjour Jean-Marie,
Re bonjour Bebere,
Jean marie, En retour mes salutations amicales. Toujours actif sur le site. Content d'avoir de tes nouvelles.
En attendant Bebere, je vais regarder ton fichier ce soir et te tiendrai au courant.

Bonne continuation et merci encore.
Amitiés
KIM
 

Discussions similaires

Réponses
2
Affichages
152

Statistiques des forums

Discussions
312 108
Messages
2 085 369
Membres
102 875
dernier inscrit
Jimbo2374