VBA: Macro entre 2 fichiers excel 2007

Résolu/Fermé
Ludivine - 15 déc. 2011 à 09:46
 Ludivine - 16 déc. 2011 à 16:02
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

Quelqu'un serait il en mesure de m'aider ?

Merci beaucoup d'avance !!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 déc. 2011 à 09:15
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 déc. 2011 à 09:29
re,
pour confirmation:
On met la macro dans le classeur late ?
0
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 déc. 2011 à 10:56
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
Merci Michel !!!! :)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 déc. 2011 à 15:45
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
ça m'a l'air parfait !!!

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