BOURGUIGNON MAEL ABBASSI GHISLAINE VBA EXCEL UN OUTIL D AIDE A LA DECISION Licence de gestion mention marketing 2005-2006 Groupe 6 Mme Colletis Salles MAITRE DE CONFERENCES EN SCIENCES DE GESTION PLACE ANATOLE FRANCE 31042 TOULOUSE CEDEX
SOMMAIRE CHAPITRE I : INTRODUCTION 3 CHAPITRE II : APPROCHE ROMC 4 CHAPITRE III : MACROS 5-21 Macro Aller 5 Macro Effacer 6 Macro Nouveau 7 Macro Enregistrement 8-10 Macro EnregistEvenement 11-12 Macro Comparer 12-13 Macro EnregistrerNoteCalculee 14 Macro EnregistrerNoteSaisie 14 Macro NouveauEven 15 Macro Pack 15-19 Macro Resiliation 20-21 2
CHAPITRE I : INTRODUCTION AU PROJET VBA EXCEL Pour plus de clarté, notre classeur est composé de 6 feuilles dont 3 utilisées pour la saisie des données et la lecture des informations liées à celles-ci ainsi que 3 autres, contenant l ensemble des tables de données, où seront enregistrer les données intéressantes pour le courtier, relatives aux clients. La première feuille «Evaluation» est utilisée pour entrer les informations relatives au client comme son nom, prénom, age, ses informations financières et le risque lié à sa profession. L outil déterminera ainsi en fonction des informations inscrites si l obtention d un prêt est possible ou non. Ces données pourront être inscrites dans la table Client. La seconde feuille «PACK» va déterminer la meilleur offre possible à 3 niveaux : la banque, l assurance et le cautionnement ; de comparer cette dernière à une offre concurrente et enfin enregistrer un évènement dans la table Client. La troisième feuille va permettre d analyser la clientèle en évaluant le comportement du client en fonction de différents critères. 3
CHAPITRE II : APPROCHE ROMC Le logiciel Excel est un tableur qui a pour fonction principale d exploiter des données chiffrées, cest-à-dire de les présenter sous forme de tableaux, de graphiques et de les analyser, grâce à des fonctions mathématiques et statistiques. C est donc un outil indispensable pour toute personnes travaillant en entreprise. Dans une approche décisionnelle (SIAD), Excel devient un outil de simulation efficace et utile dans l aide à la décision. Approche ROMC Représentation VBA Excel est un outil d observation et de description qui vise, à partir de données de gestion et/ou de statistiques, à donner aux utilisateurs (banquiers, dirigeants, ) les moyens d identifier des alertes de gestion (taux peu compétitifs, partenariats avec assurance, ), de suivre l évolution de l activité ( par rapport aux autres banques) et de disposer d outils d investigation de sujets ou phénomènes particuliers(nouveaux clients, banques directement concurrentes par exemple). Il ne fournit pas les explications ni les commentaires qui relèvent d une phase de travail postérieure à l observation. Opération VBA Excel vise à présenter des informations utiles. Ceci implique qu il soit construit selon des critères de sélectivité en choisissant, parmi toutes les statistiques qu il est possible de produire, celles qui peuvent servir à aider le banquier dans sa fonction. Sa construction suppose donc une analyse des besoins, en ce qui concerne les missions à remplir et les besoins correspondants. Mémoire VBA Excel vise à fournir aux banquiers un outil de consultation commode, d une ergonomie aisée, de façon à minimiser les tâches de recherche de l information et de présentation des résultats, et à mémoriser les différentes simulations. Contrôle L application développée doit être aussi facilement utilisable par d autres utilisateurs (remplaçant, secrétaire, dirigeants, ). Il s agit de prévoir des moyens faciles de naviguer dans Excel, des messages explicites, des boutons pour exécuter les macros, 4
CHAPITRE III : LES MACROS 1. Les Macros «Aller» : Elles servent à faciliter la navigation de page en page, le comportement est le même pour les 2 boutons. Sub AllerAnalyseClientele() AllerAnalyseClientele Macro Macro enregistrée le 07/01/2006 par Bourguignon Mael La macro permet d activer la feuille de destination et de sélectionner une cellule Sheets("Analyse Clientele").Select ActiveWindow.SmallScroll Down:=-24 Range("F6").Select 5
2. Les Macros «effacer» : Elles effacent les contenus d une feuille. Sub Effacer() Effacer Macro Macro enregistrée le 05/01/2006 par Bourguignon Mael Elles sélectionnent une plage de cellules Range( _ "G13:J13,G13:J13,G15:J15,G17:J17,G19:J19,E21,G23:J23,G25:J25,G29:J29,G31:J31" ). _ Select Range("G31").Activate Elles les effacent Selection.ClearContents Range("G13:J13").Select Bouton qui permet d exécuter la macro Effacer 6
3. La Macro «Nouveau» : Sub Nouveau() Nouveau Macro Macro enregistrée le 11/12/2005 par Bourguignon Mael Sélectionne la cellule calculant le nombre de client maximum +1 pour déterminer une nouveau numéro Range("C37").Select Range("K41").Select La colle en K41 Se replace Range("G13:J13").Select Nouveau numéro inscrit 7
4. La Macro «Enregistrement» : Sub Enregistrement() Enregistrement Macro Macro enregistrée le 06/01/2006 par Bourguignon Mael Range("A12").Select Insert une ligne entière dans la table client en vue d y coller de nouvelles informations Selection.EntireRow.Insert Range("G13:J13").Select Range("B12").Select Collent les infos précédemment saisies une à une Range("K41").Select Range("A12").Select Range("G15:J15").Select Range("C12").Select Range("G17:J17").Select Range("D12").Select 8
Range("G19:J19").Select Range("E12").Select Range("E21").Select Range("F51").Select Range("F12").Select ActiveSheet.Shapes("Drop Down 82").Select ActiveWindow.SmallScroll Down:=12 Range("C56").Select Range("G12").Select Range("E56").Select Range("H12").Select Range("H55").Select Range("I12").Select Range("G29:J29").Select 9
Range("J12").Select Range("G31:J31").Select Range("K12").Select ActiveWindow.SmallScroll ToRight:=-5 Range("A4").Select Classe le tableau en fonction du numéro client pour avoir la dernière saisie en bas du tableau : Range("A3:K25").Sort Key1:=Range("A4"), Order1:=xlAscending, Header:= _ xlguess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal ActiveWindow.SmallScroll Down:=-18 Range("L36").Select Les données du nouveau client sont automatiquement enregistrées 10
5. La Macro «EnregistEvenement» : Sub EnregistEvenem() EnregistEvenem Macro Macro enregistrée le 06/01/2006 par Bourguignon Mael Comme précédemment, insertion d une ligne vierge dans le tableau pour y coller les informations relatives à un événement et trier le tableau par numéro d événement. Sheets("Historique Rel. Clients").Select Range("A19").Select Selection.EntireRow.Insert Sheets("Historique Rel. Clients").Select Range("C37").Select Sheets("Historique Rel. Clients").Select Range("B19").Select Range("O33").Select Sheets("Historique Rel. Clients").Select Range("C19").Select Range("O34").Select Sheets("Historique Rel. Clients").Select Range("D19").Select Range("O35").Select 11
Sheets("Historique Rel. Clients").Select Range("E19").Select Range("A4").Select Range("A3:E47").Sort Key1:=Range("B4"), Order1:=xlAscending, Header:= _ xlguess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal ActiveWindow.SmallScroll Down:=0 Range("A3:E47").Sort Key1:=Range("A4"), Order1:=xlAscending, Header:= _ xlguess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal ActiveWindow.SmallScroll Down:=24 Range("O36").Select La Macro «Comparer» : Sub Comparer() Comparer Macro Macro enregistrée le 06/01/2006 par Bourguignon Mael Copie/colle les informations de notre offre dans un tableau juxtaposé à celles de l offre concurrente. Les formules Excel se chargent de la comparaison. Range("E22").Select Range("N18").Select Range("H22").Select Range("N19").Select Range("E32").Select Range("N20").Select Range("H32").Select 12
Range("N21").Select Range("E42").Select Range("N22").Select Range("H42").Select Range("N23").Select Range("I18").Select Range("N26").Select Range("I20").Select Range("N27").Select 13
6. La Macro «EnregisterNoteCalculée» : Sub EnregistrerNoteCalculee() Macro enregistrée le 07/01/2006 par Bourguignon Mael Copie la note calculée en E42 pur la coller dans la table client au niveau du dernier client enregistrer et classe le tout par ordre croissant pour l avoir en bas de tableau. Range("E42:E43").Select ActiveWindow.SmallScroll ToRight:=3 Range("L25").Select ActiveWindow.SmallScroll ToRight:=-3 Range("A4").Select Range("A3:L25").Sort Key1:=Range("A4"), Order1:=xlAscending, Header:= _ xlguess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Analyse Clientele").Select Range("E44").Select 7. La Macro «EnregisterNoteSaisie» : Sub EnregistrerNoteSaisie() EnregistrerNoteSaisie Macro Macro enregistrée le 07/01/2006 par Bourguignon Mael Suit le même système que précédemment mais en copiant la note de la cellule L25 : ActiveWindow.SmallScroll ToRight:=4 Range("L25").Select Sheets("Analyse Clientele").Select 14
ActiveWindow.SmallScroll ToRight:=-4 Range("A4").Select Range("A3:L24").Sort Key1:=Range("A4"), Order1:=xlAscending, Header:= _ xlguess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Analyse Clientele").Select Range("E46:E47").Select 8. La Macro «NouveauEven» : Sub NouveauEven() NouveauEven Macro Macro enregistrée le 06/01/2006 par Bourguignon Mael Comme pour nouveau client, affiche (copie/colle) la valeur calculée dans la table Historique, c est-à-dire le nombre max d événement existants +1 Sheets("Historique Rel. Clients").Select Range("H4").Select Range("O31").Select 9. La Macro «Pack» : Sub Pack() Macro enregistrée le 05/01/2006 par Bourguignon Mael La 1ere partie sert a copier/coller les informations relatives au client Range("H55").Select Range("AB6").Select 15
ActiveWindow.SmallScroll Down:=-42 Range("I21:J21").Select Range("AC6").Select Range("AD6").Select ActiveWindow.SmallScroll Down:=-24 Range("J8").Select Range("AA6").Select ActiveWindow.SmallScroll ToRight:=-22 Range("A6").Select La 2 nd partie va filtrer le tableau de toutes les offres en fonction de critères (AA5 :AD6) pour en copier le résultat en AA10 :AW10 Range("A5:W17285").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Range("AA5:AD6"), CopyToRange:=Range("AA10:AW10"), Unique:=True ActiveWindow.SmallScroll ToRight:=26 Range("AA11").Select Le tableau de résultat en ensuite trier par ordre croissant en fonction du taux total le plus intéressant : _ Range("AA10:AW100").Sort Key1:=Range("AW11"), Order1:=xlAscending, Header :=xlguess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _, DataOption1:=xlSortNormal Enfin, les informations les plus intéressantes sont copier/coller dans la page PACK pour informer le client du pack qui lui est le plus adapté : Range("AB11").Select Range("D18").Select 16
ActiveSheet.Paste Range("AC11").Select Range("D20").Select Range("AD11").Select Range("I18").Select Range("AE11").Select Range("I20").Select Range("AG11").Select Range("E22").Select Range("AI11").Select Range("D28").Select Range("AJ11").Select Range("D30").Select 17
Range("AK11").Select Range("I28").Select Range("AL11").Select Range("I30").Select Range("AO11").Select Range("E32").Select Range("AP11").Select Range("AQ11").Select Range("D38").Select Range("AR11").Select ActiveWindow.SmallScroll Down:=6 Range("D40").Select Range("AS11").Select 18
Range("AM43").Select Range("I38").Select Range("AT11").Select Range("I40").Select Range("AV11").Select Range("E42").Select ActiveWindow.SmallScroll Down:=-24 Range("D42").Select ActiveWindow.SmallScroll Down:=-12 Les données sont inscrites directement ici, une fois la macro exécutée 19
10. La Macro «Résiliation» : Sub Résiliation() Résiliation Macro Macro enregistrée le 06/01/2006 par Bourguignon Mael La 1ere partie : on efface les informations ayant été déjà entrées. Sheets("Historique Rel. Clients").Select Range("K7:N8").Select Selection.ClearContents La 2em partie : on filtre le tableau d événement pour voir si en fonction du numéro du client et de la suite donnée à ses événements, il a eu des résiliations de contrat Range("B4").Select Range("B3:E89").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "K3:L4"), CopyToRange:=Range("K7"), Unique:=True ActiveWorkbook.Save Sheets("Analyse Clientele").Select Range("H28").Select Selection.NumberFormat = "m/d/yyyy" ActiveWorkbook.Save ActiveSheet.Shapes("Button 5").Select Selection.OnAction = "Résiliation" Range("J26").Select Application.Run "PROJETVBAEXCEL2005.xls!Résiliation" Range("E39").Select ActiveCell.FormulaR1C1 = "=IF(R[-11]C[3]="""",0,RC[4])" Range("I39:J39").Select ActiveCell.FormulaR1C1 = "100" Range("E39").Select ActiveCell.FormulaR1C1 = "=IF(R[-11]C[3]="""",0,-RC[4])" Range("E42:E43").Select ActiveCell.FormulaR1C1 = _ "=IF(R[-7]C+R[-6]C+R[-5]C+R[-4]C+R[-3]C<>0,R[-7]C+R[-6]C+R[-5]C+R[- 4]C+R[-3]C,"""")" Range("E44").Select Range("E46:E47").Select Applique des critères de mise en forme Selection.Font.Bold = True 20
Selection.Font.Italic = True With Selection.Font.Name = "Arial".Size = 14.Strikethrough = False.Superscript = False.Subscript = False.OutlineFont = False.Shadow = False.Underline = xlunderlinestylenone.colorindex = xlautomatic Le reste a été effacé pour gain de place car informations inutiles (mise en forme). End With 21