Excel et vba

281 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
281
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Excel et vba

  1. 1. Excel etVBA,version2011 Mise à jourdu 14 octobre La seconde partie de cette humeur,signéeBigalo,devraitêtre publiée le 2novembre.Enoutre, Françoism’a demandé si je pouvaisenfaire d’autres.J’ai accepté avecplaisir,maisquitte àrédiger desarticlesdemandantpasmal de préparation,je préfère lespubliersousmonnom, plutôtque sous un pseudonyme.LesprochainsarticlesserontdoncsignésMichel Gaboly. À bientôt! Présentation Un certainnombre d’habituésde Cukme connaissentdéjà,parce qu’il m’estarrivé d’intervenirdans lescommentaires,ycomprisparfoislorsde sujetspolémiques Toutefois,c’estlapremière humeurque j’ai le plaisirde rédiger.Elledevraitvousfaire découvrirdes aspectsméconnusd’Excel etenparticulierlapuissance que confèreauproduitVBA (VisualBasicfor Applications),l’environnementde développementassocié àlasuite Office. Cette humeurestrelativementtechnique,avecde nombreusescopiesd’écran,maiscompte tenude l’usage généraliséd’Excel danslesentreprises,j’espère qu’elle pourraintéresserpasmal de monde, d’autantplusque monapproche d’Excel estatypique :j’ai découvertle produit,danssaversion1,fin octobre 1985, il y a donc plusde 25 ans déjà,etj’ai toujourslargementexploitélespossibilitésde programmationd’Excel. Je travaillaisalorsdepuis5ansdans un cabinetd’expertise-comptable.J’avaisacquismapremière machine,unMac 128, environ1 an plustôt,et découvertavecMultiplance qu’étaituntableur. MultiplanexistaitalorssurApple IIetsur IBMPC,avec une interface texte.C’étaitdéjàrelativement puissantmaistrèspeuconvivial.LaversionpourMac a été une révolutiongrâce àson interface graphique :on pouvaitparexemple déjàélargirouréduire lalargeurdescolonnesàlasouris,etun clicsuffisait,biensûr,pourmettre descellulesengrasouen italique.
  2. 2. C’étaitvraimentl’ancêtred’Excel.Lesprincipaleslimitationsétaientlatailledesfichiersque l’on pouvaitalorsconstruire (de mémoire43 Koavec le Mac 128 et 57 Ko avecun Mac 512). Mais c’était une autre époque :lesMac n’avaientalorspasencore de disque dur,etne comportaientqu’un lecteurde disquettes,dontlacapacité étaitde 400 Ko.On pouvaityadjoindre unsecondlecteurde disquettes,externe,qui coûtaitune petite fortune.Lespremiersdisquesdursapparaissaientalors, maisétaientencore trèspeurépandus. Ilsont commencé àlentementse démocratiseravecle Mac Plus,sorti début1986, qui a introduitle port SCSI. Ce pour quoi j’attendaisalorsavecimpatience de pouvoirtesterExcel étaitlaprésence annoncée d’unlangage macro. Ce langage n’avaitrienàvoiravec VBA,apparuavec Excel 5, maispermettait déjàénormémentde choses,ycompriscertainesque VBA ne permetpasde réaliserdirectement. Avantd’entrerdansle vif dusujet J’ai enfineurécemmentl’occasionde me plongersérieusementdanslesnouveautésd’Excel 2011. Côté VBA,j’ai rencontré quelquesprogrès,maisaussi certainsbugs,dontunqui estparticulièrement grave à mesyeux.À plusieursreprises,j’ai eudesvelléitésde rédigerune humeurpourCuk.Cette foisj’ai franchi le pas,etenvoyé unmessage àFrançoispour lui demandersi le sujetl’intéressait. C’étaitclairementle cas. Le principal bugde VBA dansla version2011 d’Excel concerne lafonctionEvaluate.Celle-ci permet d’exploiterenparticulierlesvaleursassociéesàdesnoms.Pourfaire prendre conscience aux lecteurs à quel pointce bug estgênant,je me suisrenducompte que j’avaisbesoind’untrèslongpréambule pour montrerà quel pointl’usage desnomspeutêtre utile,ce que l’immense majorité des utilisateursne soupçonne pas. Cette introductions’estavérée pluslongue que je ne l’avaispenséaudépart,car le meilleurmoyen que j’ai trouvé pourillustrerl’intérêtdesnomsestundétourpar la paye Pourcette raison,l’humeurcomporterafinalement2parties.Ce n’estque danslaseconde que nous aborderonslesnouveautésd’Excel 2011, eten particulierlesbugsliésàVBA. L’usage desnomsdans Excel
  3. 3. Le cas le plussimple consisteàassocierunnom à une cellule ouàune plage de cellules.Maisonpeut égalementassocierunnomà une valeurparticulière,le plafondde sécuritésocialeparexemple, voire à une formule.Nousallonsexaminercesdifférentscas. À monsens,le thème permettantle mieux d’illustrerl’intérêtdesnoms,sansavoirbesoinde construire une feuillede calcul de grande taille,estlaréalisationd’unbulletinde paye.C’esteneffet un domaine complexe,qui estunbonexemplepourmontrercommentlesnomspeuventsimplifier leschoses. Il s’agitcependant,d’unsujetindigestepourcertains.Plutôtqu’abandonneràce stade la lecture de cette humeur,sautezplutôtlesexplicationsenitalique qui suivent. En résumé,ducontrat de travail entre l’employeuretle salarié,découle une rémunération mensuelle,le salaire de base.Unensemble de retenues(pourmaladie,oucongéssanssolde,par exemple) oude compléments(commelesheuressupplémentairesouune prime exceptionnelle) conduitau salaire brut. Doiventensuiteêtre calculéesdescotisationsdontlesbasesde calcul etlestaux varient.Ces cotisationspeuventcomporterune partsalariale et/ouune partpatronale.Dansle cadre de cette humeur,nousnouslimiteronsàlapartie salariale descotisations.Celles-ci sontenprincipe déductiblesfiscalement,àl’exceptionnotable de laCRDSetd’une part importante de laCSG. Le salaire brut,diminué desretenuescorrespondantàlapart déductible descotisations,représente le netimposable.Celui-ci,moinsles cotisationsnondéductibles,etdifférentséléments complémentaires,venantenplusouenmoins(partsalariale desticketsrestaurant,remboursement de frais,… ) conduitenfinaunetà payer. Techniquement,ce sontlesbasesde calcul desdifférentescotisationsqui représententladifficulté essentielle.Eneffetlestaux ne sontqu’unpourcentage àentrerdansle modèle,àappliqueraux basesconcernées. Pourcalculercelles-ci,il fautprendre encompte le plafondURSSAF,défini annuellement, actuellement2946 € par mois.Certainescotisations,ditesnonplafonnées,s’appliquentausalaire brut,d’autresaux tranchesA, B et C (celle-ci ne concernantqu’unnombre infimede salariés).Enfin,
  4. 4. la CSG etla CRDS ont pourbase le salaire brutdiminué d’un abattementde 3% pour frais professionnels. La tranche A estla partie dusalaire brutinférieure ouégale auplafond.Latranche B estl’éventuelle fractiondu salaire dépassantle plafond.Cependant,latranche Bcomporte elle-mêmeunplafond, égal à 4 foisle plafondde latranche A, soit11 784 € par mois.La tranche B estdonc au maximum égale à 3 foisle plafondURSSAF(éventuelle partdusalaire comprise entre 1et4 foisce plafond. EnfinIl existe une tranche C,au-delàde latranche B, avecun plafondégal à8 foisle plafondURSSAF, soit23 568 € par mois.Trèspeude salariéssontconcernésetnousnégligeronslescotisationsassises sur cette tranche.Elle a égalementunautre effet:depuisle premierjanvier2011, pour lessalariés atteignantcette tranche,l’abattementde 3% appliqué surle salaire brutpourle calcul de labase de la CSG etde laCRDS est plafonné etne s’appliquepasau-delàduplafondde latranche B.Nous négligeronségalementcetaspect. En principe le calcul destranchesne se faitpas moispar mois.Il fautraisonnersurl’année civileouà défautsurla période de présence dusalarié aucoursde l’année.Il fautdoncdéterminerlestranches sur la base descumulsetnon surlesseulschiffresd’unmoisparticulier.Compte tenude notre sujet, nousferonségalementl’impassesurcetaspect. Ce que je viensde décrire correspondàlarèglementationfrançaise etpeutdésorienternosamis suisses,maisrappelonsqu’ilne s’agitici que d’illustrerune fonctionnalité d’Excel. Pourréaliserunbulletinde salaire avecExcel,onadonc essentiellementbesoinde connaître le salaire brut,laliste descotisationssalariales,etpourchacune d’ellessabase etson taux. Les taux etle plafondde latranche A sontcommuniqués parlesdifférentesadministrations(URSSAF, et caissesde retraite principalement) audébutde chaque année,avecparfoisdesmisesàjourdes taux en coursd’année.Nousallonsvoircommentcalculerlesbasesde calcul. Nousallonssuccessivementréaliserunbulletinde salaire simplifié pour4cadres,Moreau,Martin, Blanchardet Dupont,ayantrespectivementune rémunérationmensuelle de 2800, 5 000, 12 000 et 15 000 €. Pour celanousallonsdéterminerlesformulesnécessairesaucalcul desbasesdes cotisations,puissimplifierlalecture dubulletinendéfinissantdesnoms. Bulletinde paye 1
  5. 5. Fig.1 — Modèle simplifiédubulletinde Moreau,aveclaliste descotisationsetleurtaux,maisavec desbasessousforme de texte (cellulesB11 à B24), qu’il vafalloirremplacerparlesvaleurs correspondantes. Pourcalculerlescotisations,nousallonsdevoircréerlesformulesdescellulesB11à B24. Pour commencer,le plussimpleestd’entrerenB11 la formule « =E6 ».La base de calcul est le salaire brut,comme indiqué dansl’illustrationci-dessus,etcelui-ci (2800 €) figure encelluleE6.La formule estsimple,maisce seraitencore plusclair,si onpouvaitécrire « =Brut ». C’estheureusement possible,ocondition,biensûrd’avoirdéfinile nom ! Commentcréerunnom La méthode classique consiste àsélectionnerlacellule (oulaplage de cellules) que l’onveut nommer,puisàlancer une commande dumenuInsérer.Bienque celane soitplusindiqué dansle menu,cette commande estheureusementaccessibleparraccourci clavier.Pendantlongtemps,le raccourci a été ⌘ + L. Il fautmaintenantutiliseràlaplace,Ctrl + L ou ⌘ + F3. Définirunnom… Fig.2 — L’accès à la zone de dialogue Définirunnom Apparaît alorsune zone permettantd’entrerle nomdésiré,etde modifiersi nécessaire,ce àquoi le nomfait référence.Si lacellule situéeimmédiatementàgauche,ou à défaut,immédiatementau- dessusde lacellule active contientdutexte,celui-ci estexploité poursuggérerunnomà donnerla cellule,enl’occurrence « Salaire_Brut». Définirunnom2 Fig.3 — Le nom suggéré,etlaréférence proposée enassociationaunom, E6 étantla cellule active, et D6 (située immédiatementàgauche de E6) contenant« Salaire Brut »
  6. 6. J’ai personnellementle caractère « _ » (underscore) enhorreur.À maconnaissance,il estétrangerà la typographie française,etenoutre,je le trouve hideux !Le plussouvent,je me contente de le supprimer,etde mettre une majuscule àchaque motcomme « SalaireBrut».Toutefois,pourun bulletinde salaire,« Brut» suffit;le terme estd’usage courantet ne laisse place àaucune ambiguïté. Définirunnom3 Fig.4 — Le nom modifié.Laréférence estcorrecte. Dans la zone Faitréférence à,ontrouve « =Moreau!$E$6 ». Moreau estle nom du salarié concerné,maissurtoutcelui de l’ongletassociéàlafeuille,comme on peutle voir,enrouge et blanc,enbas de la figure 1. Le pointd’exclamationestdansExcel le symbole d’appartenance. Quant à $E$6, cela désigne lacellule E6,enprécisant qu’il s’agitd’uneréférence absolue,c’est-à-dire que le nom entraind’être défini estindépendantde lacellule active. « =Moreau!$E$6 » signifie donclacelluleE6de la feuilleMoreau,définiede manière absolue(par oppositionàrelative,E6ou, à mixte,$E6 ou E$6). Maintenantqu’ona défini unpremiernom, onva l’utiliserenentrantenB11 laformule « =Brut », pour faire apparaître notre première base. Bulletinde paye 2 Fig.5 — La formule active estB11, ce que l’onpeutvérifiertoutenhautà gauche de l’illustration,et la formule est« =Brut »,comme le montre la barre de formule (au-dessusde l’en-têtede lacolonne B) On a maintenantbesoinde déterminerlabase CSG. Onpourraitentrerdans lescellulesconcernées« =Brut * 97% ».Je rappelle que les97%résultentd’unabattementde 3% pour fraisprofessionnel évoqué plushaut.J’ai vuune formule de ce type utilisée dansunexemplede bulletinde salaire au
  7. 7. formatExcel téléchargeable surInternet.Une telle formule,contenantunnombre estune aberration pour de multiplesraisons. Le principe même d’untableurestd’avoirdescellulesavecdesvaleurs,etd’autresavecdes formules,maisonne mélange pasles2.En voici lesprincipalesraisons: - Si une valeur,qu’il s’agissedu coursd’une devise,dutaux d’une cotisationoude toutautre chose doitêtre mise à jour,il fautpouvoirle faire aisément.Pourcelail fautqu’ellesoitstockée dansune cellule indépendante,afinde pouvoirlarepérervisuellementsansdifficulté.On metalorsà jourla cellule concernée,ettouteslescellulesqui sontliéesàl’élémentqui vientd’être misàjourseront recalculées. - Si au contraire on entre une valeurauseind’une formule,comme dans« =Brut * 97% », le jourou l’abattementserasupprimé ousontaux modifié,il faudrapourcorrigerle modèle de bulletinde salaire repérertouteslescellulescontenantlaformule àadapter,ici 3 cellules,B12,B23 et B24. Dans le cas d’unbulletin,pourpeuqu’onaitcréé unmodèle de classeuravec12 onglets,(1par mois),ce ne sont plus3 mais 36 formulesqui devrontêtre corrigées.Pourpeuqu’onenoublie 1,voire plus,le modèle ne seraplusfiable,etce qui accentue le problème,cette perte de fiabilité ne serapas flagrante. - Enfin,si ensaisissantune valeurdansune formule,onfaitune faute de frappe,làencore,onaura un résultaterroné sansmême enêtre conscient,tandisqu’enayantutilisé une cellule spécifique pour entrerlavaleur,l’effetd’unefaute de frappe estclairement repérable. À mesyeux,une valeurintégrée àune formule estune faute professionnelle.Une telle formule doit être taboue.J’ai décritici unexemple détailléde résultataberrantrésultantd’une formule de ce type. Le coefficientde 97%permettantde déterminerlabase CSGà partirdu brut doitdoncêtre stocké explicitementdansune cellule.Ni cette valeurni le plafondn’ontàapparaître sur le bulletin.On pourraitdéfinirune zone d’impressionetlesstockeràl’extérieurde celle-ci,maisil estsouventplus simple de grouperlesélémentsde cette nature dansune feuillespécifique,appeléeici Param (diminutif de paramètres). Zone de noms1
  8. 8. Fig.6 — Le taux permettantde détermineràpartir dusalaire brut,la base de calcul de laCSG Une foisentré le taux de 97% en cellule C6,il fautcréerle nomcorrespondant.Pourallonsvoir commentle faire sanspasserpar le dialogue Définirunnom…,de lafigure 3. La figure 7 illustre la barre de formules,telle qu’elleapparaîtenfigure 6, c’est-à-dire « Param» lafeuille active,etC6la cellule active.Labarre comporte à sonextrémité gauche,une zoneallongée avecensoncentre « C6 »,l’adresse de lacellule.Cette zone se nomme lazone de noms,etpermetde faire pasmal de choses. Zone de noms1 Fig.7 — La barre de formules,telle qu’ellese présente quandlacellule C6de la feuille « Param» est active.Il s’agitd’undétail (lapartie supérieure),de lafigure 6. Tout d’abord,si on clique danslazone de noms,elle se transforme ainsi : Zone de noms2 Fig.8 — La barre de formules,aprèsqu’onaitcliqué danslazone de noms(àson extrémitégauche), C6 étanttoujourslacellule active. On se rendcompte que la zone de nomsest une zone éditable. L’adressede lacelluleest sélectionnéeetseraécrasée parle texte que l’onvasaisir.Il suffitalorsd’entrer« TxBaseCSG»,etde valideravecl’une destouchesEntrée ouRetour.Lazone de nomsse présente dorénavantainsi : Zone de noms3 Fig.9 — La barre de formules,aprèsqu’onaitentré « TxBaseCSG» dansla zone de noms,C6 étant toujourslacellule active.
  9. 9. Le texte entré aremplacé l’adressede lacellule,etunnoma été créé et associé àla cellule C6, comme on peutaisémentle vérifierenpassantparDéfinirunnom…: Définirunnom4 Fig.10 — Contrôle que le nomdéfini enpassantparlazone de noms,a bienété prisencompte. La zone de nomspermetdoncde nommerextrêmementfacilementune plage de cellules(une unique cellule n’enétantqu’uncasparticulier).Il suffitde sélectionnerlaplage concernée,puis d’entrerle nomsouhaité.Celane fonctionne toutefoisque si le nomn’existepasdéjà.Alorsque en passantpar le dialogue Définirunnom…,il n’ya pas cette contrainte.Si onrecrée un nomdéjà utilisé,l’occurrence antérieure seradétruite,seuleladernièreréférence associéeaunomsera valable. Nousallonsutilisercette facilité qu’offrelazone de noms,pourcréer3 nomssupplémentaires associésrespectivementaux cellulesC2,C3 etC4 de la feuille « Param»,pour le plafonddes tranchesA, B etC. Il resteraensuite,pourcompléterlafeuille Param, àcalculer lesplafondsdes tranchesB et C, enmultipliantle celui de latranche A,par le coefficientcorrespondant,encolonneB. Pource faire,latechnique la+ rapide consiste àsélectionnerlescellulesC3etC4, à entrerlaformule, et à validerenune seule fois,grâce àl’emploi conjointdestouchesCtrl etRetour: PlafondstranchesBet C Fig.11 — La formule permettantde calculerle plafondde latranche B.En ayantpréalablement sélectionné les2cellulesC3etC4, et envalidantavecCtrl + Retour, on obtientles2plafondsenune seule manip.Laformule présente enC4faitbienévidemmentréférence àB4 etnon à B3 (référence relative). Aprèsavoirvalidé laformule,cliquerdanslazone avec2 flèches(au-dessusducurseur,surla figure 12), permetd’illustrerencore une autre fonctionnalitéde lazone de noms: elle permetde listerles plagesqui ontété nomméesde manière explicite.Enoutre,si onclique surl’undesnomsde la liste, la plage correspondante estautomatiquementsélectionnée. C’estextrêmementpratique pourles tableaux de grande taille (plusieurscentainesoumilliersde lignes).Avoirnommé lesprincipales zonespermetalorsde se déplaceraisémentmalgré lataille dutableau.
  10. 10. Plagesnommées Fig.12 — La zone de nomspermetégalementde listerdeszonesnommées,etd’yaccéderenles choisissantsimplementdanslaliste déroulante. Le déplacementn’estpaslimitéàlafeuilleactive.Si onclique sur« Brut »,on passe de la feuille« Param » à la feuille « Moreau» : Zone de noms2 Fig.13 — La cellule nommée « Brut»,sur la feuille« Moreau».On y a accédé enla choisissantdans la liste de lafigure 12. La zone de nomsoffre encore d’autrespossibilités:si onsélectionneàlasourisune plage comportantau moins 2 cellulescontigües,pendanttoute laphase de sélection,lazone de noms indique le nombre de lignesetde colonnessélectionnéesàtoutinstant.L’information,éphémère, cesse d’être affichée dèsqu’onlâche le boutonde lasouris.C’estune aide précieuse lorsqu’ona besoinde sélectionnerunnombre précisde ligneset/oude colonnes: Zone de noms3 Fig.14 — Lors de la sélectiond’uneplage comportantaumoins2cellulescontigües,lazone de noms indique précisémentle nombrede lignesetde colonnessélectionnées,ici « 6L x 2C », pourdésigner un rectangle de 6 lignespar2 colonnes. Enfin,dansla figure 11, lazone de nomsaffiche lafonctionSOMME.Dès lorsqu’onestentrain de saisirune formule (commençantparle signe égale,ce ne sontpluslesnoms,maisles10 dernières fonctionsutiliséesqui sontlistéessi onclique surlesflèchesindiquéesparle curseursurla figure 12. Aprèscette longue digressionsurlazone de noms,revenons — enfindirontcertains — aucalcul de nos base de cotisations.Pourlabase CSG encellule B12du bulletin,il suffitde multiplierle brutpar le taux correspondant,ce que faitla formule de lafigure 15 :
  11. 11. Formule bulletinenB12 Fig.15 — Formule permettantde calculerlabase CSG. Jusqu’àprésent, ons’estcontenté d’utiliserdesnomscorrespondantchacunàune cellule.L’étape suivante vaassocierdesformulesaux noms:Pourla tranche A, il s’agitde la partie duBrut inférieure ou égale auplafond.Chacune de cesvaleursétantassociée àunnom, la solutionpourdébutant consiste àutiliserlafonctionSI().Voici sasyntaxe,pourceux qui ne laconnaissentpas: =SI(Condition;Résultatsi conditionremplie;Résultatdansle cas contraire) Celasignifiequ’il fautlui fournir3arguments: - La conditionàtester - Le résultatàaffichersi laconditionestremplie - Le résultatàaffichersi laconditionn’estpasremplie Celadonneraitici : =SI(Brut< PlafondTrA;Brut;PlafondTrA) Celafonctionne maisrisquede devenircompliquéquandil s’agirade déterminerlestranchesBetC. En outre,il existe une fonctionbienmieux adaptée,MIN() pourminimum.Latranche A sera ainsi définie : Formule bulletinenB12
  12. 12. Fig.16 — Cette fois,le nomdéfinin’estpasassocié àune cellule,maisàune formule. Quant à la tranche B, c’estla fractionduBrut qui dépasse le plafondde latranche A.En première approximation,ce serait: = Brut - PlafondTrA Toutefois,si le salaire Brutestinférieurauplafondde latranche A (2 946 €), ce qui estle cas ici,il n’y a pas lieud’aboutiràune tranche B négative.Nousavonsprécisé plushaut,que nousnousplacions dans uncas simplifiéoùonraisonne surles seulesdonnéesdumoisencours,alorsqu’il peuten réalité yavoirdesrégularisations,caril fauten réalité raisonnersurlescumulsdepuisle 1erjanvier (oul’entrée dusalarié dansl’entreprise s’il estarrivé encoursd’année).Onconsidéreraici qu’il s’agit d’unbulletinde janvier,etque doncaucune régularisationn’estnécessaire.LafonctionMAX() va nouspermettre d’éviterlesvaleursnégatives,enprenantzérosi ladifférence estnégative : =MAX(0;Brut - TrancheA) S’il ya effectivement une tranche B,il faut égalementprendre encompte sonplafond;elle ne peut être supérieure àladifférence entre lesplafondsdestranchesA etB, soit3 foisle plafondde la tranche A. Voici laformule complètepourlatranche B : =MIN(PlafondTrB- PlafondTrA;MAX(0;Brut - TrancheA)) Ce plafonnementaveclafonctionMIN() ne concerne qu’une infime minorité de salariés,maisil faut tout de même entenircompte. Formule bulletinenB12 Fig.17 — Formule permettantde déterminerlatranche B.MalheureusementdanslesversionsMac d’Excel,lafenêtre n’estpasredimensionnable,etne permetde voirqu’une partie de laformule.
  13. 13. La formule esttroplongue pourêtre intégralementvisible danslafenêtreDéfinirunnom…C’estune desdéceptionsd’Excel 2011 : depuislaversion2007, lesversionsWindowsd’Excelpermettent d’agrandirsanslimitationcette fenêtre,qui pardéfautestridiculementpetite.Une autre fonctionnalité,trèsutile aégalementété introduite avecExcel 2007, la possibilitéd’associerà chaque nomun commentaire.Malheureusementces2élémentssonttoujoursabsentsde laversion 2011 pour Mac ;-(( Le calcul de la tranche C est comparable àcelui de la tranche B : =MIN(PlafondTrC - PlafondTrB;MAX(0;Brut - TrancheA - TrancheB)) A ce stade il reste à remplacerle texte indicatifentré encolonne Bpardesformulesfaisantappel aux noms,selonune substitutiontrèssimple : =Brut * TxBaseCSGau lieude « Base CSG ». On auraitd’ailleurspudéfinirle nom« Base CSG » associé à cette formule.Pourêtre toutà faitcorrect,il faut tenircompte que l’abattementde 3% est supprimé au-delàde latranche B. En négligeantlestrèsraressalariésdépassantlatranche C(prèsde 300 000 € par an),la formule correcte est(TrancheA +TrancheB) * TxBaseCSG+ TrancheC,et cela vaut lapeine de lui associerle nom« BaseCSG» =TrancheA au lieude « Tranche A ». =TrancheB au lieude « Tranche B ». =TrancheA + TrancheBau lieude « Tranche A + Tranche B ». À part la première formule,il suffitd’ajouterle signe égale etde supprimerlesespacesauseinde « Tranche A » et de « Tranche B »,car ceux-ci ne sontpasautorisésdanslesnoms. Maintenantque lesbasessontentrées,onpeutmettre enplace le calcul descotisations.Si nous l’avionsfaittroptôt,nousaurionsobtenudesvaleursd’erreur,carlesnomsn’étaientpasencore définis.EnD11 par exemple,pouravoirle montantde lacotisationcorrespondante,onauraitpu entrersimplement« =B11 * C11 ».Les espacesauseinde la formule sontfacultatifs,maisaméliorent
  14. 14. la lisibilité. Cette formuleauraitpuensuite être recopiéeversle basjusqu’enD17 pourles cotisationsfiscalementdéductibles,etreprise enC23et C24 pourlescotisationsnondéductibles.Ici encore,définir2noms va rendre lesformulesbien+lisibles:sélectionnonslaplage B11:B24 et associons-luile nom« Base »,grâce à lazone de noms. Bulletinde paye 3 Fig.18 — Définitionde laplage Base Répétonsl’opérationaveclaplage C11:C24 et le nom« Tx ».Maintenantque touslesnoms nécessairesontété définis,il suffitd’entrerdanslescellulesD11:D17 et D23:D24, la simple formule« = Base * Tx », etlescotisationssontcalculées,enutilisantpourchacune,labase etle taux situéssur la même ligne,sansindicationsupplémentaire : Bulletinrempli 1 Fig.19 — Un premierexemple de bulletinsimplifiémaisfinalisé! Le premierbulletinfaisaitapparaître une base nullepourlaretraite complémentaire tranche B,et aucune descotisationsn’étaitplafonnée.C’estnormal,carle salaire brut(2 800 €) étaitinférieurau plafondde latranche A (2 946 €) pour 2011. Si on faitpasserle salaire brutà 5 000 €, lescotisations assisessurla tranche A sontplafonnées,etune tranche Bapparaît, égale à 2 054 (cellule B17). Bulletinrempli 2 Fig.20 — Dans ce deuxième exemple,de latranche Bapparaît, car le salaire brutdépasse le plafond de la tranche A. En portant le brutà 12 000 €, on dépasse le plafondde latranche B.Le total destranchesA etB est égal à ce plafond(cf.figure 12).Lestranchessemblentdonccorrectementcalculées. Bulletinrempli 3
  15. 15. Fig.21 — Avecce troisièmebulletin,le brutdépasse 4foisle plafondde latranche A.Celaa pour conséquence que latranche A atteintsonplafondetlatranche B estégale à 3 foisce plafond.Le total des2, qui sertde base de cotisationpourle chômage estbienégal auplafondde latranche B, tel qu’il apparaîtsur la feuille « Param»,en figure 12. Enfin,si on faitpasserlarémunérationtotale à15 000 €, soit3 000 de plus,on constate que labase augmente elle aussidumême montant,ce qui prouve que lasuppressionde l’abattementde 3% pour le calcul de la base CSG, au-delàduplafondde latranche B fonctionne également. Bulletinrempli 4 Fig.22 — Un dernierbulletinpermetde vérifierle boncalcul de labase CSG. La suite auprochainépisode … Bigalo 18 commentaires Eh ben,dis! Si ce n’estpas duprécis,ça… Merci beaucoup.Je pense que pasmal de gensvontse référeràton article lorsqu’ilsenauront besoin. Bienvenuedonc!
  16. 16. Alorsça, je kiffe :) C’estclair,netet précis! Quelquechose qui me seratrèsutile! Merci beaucouppourl’article etbienvenue danscélébrissimeCRC(ClubdesRédacteurs-tricesde Cuk)!! Bravo pourcet article si bienécrit! Effectivement,je m’yréféreraiaumomentvoulu. WOW. Et bienje suiscontentde ne faire desfichesde salaires –pourl’instant– qu’enSuisse…Bravo pour cetarticle complet. Merci à tous pources 4 premièresréactions,toutespositives;-)) etaussi pourl’accueilparmi lesCRC ! Si vous avezdesquestionstechniques,n’hésitezsurtoutpas. Félicitationspourcette pédagogie !
  17. 17. J’espère àprésentune humeursurlestableaux croisésdynamiques! Biensénégalaisement, Un immense BRAVOpourlaqualité de cetarticle.Il allie rigueur,facilité de compréhensionetmême une petite pointe d’humour,ce qui n’estpasforcémentévident. Bravo pourta première humeurBigaloetbienvenue dansle clubdesrédacteurs:) ConcernantVBA dansExcel 2011, c’estextrêmementdécevantde réaliserque Microsoftn’apas respecté lacompatibilité avecle VBA de Excel Xni même avecle VBA de Excel Windows! Le diable estdansle détail maisil ya quelquesfonctionsouconstantesVBA qui ontlégèrement changé de nomsoulégèrementchangé de résultat,ce qui rendincompatible ducode VBA unpeu sophistiqué… Mais je devance ta seconde partie… La formule estsimple,maisce seraitencore plusclair,si onpouvaitécrire « =Brut ». Concernantla1ère partie,je t’avoue que,àtort ouà raison,je ne suispas ungrand fan de nommer lesplagesde cellules… Personnellement,je trouve qu’onyperdvite sonlatinaveclesnomsetque lesréférencesde cellules permettentde facilementcontrôlerque lescopier/collerde formulesse fontcomme onle souhaite…
  18. 18. Et pourtant je travaille aussi surde grandstableaux (dizainesde colonne etcentainesde lignes).Je pense enfaitque le nommage de plagesdoitêtre adapté àun type de tableauoud’usage etqu’il n’estpasla solutionmiracle pourtout;) En tout cas, beauboulotexplicatif etpédagogique :) Merci Félicitationspourcette pédagogie ! J’espère àprésentune humeursurlestableaux croisésdynamiques! Biensénégalaisement, Merci pourlesfélicitations. En ce qui concerne lesTCD (lestableaux croisésdynamiques),je n’ensuispasunchaudpartisan. Ceci dit,ma positionestbiaisée :quandlesTCD sontapparus(avecExcel 4 peut-être ?),celafaisait déjàde nombreusesannéesque je réalisaisdesmacros.J’ai alorsregardé brièvementcommentcela fonctionnait,maisn’ai pasété enthousiasmé. En particulier,j’ai trouvé que celamanquaitde souplesse quantàlamise enforme. Par programmation,onpeutréaliserassezfacilementce que fontlesTCD,sansavoirà subirleurs limitations.Parconséquent,àtitre personnel,lesTCDne m’apportaientpasgrand-chose. Toutefois,je conçoisque pourunutilisateur« normal »,lesTCD sontun outil puissant,qui fournit dessynthèsessansdevoirfaire d’autre effortqu’apprendre àmaîtriserlesTCD.
  19. 19. Une humeurlesconcernant ne me tente pasbeaucoup.Toutefois,ce qui seraitenvisageable,estune humeursur1 desnombreusesfonctionsméconnuesd’Excel,<acronymtitle=» »>SOMMEPROD</acronym> qui estselonmoi plussimple àmaîtriserque lesTCD,etpermet d’obtenirtoutce qui se fait classiquementaveceux. Superarticle merci. Pas de chance,j’auraisaussi aimé une suite sur… lestableaux croisésdynamiques;-( Merci @ Bigalo, Je suisrassuré sur le caractère nonindispensabledesTCD,etd’accordsur leurmise enforme problématique… Quant à moi,je suisunminuscule utilisateurd’Excel,etle peuque j’enconnaisme permet,après extractionde quatre fichiersde sortirenmoinsd’une heure15 synthèsesettableaux de bord budgétaires… Le pluslonga été de figerunmodèle fiable,ettouteslesformulesqui vontbien,eteffectivement, j’arrive àproduire destableaux dontje soigne particulièrementlaforme (ce que ne permettraitpas un TCD) Je me suisamusé à listerlesfonctions,etsymbolesemployésàcette fin,etil yena trèspeu,enfait, trèsbasiques: =SOMME.SI
  20. 20. =SOMME =SOUS.TOTAL(9 =SOUS.TOTAL(3 =STXT =SI =GAUCHE =MOIS =RECHERCHEV symbole $ symbole & Riende plus! Biensénégalaisement,
  21. 21. Bravo etn’hésitezpasàcontinuerdansde prochainsarticlesà noustransmettre votre savoiren matière d’Excel. Même quandon utilise souventce logiciel,il recèle despanscachésqu’il estagréablede découvrir de façon aussi claire etdétaillée. Bravo pourta première humeurBigaloetbienvenue dansle clubdesrédacteurs:) ConcernantVBA dansExcel 2011, c’estextrêmementdécevantde réaliserque Microsoftn’apas respecté lacompatibilité avecle VBA de Excel Xni même avecle VBA de Excel Windows! Merci pourla bienvenue. Je voisque tu citesExcel X etnon Excel 2004. Toi aussi,tuconsidères(c’estmoncas) que pourVBA, la version2004 étaittropinstable ettropbaguée,comme le laisse pensercette page ? Concernantla1ère partie,je t’avoue que,àtort ouà raison,je ne suispas ungrand fan de nommer lesplagesde cellules… Sur ce plan,il y a probablementune partde personnalitéqui faitapprécierplusoumoinsl’usage des noms.« Desgoûtset descouleurs!» Personnellement,je trouve qu’onyperdvite sonlatinavecles nomsetque lesréférencesde cellules permettentde facilementcontrôlerque lescopier/collerde formulesse fontcomme onle souhaite… Un des moyensde ne pasy perdre sonlatinestde collerrégulièrementlaliste desnomsdansune feuille:
  22. 22. Comme tu le saissansdoute,maispas forcémenttoutle monde,onyaccède de la même façonque pour définirunnom(figure 2),enchoisissantsimplementl’optionsuivante,« Coller…». Voici le résultatdansle casde notre bulletinsimplifié: Celapermetde s’assurerque lesdéfinitionssontsatisfaisantes.Ce qui estpratique,enmatière de contrôle,parrapport aux formulesd’untableau,c’estque touteslesinfossontgroupéesdansune zone unique de 2 colonnes.Pardéfautlesnomssontcassésparordre alphabétique,maisrien n’empêche d’utilisercomme critère de tri laseconde colonne. Je n’ai pas encore eule tempsde lire l’article,maisvule bienqu’onendit,je ne tarderai pas… En parlantde tableurs“ancêtres”,je voudraisrendre hommage aux développeursde CricketGraph: l’applicationadû être développée aumilieudesannées80,et elle fonctionnaitencore parfaitement jusqu’àladernière mise-à-jourdusystème OS9,en2001. Les programmeursavaientdûeffectueruntravail d’orfèvre pourarriveràune telle perfection… J’utilisebeaucouplesnomspournommerlesplagesde cellules.C’estparticulièrementutile qu’onest oblige d’ajouteroude retirerdeslignesaune plage donnée,etque parlasuite une macro vient manipulercette plage.Dansce cas lamacro utilise le nomde laplage toutsimplement.J’utilise beaucoupde choix surliste,pourceux qui ne connaissentpas,celapermetfaire apparaitre une liste déroulante dansune cellule.Ceslistesévoluentavecle temps(ajoutouretraitde donnée).Le faitde nommerceslistespermetde s’affranchirde leurséventuellesredimentionnement.Danscesdeux cas nommerdesplagesde cellulespermetde solutionnersimplementdesproblèmesdifficilesarégler autrement.
  23. 23. Merci pource billettrèsintéressant.Je suisutilisateur(occasionnel àvrai dire) d’Excel depuisles toutespremièresversionsetj’ai toujourstrouvé ce logiciel puissantettrèsbienfait.Il s’agitpourmoi d’une desraresréussitesabsolumentincontestablesde Microsoft. VBA estun outil puissant,que j’ai apprissurle tas.Je suistoujourspreneurd’infospourcompléter mesconnaissancesàce sujet.J’attendsdonclasuite avecimpatience. Je voisque tu citesExcel X etnon Excel 2004. Toi aussi,tuconsidères(c’estmoncas) que pourVBA, la version2004 étaittropinstable ettropbaguée,comme le laisse pensercette page ? Nonen fait,je ne suisjamaispassé à Office 2004, 2008… En fait,j’ai gardé Office Xjusqu’en2008 date à laquelle j’ai basculépourOpenOffice puisdésormaispourLibre Office. Euh… pourquoi tufaispas toutça directementenSQL?:o) Boutade mise àpart, très bonarticle,pleinde conseilsfrappésaucoindubon sens. Excel c’estun vrai bonheurà utiliser,etj’ai été biencontent de constaterlaréintroductiondes macros dansla dernière version.Parcontre ce logiciel esttellementpuissantqu’onse metvite àfaire n’importe quoi,doncil fautunminimumde discipline si onveutque lestableaux soient compréhensiblespard’autresutilisateursque l’auteur. Ajouteruncommentaire – Alerte pare-mail

×