Modifier le format de certaines colonne VBA

Fermé
grouchyzz Messages postés 5 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 19 août 2022 - 13 juil. 2022 à 09:59
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 - 19 juil. 2022 à 14:52

Bonjour,

J'ai créé un fichier qui génère un deuxième fichier en ".csv". Ce fichier csv est composé de ligne concernant des pièces à rebuter. Je constate que mes cotations (longueur, largeur, et épaisseur) en colonne B,C,D s'enregistre avec un séparateur "." au lieu de "," pour séparer les nombres entiers des décimales. Lorsque je génère ce fichier csv dans ma programmation, mon logiciel ne reconnait pas ces données et me met un message d'erreur. 

Savez-vous comment je pourrait faire pour remplacer les points par des virgules pour les colonne B,C et D ?

Voici mon code :

'Constitution du fichier CSV
                         '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                         If WshCSV2 Is Nothing Then
                              'La 1ère fois on crée la feuille
                              WshCSV.Copy 'Copie la feuille CSV dans un nouveau classe
                              Set WshCSV2 = ActiveSheet
                              WshCSV2.Name = "REBUS_SEAVY11" & "_" & Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "_" & Format(Time, "hhmmss")
                              LgnCSV = 1
                         End If
                         'Remplissage de la ligne LgnCSV
                         '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                         LgnCSV = LgnCSV + 1
                         WshCSV2.Range("A" & LgnCSV) = cel.Offset(0, -11) 'Design
                         WshCSV2.Range("B" & LgnCSV) = cel.Offset(0, -7)  'long
                         WshCSV2.Range("C" & LgnCSV) = cel.Offset(0, -6)  'larg
                         WshCSV2.Range("D" & LgnCSV) = cel.Offset(0, -8)  'ep
                         WshCSV2.Range("E" & LgnCSV) = cel.Offset(0, -9)  'matière
                         WshCSV2.Range("F" & LgnCSV) = cel.Offset(0, 5)   'sdf
                         WshCSV2.Range("G" & LgnCSV) = cel.Offset(0, -4)  'commentaire
                         WshCSV2.Range("H" & LgnCSV) = cel.Offset(0, 6)   'chant1
                         WshCSV2.Range("I" & LgnCSV) = cel.Offset(0, 7)   'Chant2
                         WshCSV2.Range("J" & LgnCSV) = cel.Offset(0, 8)   'Chant3
                         WshCSV2.Range("K" & LgnCSV) = cel.Offset(0, 9)   'chant4
                         WshCSV2.Range("L" & LgnCSV) = cel.Offset(0, -12)   'Meuble
                         WshCSV2.Range("M" & LgnCSV) = cel.Offset(0, 10)  'repère
                         WshCSV2.Range("N" & LgnCSV) = cel.Offset(0, 4)   'Option
                         WshCSV2.Range("O" & LgnCSV) = cel.Offset(0, -15) 'modèle bateau
                         WshCSV2.Range("P" & LgnCSV) = cel.Offset(0, -16) 'num bateau
                         WshCSV2.Range("Q" & LgnCSV) = cel.Offset(0, -10) 'Qté
                         WshCSV2.Range("R" & LgnCSV) = cel.Offset(0, 11) 'Nom_Ensemble
                         WshCSV2.Range("S" & LgnCSV) = cel.Offset(0, 12) 'Chemin
                        '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                     End If
             End Select
             'ref = ""
         Next cel
         .Range("T_BDD").Sort Key1:=.Range("T_BDD[Date]"), Header:=xlYes, Order1:=xlAscending 'tri pour remettre BDD par date
     End With
     'Sauvegarde du fichier CSV s'il existe
    If Not WshCSV2 Is Nothing Then
          WshCSV2.SaveAs Chemin & "\" & WshCSV2.Name & ".csv", xlCSV, local:=True
          Workbooks(WshCSV2.Name & ".csv").Close
          MsgBox "CSV enregistré avec le fichier \RELANCE - REBUS"
         Else
           MsgBox "Aucun fichier CSV enregistré"
     End If
     Application.ScreenUpdating = True
     
End Sub

Merci à ceux qui prenne le temps de me répondre :)

Cordialement,

Grouchyzzz
Windows / Chrome 103.0.0.0

A voir également:

1 réponse

fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
13 juil. 2022 à 13:49

Bonjour,

une piste :

WshCSV2.Range("B" & LgnCSV) = Replace(cel.Offset(0, -7), ".", ",")

0
grouchyzz Messages postés 5 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 19 août 2022
Modifié le 13 juil. 2022 à 14:14

Mon CSV s'enregistre toujours avec des points, ça ne fonctionne pas

0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > grouchyzz Messages postés 5 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 19 août 2022
Modifié le 13 juil. 2022 à 16:14

re,

et remplacer :

          WshCSV2.SaveAs Chemin & "\" & WshCSV2.Name & ".csv", xlCSV, local:=True
          Workbooks(WshCSV2.Name & ".csv").Close

par :

          Application.DecimalSeparator = ","
          WshCSV2.SaveAs chemin & "\" & WshCSV2.Name & ".csv", xlCSV, local:=True
          Workbooks(WshCSV2.Name & ".csv").Close

?

0
grouchyzz Messages postés 5 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 19 août 2022 > fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022
13 juil. 2022 à 16:52

Toujours pas... Je sais pas si ça peut changer quelque chose (je ne pense pas) mais j'ai confondu dans la présentation le point et la virgule.

Le fichier me génère des virgules dans mon CSV alors que mon logiciel de programmation veut des points. 

J'ai essayé avec vos codes en inversant le point et la virgule mais ça ne change rien.

Cordialement

0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > grouchyzz Messages postés 5 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 19 août 2022
13 juil. 2022 à 17:04

chez moi les modifications du séparateur décimal fonctionnent correctement

est ce que tu peux envoyer un fichier exemple (sans données confidentielles) via cjoint?

0
grouchyzz > fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022
18 juil. 2022 à 06:34

Bonjour,

Comment faire pour partager un fichier sur ccm ?

0