{"id":520,"date":"2011-01-20T14:42:14","date_gmt":"2011-01-20T13:42:14","guid":{"rendered":"http:\/\/www.auditsi.eu\/?p=520"},"modified":"2016-02-07T18:50:45","modified_gmt":"2016-02-07T17:50:45","slug":"audit-de-donnees-et-vba-automatisation-du-formatage-des-donnees-numeriques","status":"publish","type":"post","link":"https:\/\/www.auditsi.eu\/?p=520","title":{"rendered":"Audit de donn\u00e9es et VBA : automatisation du formatage des donn\u00e9es num\u00e9riques"},"content":{"rendered":"<p style=\"text-align: justify;\">Lorsque l\u2019auditeur exploite des donn\u00e9es extraites d\u2019un syst\u00e8me informatique, il est fr\u00e9quemment confront\u00e9 \u00e0 des formats num\u00e9riques incompatibles avec les formats propos\u00e9s par Excel. L\u2019auditeur doit alors retraiter manuellement les \u00e9l\u00e9ments chiffr\u00e9s, ce qui s\u2019av\u00e8re fastidieux sur des listes de donn\u00e9es cons\u00e9quentes.<\/p>\n<p style=\"text-align: justify;\">Le <a title=\"Articles sur le langage de programmation VBA\" href=\"http:\/\/www.auditsi.eu\/?cat=215\">VBA<\/a> peut, dans ce cadre, s\u2019av\u00e9rer beaucoup plus productif.<\/p>\n<p style=\"text-align: justify;\">La <a title=\"EXCEL : Cr\u00e9er une fonction en VBA\" href=\"http:\/\/www.auditsi.eu\/?p=513\">fonction<\/a> et la proc\u00e9dure VBA propos\u00e9es (intitul\u00e9es respectivement <em>NettoyageNombre<\/em> et <em>NettoyageNombreS\u00e9lection<\/em>) retraitent les donn\u00e9es qui leur sont soumises afin qu\u2019elles soient reconnues par Excel comme des donn\u00e9es num\u00e9riques.<\/p>\n<p style=\"text-align: justify;\">Retrouvez l&#8217;article complet en t\u00e9l\u00e9chargement en bas de page.<\/p>\n<p><strong><em>Extrait de l&#8217;article :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><strong><span style=\"text-decoration: underline;\">Exemple de formats de donn\u00e9es rencontr\u00e9s\u00a0et traitements effectu\u00e9s\u00a0par la fonction et la proc\u00e9dure :<\/span><\/strong><\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"102\"><em>Conventions<\/em><\/td>\n<td valign=\"top\" width=\"132\"><em>Formats<\/em><\/td>\n<td valign=\"top\" width=\"221\"><em>Probl\u00e9matique Excel<\/em><\/td>\n<td valign=\"top\" width=\"164\"><em>R\u00e9ponse apport\u00e9e par la fonction<\/em><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\">S\u00e9parateur de milliers<\/td>\n<td valign=\"top\" width=\"132\">1\u00a0000\u00a0: espace<\/td>\n<td valign=\"top\" width=\"221\">Si un espace est ins\u00e9r\u00e9 pour repr\u00e9senter les milliers, Excel ne reconna\u00eet plus la donn\u00e9e comme un nombre mais comme une cha\u00eene de caract\u00e8res<\/td>\n<td valign=\"top\" width=\"164\">La fonction supprime tous les espaces<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\">D\u00e9cimale<\/td>\n<td valign=\"top\" width=\"132\">1000,23\u00a0: virgule<\/td>\n<td valign=\"top\" width=\"221\">En France, la d\u00e9cimale est repr\u00e9sent\u00e9e par une virgule (param\u00e8tres r\u00e9gionaux de Windows)<\/td>\n<td valign=\"top\" width=\"164\"><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\"><\/td>\n<td valign=\"top\" width=\"132\">1000.23\u00a0: point<\/td>\n<td valign=\"top\" width=\"221\">Un nombre dont la d\u00e9cimale est repr\u00e9sent\u00e9e par un point est reconnu comme une cha\u00eene de caract\u00e8re<\/td>\n<td valign=\"top\" width=\"164\">La fonction remplace le point par une virgule<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\">Signe<\/td>\n<td valign=\"top\" width=\"132\">-10<\/td>\n<td valign=\"top\" width=\"221\">En France, le signe n\u00e9gatif est positionn\u00e9 \u00e0 gauche du nombre<\/td>\n<td valign=\"top\" width=\"164\"><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\"><\/td>\n<td valign=\"top\" width=\"132\">10-<\/td>\n<td valign=\"top\" width=\"221\">Si le signe est positionn\u00e9 \u00e0 droite, le nombre est reconnu comme une cha\u00eene<\/td>\n<td valign=\"top\" width=\"164\">La fonction d\u00e9place le signe \u00e0 gauche<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\"><\/td>\n<td valign=\"top\" width=\"132\">(10)<\/td>\n<td valign=\"top\" width=\"221\">Les parenth\u00e8ses sont g\u00e9n\u00e9ralement reconnues comme un signe n\u00e9gatif<\/td>\n<td valign=\"top\" width=\"164\">La fonction remplace les parenth\u00e8ses par un signe moins<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\">Sens<\/td>\n<td valign=\"top\" width=\"132\">C10 ou 10C\u00a0: cr\u00e9dit<\/td>\n<td valign=\"top\" width=\"221\">Cette notation n\u2019est pas reconnue par Excel<\/td>\n<td valign=\"top\" width=\"164\">La fonction remplace le caract\u00e8re C par un signe moins<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"102\"><\/td>\n<td valign=\"top\" width=\"132\">D10 ou 10D\u00a0: d\u00e9bit<\/td>\n<td valign=\"top\" width=\"221\">Cette notation n\u2019est pas reconnue par Excel<\/td>\n<td valign=\"top\" width=\"164\">La fonction supprime le caract\u00e8re D<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong><span style=\"text-decoration: underline;\">Code source de la fonction <em>NettoyageNombre<\/em> et de la proc\u00e9dure\u00a0<em>NettoyageNombreS\u00e9lection<\/em> :<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true\">Function NettoyageNombre(nombre As Variant)\r\n'Renvoie un nombre format\u00e9 pour \u00eatre reconnu comme un nombre par Excel'Fonction r\u00e9dig\u00e9e par Beno\u00eet-Ren\u00e9 RIVIERE\r\n    Dim s2 As String\r\n \r\n    s2 = nombre\r\n    'Supprime les espaces\r\n    s2 = Replace(s2, \" \", \"\")\r\n    'Remplace les . par des ,\r\n    s2 = Replace(s2, \".\", \",\")\r\n    'Replace le caract\u00e8re C (cr\u00e9dit) par un signe -\r\n    If InStr(s2, \"C\") &gt; 0 Then\r\n        s2 = Replace(s2, \"C\", \"\")\r\n        If InStr(s2, \"-\") &gt; 0 Then s2 = Replace(s2, \"-\", \"\") Else s2 = \"-\" &amp; s2\r\n    End If\r\n    'Supprime le caract\u00e8re D (d\u00e9bit)\r\n    If InStr(s2, \"D\") &gt; 0 Then\r\n        s2 = Replace(s2, \"D\", \"\")\r\n    End If\r\n    'D\u00e9place le caract\u00e8re - de la droite vers la gauche\r\n    If InStr(s2, \"-\") &gt; 1 Then\r\n        s2 = \"-\" &amp; Replace(s2, \"-\", \"\")\r\n    End If\r\n    'Remplace les parenth\u00e8ses par un signe -\r\n    If InStr(s2, \"(\") &gt; 0 Then\r\n        s2 = \"-\" &amp; Replace(s2, \"(\", \"\")\r\n        s2 = Replace(s2, \")\", \"\")\r\n    End If\r\n \r\n    'Renvoie le r\u00e9sultat\r\n    If Len(s2) &gt; 0 Then NettoyageNombre = CDbl(s2)\r\nEnd Function\r\n \r\nSub NettoyageNombreS\u00e9lection()\r\n    Dim Cellule As Variant\r\n \r\n    For Each Cellule In Selection\r\n        Cellule.Value = NettoyageNombre(Cellule.Value)\r\n    Next Cellule\r\nEnd Sub<\/pre>\n<p>Approfondir le sujet : <a href=\"http:\/\/www.auditsi.eu\/?tag=conversion-de-fichier\">conversion de fichiers et de donn\u00e9es<\/a>\u00a0\/\u00a0<a title=\"Programmer en VBA\" href=\"http:\/\/www.auditsi.eu\/?cat=1569\">programmer en VBA<\/a><\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Audit%20de%20donn%C3%A9es%20et%20VBA%20%3A%20automatisation%20du%20formatage%20des%20donn%C3%A9es%20num%C3%A9riques\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>Lorsque l\u2019auditeur exploite des donn\u00e9es extraites d\u2019un syst\u00e8me informatique, il est fr\u00e9quemment confront\u00e9 \u00e0 des formats num\u00e9riques incompatibles avec les formats propos\u00e9s par Excel. L\u2019auditeur doit alors retraiter manuellement les \u00e9l\u00e9ments chiffr\u00e9s, ce qui s\u2019av\u00e8re fastidieux sur des listes de donn\u00e9es cons\u00e9quentes. Le VBA peut, dans ce cadre, s\u2019av\u00e9rer beaucoup plus productif. La fonction et &#8230;<\/p>\n<p><a href=\"https:\/\/www.auditsi.eu\/?p=520\" class=\"more-link\">Continue reading &lsquo;Audit de donn\u00e9es et VBA : automatisation du formatage des donn\u00e9es num\u00e9riques&rsquo; &raquo;<\/a><\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Audit%20de%20donn%C3%A9es%20et%20VBA%20%3A%20automatisation%20du%20formatage%20des%20donn%C3%A9es%20num%C3%A9riques\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[50,7,48,8,1569,215],"tags":[1634,815,234,17,235,239,1633,52,236,228,232,231,233,1382,237,723,230,389,222,238,1641,216],"class_list":["post-520","post","type-post","status-publish","format-standard","hentry","category-audit-de-donnees","category-breves","category-excel","category-extractions-de-donnees","category-programmer-en-vba","category-vba","tag-audit-de-donnees","tag-automatisation","tag-cdbl","tag-demarche-daudit","tag-dim-as","tag-donnees-numeriques","tag-excel","tag-exploitation-des-donnees","tag-for-each-in-next","tag-function-end-function","tag-ifthen","tag-instr","tag-len","tag-mise-en-forme","tag-nettoyagenombre","tag-productivite","tag-replace","tag-sub-end-sub","tag-tests-conditionnels","tag-traitement-de-donnees","tag-vba","tag-visual-basic"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=520"}],"version-history":[{"count":6,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/520\/revisions"}],"predecessor-version":[{"id":6473,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/520\/revisions\/6473"}],"wp:attachment":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}