VBA: Macro entre 2 fichiers excel 2007

Résolu
Ludivine -  
 Ludivine -
Bonjour à tous !!

Voici ce pourquoi je sollicite votre aide:

J'ai un premier fichier 'Late.xls' qui est un fichier qui fournit la principale cause de retard (colonne AN) pour chaque dossier (n° de dossier colonne A)
Fichier ici: http://cjoint.com/?ALpjMnEP8Zj

Le second fichier "tat.xlsm" est un fichier qui pour la cause de retard "Misuse" du premier fichier (MISUSE Colonne AN du late) permet de savoir plus exactement quel est le partenaire qui a généré le plus de retard.
Fichier ici: http://cjoint.com/?ALpjMMkYj29

Ce second fichier "tat.xlsm" est composé de plusieurs feuilles dont seulement 3 nous interressent :"Accepted", "rejected" et "free repair".

Je souhaiterais en gros, pour chaque ligne du fichier Late.xls qui CONTIENT "MISUSE" en colonne AN, créer une macro qui va indiquer colonne AP dans late.xls quelle est la sous catégorie de la raison "misuse". (si pas "misuse" colonne AN, laisser vide colonne AP)

Pour ça il faut pour chaque dossier du late.xls, ballayer les 3 feuilles de tat.xlsm (accepted, rejected et free repair) et indiquer la raison qui a le plus gros chiffre indiqué dans les colonnes S, T,U,V ou W (W utilisé uniquement sur la feuille "Accepted")

Info pour toutes les feuilles: si il y a "no date" à la place d'un chiffre, ne pas tenir compte de "no date" et considérer uniquement les colonnes restantes pour déterminer le plus grand nombre.

Un numéro de dossier ne peut être contenu que dans 1 seule des 3 feuilles et en fonction, indiquer comme ci dessous:

Si le Numéro de dossier est contenu dans la feuille "Accepted" ET
si colonne S contient plus gros chiffre, indiquer "Repair Line to declare" colonne AP de late.xls
Si colonne T contient le plus gros chiffre, indiquer "Quotation calculation" colonne AP de late.xls
Si colonne U contient le plus gros chiffre, indiquer "Customer delay" colonne AP de late.xls
Si colonne V contient le plus gros chiffre, indiquer "ROPS" colonne AP de late.xls
Si colonne W contient le plus gros chiffre, indiquer " Repair Line to repair" colonne AP de late.xls

Si le Numéro de dossier est contenu dans la feuille "Rejected" ET
si colonne S contient plus gros chiffre, indiquer "Repair Line to declare" colonne AP de late.xls
Si colonne T contient le plus gros chiffre, indiquer "Quotation calculation" colonne AP de late.xls
Si colonne U contient le plus gros chiffre, indiquer "Customer delay" colonne AP de late.xls
Si colonne V contient le plus gros chiffre, indiquer "Repair Line to ship Unrepaired" colonne AP de late.xls

Si le Numéro de dossier est contenu dans la feuille "Free Repair" ET
si colonne S contient plus gros chiffre, indiquer "Repair Line to declare" colonne AP de late.xls
Si colonne T contient le plus gros chiffre, indiquer "Quotation calculation" colonne AP de late.xls
Si colonne U contient le plus gros chiffre, indiquer "Customer delay" colonne AP de late.xls
Si colonne V contient le plus gros chiffre, indiquer "Repair Line to repair" colonne AP de late.xls

Si le numéro de dossier n'est contenu dans aucun des 3 onglets ci dessus, indiquer "Not in Misuse report" colonne AP de Late.xls

J'espère être complête alors surtout n'hésitez pas à poser vos questions !!

Merci infiniment par avance !

Ludivine

4 réponses

  1. Ludivine
     
    Quelqu'un serait il en mesure de m'aider ?

    Merci beaucoup d'avance !!
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Pour simplifier, puis je utiliser dans "tat" une colonne (masquée à la livraison)) par ex AA ou autre qui me donnerait la colonne du + gros chiffre style equiv(max(....);.....

    les 2 classeurs devront être ouverts, mais apparemment, ça devrait pas trop poser de pb

    Tu dis...
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      re,
      pour confirmation:
      On met la macro dans le classeur late ?
      0
  3. Ludivine
     
    Bonjour Michel et merci de te pencher sur mon cas !!
    '
    Pour ajouter une colonne dans TAT, pas de problèmes, en sachant que le fichier TAT m'est envoyé 1fois / semaine avec les nouvelles données, il faudra donc que je copie la formule ou autre " qui me donnerait la colonne du + gros chiffre" dans le nouveau fichier TAT (ce qui n'est pas un problème, faut juste que je le sache !
    '
    La macro dans le classeur Late: c'est le mieux pour moi, oui, merci :)

    Merci Michel :)
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      OK, c'est parti...
      la détermination de la colonne se fera par VBA...
      l'ouverture de TAT se fera par getopenfilename mais tu pourras simplifier le code si c'est toujours dans le m^me dossier

      sois patiente! peut-^tre cet aprem...
      0
    2. Ludivine
       
      Merci Michel !!!! :)
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    et voilà, j'espère que... :o)
    https://www.cjoint.com/?3LqpSrm1gr2

    il serait intéressant que tu simplifies le code d'ouverture de TAT

    '----------Ouverture  du classeur TAT.... A SIMPLIFIER SI REPERTOIRE CONNU
         On Error GoTo vide
         Workbooks.Open Filename:=Application.GetOpenFilename
         If ActiveWorkbook.Name <> "tat.xlsm" Then GoTo erreur2

    0
    1. Ludivine
       
      ça m'a l'air parfait !!!

      Je regarde plus en détaille, merci beaucoup Michel en tout cas !!!
      0