VBA analyse multicritères d'un tableau

Re Spike29 le forum

voilà en tenant compte de mon dernier post

a+

Papou

14spike29-bdd1-v7.xlsm (256.91 Ko)

Bonjour PARITEC,

Réponse tardive car au vu du contexte je n'ai malheureusement pas eu l'occasion de me pencher plus tôt sur tes réponses.

Pour faire court et simple : Ton dernier fichier répond à l'intégralité de ma demande.

Demande qui visiblement avait l'air de paraître "Bidon" à première vue mais pas tant que ça. Un tableau de gestion des référentiels applicables par date est bien indispensable pour différentes raisons :

  • Dans la Feuil base de données il n'est pas exclu que sur différents référentiels on retrouve des Mnémo SA identiques en dénomination (ex : G250) mais forcément pas avec les mêmes heures en face... ce qui impliquerait des incohérence dans l'analyse.
  • D'autre part, il n'est pas exclu non plus que l'on doivent "neutraliser" l'analyse sur certaines journée calendaire (ce tableau permettra à l'utilisateur moyennant quelques modif de ton code de neutraliser l'analyse sur une date souhaitée)
  • De plus, c'est un bon moyen pour les futurs utilisateurs d'autocontrôler l'affectation du bon référentiel et ça offre une plus grande souplesse à l'utilisateur.

Je vais me répéter, mais un grand merci à toi d'avoir pris du temps sur mes nombreuses demandes !

En espérant que ton confinement se passe pour le mieux.

De mon côté, j'ai essayer de boucler mon fichier d'analyse aujourd'hui mais je bute encore et encore...

Si jamais il te reste un peu de temps je suis preneur d'un énième coup de pouce

Ci-dessous, ce que j'essaye de boucler :

1) Si la colonne B de mon tableau "Référentiel Applicable" Feuil3 contient "neutralisé" => Colonne I Feuil4 = "" pour la date concernée.

2) Dans mon tableau "Micro Analyse" de la Feuil3 j'essaye désespérément de convertir des formules NB SI ENS en VBA : =NB.SI.ENS(Analyse!C:C;D25;Analyse!E:E;"PSA") ; Et cela pour les colonnes G ; H et I

3) Dans la colonne J "% de Pds conforme" je tente de définir la formule suivante dans ma boucle => SI(G25=0;"";H25+I25/G25)

Pour le 1) , j'ai essayé de bricoler cela dans ton code mais sans succès :

If Day(aa(i, 1)) = bb(a, 1) And bb(a, 2) = "Feuil1.Cells(7,5)" Then

' Set cel = Feuil1.Cells.Find(bb(a, 2), , , xlWhole)

' If Not cel Is Nothing Then col = cel.Column Else GoTo _

1

' If bb(a, 2) = "Feuil1.Cells(7,5)" Then

'Set cel2 = Feuil1.Cells.Find(bb(a, 2), , , xlWhole)

' aa(i, 9) = ""

Pour le 2) et 3) j'ai tenté d'utiliser un vieux code qui eu marché sur un autre de mes fichiers. Cf la macro "Sub PostTraitement2" que j'ai incorporé en bas de ton code, mais malheureusement les boucles et moi ça fait deux.

Bonne fin de journée à toi et merci encore !

Emmanuel

11spike29-bdd1-v7.xlsm (291.56 Ko)

Bonjour Spike29 le forum

l'utilisateur moyennant quelques modif de ton code de neutraliser l'analyse sur une date souhaitée

j'aime quand je lis de âneries comme celle là!!

Tu as demandé des choses que j'ai respecté à la lettre et maintenant je lis

quelques modif de ton code

ce qui prouve que tu demandes des choses que tu ne comprends même pas !!!

pour ne pas analyser une date il suffit de ne pas sélectionner de référentiel dans la colonne B de la feuille Choix Référentiel.

Donc on est reparti pour les questions.

1) A quoi sert le référentiel "Neutralisé" ????

2) Tu me prends pour une bille quand tu me dis que tu peux avoir un numéro de train qui peut avoir des doublons dans la feuille Base de Donnée, c'est impossible et tu le sais très bien, un train, une ref de train, une heure théorique d'arrivée et c'est tout.

3) maintenant pourquoi convertir les formules "=NB.SI.ENS(Analyse!C:C;D25;Analyse!E:E;"PSA")" en vba ?? Tu as rajouté ton tableau dans la feuille "Choix de Référentiel", car je suppose que tu veux le résultat dans la feuille "Choix du Référentiel"

Et cela pour les colonnes G ; H et I

???

Voilà une fois de plus des demandes Précises qui n'auront pas de réponses Précises

alors t'aider une énième fois oui, pourquoi pas, mais avec des réponses carrés ???

dernier point

1) Si la colonne B de mon tableau "Référentiel Applicable" Feuil3 contient "neutralisé" => Colonne I Feuil4 = "" pour la date concernée

ce qui signifie que les autres colonnes "F" "H" "J" "K" sont également à ignorer ???? Et doivent rester à " " ???

Voilà encore une fois pas de boule de cristal !!

a+

Papou

Bonjour PARITEC,

Comme tu as pu le constater il s'agit d'un fichier d'analyse. Tu as peut-être l'impression que je navigue à vue mais crois moi je sais parfaitement ou je veux aller ! En revanche, tu imagines bien que si je devais lister l'ensemble des sujets sur lesquels je bloque mes demandes d'1 km se transformeraient en une plus longue liste.

Je procède donc par étapes c'est plus simple pour tout le monde. Sur certains sujets je trouve moi même les réponses à force de persévérance et sur d'autres non (et dans ce cas je te les adressent).

j'aime quand je lis de âneries comme celle là!!

Tu as demandé des choses que j'ai respecté à la lettre et maintenant je lis

Je ne vois pas ce que le terme " âneries " vient faire là... d'autant plus que tu trouves des précisions a ce point plus bas dans le document.

ce qui prouve que tu demandes des choses que tu ne comprends même pas !!!

pour ne pas analyser une date il suffit de ne pas sélectionner de référentiel dans la colonne B de la feuille Choix Référentiel.

J'ai bien compris comment fonctionnait ton code (je prend quand même la peine de le regarder en détails, c'est la moindre des choses....) et donc oui effectivement quand on ne sélectionne pas de référentiel et bah.... pas d'analyse OUI.

Si tu t'arrêtes là effectivement j'accepte ta remarque.

Sauf que plus bas tu as sûrement du lire ma demande formulée en 3 points nets qui répond à ces questions et reste focus sur le besoin.

1) A quoi sert le référentiel "Neutralisé" ????

Dans la feuil base de données j'ai ajouté le référentiel "Neutralisé" pour :

  • Avoir dans ma liste de référentiel au choix, le référentiel "Neutralisé" qui comme tu l'as vu est vierge ce qui revient au même que de ne rien mettre dans la colonne choix du référentiel... ( Je suis d'accord) !!
  • Comme ce référentiel est vierge, il permet naturellement d'avoir les colonnes F,H,J,K de vides. ( jusque là tout va bien).

ce qui signifie que les autres colonnes "F" "H" "J" "K" sont également à ignorer ???? Et doivent rester à " " ???

La réponse est OUI !! Et même mieux, en ajoutant un référentiel "Neutralisé" vierge dans la feuil "Base de donnée" c'est déjà indirectement le cas.

Ma demande :

Lorsque je sélectionne le référentiel "Neutralisé" sur une date donnée, je souhaite en plus des colonnes F,H,J et K, que la colonne "I" soit vide sur cette date uniquement.

Pour ce cas précis, l'action de ne pas sélectionner de référentiel dans le tableau "Référentiel Applicables" n'est pas suffisant car la colonne "I" continue a être enrichie de "NON" avec pour conséquence de ne pas totalement neutraliser l'analyse pour cette date !

Ce qui explique ma demande !!

2) Tu me prends pour une bille quand tu me dis que tu peux avoir un numéro de train qui peut avoir des doublons dans la feuille Base de Donnée, c'est impossible et tu le sais très bien, un train, une ref de train, une heure théorique d'arrivée et c'est tout.

Alors déjà pour commencé je ne sais pas pour toi mais je n'ai pas l'habitude de prendre mes interlocuteurs pour des billes...encore moins ceux qui m'apportent une aide précieuse comme c'est le cas pour toi !

Ensuite, pourquoi évoques tu des n° de trains alors que n'ai jamais évoqué cette variable... ?? Ce fichier ne traite absolument pas de trains, donc pour simplifier les échanges il est préférable de rester cantonné aux informations présentes et uniquement présentes dans le fichier à savoir :

  • Des référentiels
  • Dans lesquels nous trouvons des Mnémo SA
  • Puis des heures en face de chaque Mnémo SA

Donc comme je disais, dans des référentiels différents, il n'est pas impossible de retrouver des dénominations de Mnémo SA identiques (exemple G250 etc etc....ça n'est pas le cas dans les fichiers que je t'ai envoyé en exemple mais ça existe bien) et avec pour le coup des heures différentes...

Et en analysant ces tableaux de données très régulièrement je le répète, CELA ARRIVE REGULIEREMENT !! Et pour le coup, la solution la plus saine et souple est de passer par un tableau de sélection des référentiels applicables.

Chose que tu as très bien faite au passage !!!!

3) maintenant pourquoi convertir les formules "=NB.SI.ENS(Analyse!C:C;D25;Analyse!E:E;"PSA")" en vba ?? Tu as rajouté ton tableau dans la feuille "Choix de Référentiel", car je suppose que tu veux le résultat dans la feuille "Choix du Référentiel"

Oui, je veux le résultat dans la feuille choix du référentiel. Je souhaite inscrire, cette formule NB.SI.ENS dans le code pour éviter les fausses manip des futurs utilisateurs, j'ai trop souvent vu des formules vérolée ou autres. Si c'est dans le dur du code pas de risque.

J'ai déjà réussi à convertir du NB.SI mais le bloque sur le NB.SI.ENS.

En espérant avoir apporté les précisions nécessaires et avoir répondu à tes remarques.

Bonne journée

Cdt

Re

la V9

a+

Papou

32spike29-bdd1-v9.xlsm (274.45 Ko)

Bonsoir Paritec !

Encore une fois ça marche et répond parfaitement au besoin !

Un grand, très grand merci pour l'ensemble de tes réponses.

Déchiffrer et tenter de comprendre tes codes me permet au passage de progresser donc Merci !

Bonne fin de journée !

A+

Emmanuel

Rechercher des sujets similaires à "vba analyse multicriteres tableau"