Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VBS] Suppression virgule fichier csv

Sujet résolu
    27 septembre 2021 à 17:31:53

    Bonjour,

    Récemment j'ai finalisée grâce à l'aide de ce forum un script en VBS pour convertir des fichier xlsx en csv. Cependant il me restait un problème à résoudre. Le problème des virgules en trop j'ai cherché par moi même ainsi que sur plusieurs forum sans réponse pour me satisfaire. 

    Mes documents convertie en csv vont être lus par un script qui lira le csv via un bloc note, j'aimerais donc que quand j'ouvre mon csv via bloc note je n'ai pas ceci : 

     

    Voici mon code VBS si cela peux aider. 

    '****************************************************************************************************************
    ' Convertir puis renommer un fichier xlsx se trouvant dans le répertoire : c:\ScriptTestXlsx\
    ' Mettre la version CSV dans le répertoire : c:\ScriptTestCsv\
    '****************************************************************************************************************
    Dim oExcel
    Dim oBook
    objStartFolder = "C:\ScriptTestXlsx\" ' Fichier départ
    objDestFolder= "C:\ScriptTestCsv\" ' Fichier de déstination 
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    Set objDossier = objFSO.GetFolder(objStartFolder)
      
    Set colFichiers = objDossier.Files
      
     
    Set oExcel = CreateObject("Excel.Application")
      
    msgbox"Nombre de fichier : " & colFichiers.Count
    For Each objFichier in colFichiers
    
      strFileName = objFSO.GetBaseName(objFichier) ' on récupère le nom du fichier sans extension
      
      If objFSO.GetExtensionName(objFichier.Name) = "xlsx" Then
          
        Set oBook = oExcel.Workbooks.Open(objStartFolder & objFichier.Name)
        oBook.SaveAs objDestFolder & strFileName & ".csv", 6 '6 = xlcsv
        oBook.Close False    
      End If
    
    Next
    oExcel.Quit

    Merci d'avance. :D

    • Partager sur Facebook
    • Partager sur Twitter
      28 septembre 2021 à 16:10:48

      tu dois avoir des données dans les colonnes supplémentaires à ces 9 colonnes ?
      • Partager sur Facebook
      • Partager sur Twitter
        28 septembre 2021 à 16:49:58

        Oh Merci encore pour le précédent code :) 

        et non après le ",0002," je n'ai aucune valeur à mettre

        • Partager sur Facebook
        • Partager sur Twitter
          28 septembre 2021 à 17:47:50

          pas de cellules avec des virgules dans leurs valeurs ? (en particulier sur la première ligne ?) 

          Si la 1ère ligne (ou une autre ligne je pense) a plus de cellules que les autres, c'est cette dimension qui va être utiliser dans tout le fichier.

          Sinon le script qui va lire ces fichiers csv devra ignorer les colonnes vides

          • Partager sur Facebook
          • Partager sur Twitter
            28 septembre 2021 à 17:58:41

            J'ai regardé l'Excel et supprimé toutes les valeurs qui aurais pus être invisible dans une colonne mais rien à faire j'ai toujours ces virgules qui apparaissent quand j'ouvre l'Excel ou même en version bloc note.

            Sachant que je ne peux pas définir des colonnes à supprimer automatiquement car ayant des Excel de taille différentes à traiter j'en effacerais une partie.

            EDIT : 

            Voici une capture du fichier xlsx avant conversion csv et apparition de virgules en trop 

            -
            Edité par RemyDom 28 septembre 2021 à 18:06:04

            • Partager sur Facebook
            • Partager sur Twitter
              28 septembre 2021 à 18:12:02

              Est-ce que par hasard, le nombre de champ correspond au fichier excel qui contient le plus de colonne? si oui, peut-être revenir sur ce que je t'avais dit sur oExcel, à savoir l'inclure dans la boucle (il conserve peut-être une trace du nombre de colonnes du dernier fichier ouvert et conserve la plus grande)

              ouvrir ton csv avec notepad++ et Afficher les tous caractères spéciaux; ou l'ouvrir avec un éditeur hexadecimal pour voir si il voit des caractères spéciaux entre les virgules (code hexa de la virgule 0x2C ou en décimal 44)

              • Partager sur Facebook
              • Partager sur Twitter
                28 septembre 2021 à 18:26:49

                Euh o_O ca donne ca avec notepad++ 

                je donne qu'un extrait car c'est très long 

                ïïÓµL¸Úb.j"ÿ"%5´
                3çÁòNéB«ˆ?C%½*æªùØë=ÉÂYK)ub8xƒR-JÞW¼¼Q23V$¯›sU.”÷)±P¹´úIêÊÒ ]±h:C@i¬¨m23†	±1ò g€/#ݺʸ2
                ÃÚx|`ëGºã®¶u_ü;‚ÑŒU OÕ²w¹jäó™sóì4È¥­‰-ÊZeìN÷	þxe|õo,¤óÏè ž1ñy½„s†iÝ Þºíôs­è	ñôV7ðû”ŽÔ88œÚ —wa‘®:õìCrhØöŒù«ÛÝ¢Aà–ñþ  ÿÿ PK     ! µU0#ô   L   _rels/.rels ¢(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ¬’MOÃ0†ïHü‡È÷ÕÝBKwAH»!T~€Iܵ£$Ý¿'TƒG½~üÊÛÝ<êÈ!öâ4¬‹;#¶w­†—úqu*&r–Fq¬áÄvÕõÕö™GJy(v½*«¸¨¡KÉß#FÓñD±Ï.W	¥†=™ZÆMYÞbø®ÕBSí­†°·7 ê“Ï›×–¦é
                ?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñËyÄ7	ëÈðÉ‚‹¨Þ  ÿÿ PK     ! >”—ó   º   xl/_rels/workbook.xml.rels ¢(                                                                                                                                                                                                                                                                  ¬RMKÄ0½þ‡0w›vÙt/"ìUëÉ´)Û&!3~ôß*º]XÖK/o†yïÍÇv÷5âõÁ+¨Šzlï;oÍóÍbí­‚Gìêë«íšs¹>’È,ž8æø(%‡£¦"Dô¹Ò†4jÎ0u2jsÐÊMYÞË´ä€ú„Sì­‚´·· š)fåÿ¹CÛöŸ‚yÑó	I<
                y ÑèÔ!+øÁEöò¼üfMyÎkÁ£úå«Kª5=|†t ‡ÈG)’s墙»UïátBûÊ)¿Ûò,ËôïfäÉÇÕß   ÿÿ PK     ! +ÈZ~
                  Ö     xl/workbook.xml¬TÝnÛ6¾Ðwàˆ ½R$ÙRb–‹Ø’[m$irc  ¥£ˆ°Dª$];(ú>ÛsôÅv(Ù‰»›·îF"¨ßÏ!Go¶uE¾€Ò\Š˜ú§% 2™sñÓO73g@‰6L䬒búš¾¿úe´‘jµ”rE@蘖Æ4‘ëꬄšéSÙ€À/…T538U®n°\— ¦®Üžç¹5ã‚v‘:CÏ ‘Ùºa:3H_—¼Ñ{´:;®fjµnœLÖ
                B,yÅÍcJIEó![V({ë‡{d¾€®y¦¤–…9E(·#ùB¯ï¹¾ßI
                ^Ámg;aMó‘Õv—Š’Ši“æÜ@Ó3œÊ
                <Î)Qëf²æ~õƒ çQwüÅ¥Â	ò¾¨(ÁL¥0hÓÎàŸµ¤Åž– WðyÍ`îÖ™ñŸ,‹ØR_2S’µªb:Ÿ4*\T|	Ê”‹ôÊÈfq
                ŸAèÅ[Ô…©‘4¹E– ³—ùý“Yf}qÑ‹Žo7þ³/ã‘mà[ýl¢’í¹ÜÄÔé
                †h2yÜp¼i¿ÝñÜ”1í
                ½à©öøCi0™p€EËà`ƒ¶ñq£öMDøÛtž¤$ƒªb]ýbm Ä!Í÷߯¿ÿfððÙó2·qcöÇšç~¾GÌ¡àrÛCˆ0Ûír¿­D}z?ã¶/fØ’i°­•±êz"Jžç`o:~ýÌ^ÿzrqâG'ó?èûþÈ=Ø…ÿÈ	7Ê.±¯VÊYoè÷­Øš÷Ú´oìÓ¯~à]œ{ÃÀñÒ~èh¿3ú=g$½4<O“t~ûÏ"6o´¿Î,Ë’)s£X¶ÂKð
                Š	ºeM±y"ßC²“p0ñúH1˜ù3'ð‡ž3™œN˜ÌúṟLÓpöLÖÊ/þãÝ1pÛ¿™5;{âÚydŸ³]õ©Xt…]ü?œ›è*±BvÿÝÂkT_Á‘‹g·G.œ~üpóáȵïÓ›û»Yëû_ªíҰ϶‡Ü}†ã?   ÿÿ PK     ! 8IÔg·  Š    xl/sharedStrings.xml|ÝÝŽW’à{~‡ï=:çdæÎLC­AU鈪q‘EW‘„ä;¡›žÐ-µ›jÃ~ûY‘3ðã“/\µO®ûgE쿯ÿùÿüõ/7ÿûÓß?ÿüë/xuþ§Ó«›O¿üñ×?ýüË¿þáÕ‡÷ßý—íÕÍçß~úåO?ýå×_>ýáÕÿýôùÕ?óŸÿÓן?ÿv“¿ýåó^ýù·ßþö_¿úêóÿüé¯?}þ§_ÿöé—üÏÿüõïýé·üóïÿúÕç¿ýýÓOúüçOŸ~ûë_¾ºœNã«¿þôó/¯nþøë?~ù-¿{ž÷éòêæ¿üü¿þñéþ?ŒËé4¿úæëÏ?óõoßLó²ìË×_ýöÍ×_•åß­/ïoÞÿpwûáñýÍ·×—›¯ß^_¾D¾4Ü6ÄétþÒvüâ òBä
                äDädcvüúdû Ç©Q<Ní¯dãêâ>Ngb4NͤÓÜͨý}Ê4#øèbFí—îà qj:*Ž?~n_XWèY
                g¸JϨ¨+¿WôétaåŸUQ¬üî’”iþhÌ+¿;ïtšÈè‚Æ<‘QwsÊ$£K«û{¹¾WqúQsE¹øZH´d5±q­Šo_÷¯—.VT{¬ht±¢âcÓXQõ±‚k¬¨üXÑ¡bEƒ—ܶÆíŽ5³‘íF¶Ùnd»‘íF¶Ùnd»“íNOî䶓ÛNn}þœæqÙ·{ÖíN¶;Ùîb;z×|¹­ûÇ›—Ï7Oϯ¯hícÒ/Œ‰¿0«>Ǭú³ês̪Ï1«>Ǭ¶2fµ•1«öÆLn3¹-ä¶ÛBn¹-ä¶ÛBn¹-ä¶Û ·AnƒÜ¹
                rä6ÈmÛ ·>~§



                • Partager sur Facebook
                • Partager sur Twitter
                  28 septembre 2021 à 19:13:03

                  euh ton csv donne ça dans notepad++ ???? o_O

                  le fichier excel je veux bien que ça donne ça, mais pas le csv

                  dans ton excel, si tu sélectionnes la cellule A1 et que tu fais la combinaison de touches [CTRL]+[A] (sélectionner tout) tu n'as que ta plage de données qui est sélectionnée ou tu as des colonnes supplémentaires?

                  Si tu as des colonnes supplémentaires, sélectionne les et fait un clic droit > supprimer

                  -
                  Edité par umfred 28 septembre 2021 à 19:16:53

                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 septembre 2021 à 8:48:18

                    Oula pardon j'ai cliqué sur le fichier juste au dessus :-° oui en effet en csv c'est mieux 

                    Du coup non je n'ai pas de caractère entre mes virgules o_O 

                    Dans mon csv si je sélectionne A1 + CTRL A je n'ai que la colonne A qui est sélectionnée. Par contre si je sélectionne la cellule B2 ou C2 ect..  c'est tout les fichiers qui est sélectionnée. 

                    Dans mon xlsx si je sélectionne A1 + CTRL A j'ai toutes mes colonnes qui sont sélectionnée mais pas les colonnes vides il s'arrête bien autour du tableau qui est définie 

                    EDIT : 

                    Voici ce qui est affiché quand je clic sur la cellule A1 de mon csv

                    -
                    Edité par RemyDom 29 septembre 2021 à 9:31:24

                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 septembre 2021 à 11:13:59

                      Tes fichiers Excel sont tous semblables ? mêmes nombre de colonnes ? combien de colonnes dans celui qui a en a plus ? 

                      Tu sembles focalisé sur un fichier en particulier; pour les autres c'est pareil ? pas un qui n'a pas ce souci ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 septembre 2021 à 11:44:59

                        Malheureusement j'ai que deux fichier sous la main et un n'a aucun soucis et celui sur le quel je suis focalisé à toujours un soucis même si je fait la procédure deux fois. j'envois la capture du fichier qui fonctionne. 

                        • Partager sur Facebook
                        • Partager sur Twitter

                        [VBS] Suppression virgule fichier csv

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown