Transformer une feuille Excel en CSV en modifiant la mise en forme

Eh bin j'y est presque cru, car c'est vraiment bien, du coup je peux même mélanger des refs avec et sans prix c'est top!!

Par contre il y un problème quand même, quand j'ai un chiffre entier il ne le transforme pas, EX 50 doit devenir 50.00

Je ne joint pas de fichier c'est celui d'archer , je confirme que le code de Chris il fonctionne le 50 devient bien 50.00

Jean.

Bonsoir

voila la modife a toi de voir

A+

Maurice

Sub Export()
Dim L&, Nlig&
Dim Num$
Nlig = Cells(Rows.Count, 1).End(xlUp).Row
    With Feuil1
        .Rows("1:" & Rows.Count).ClearContents
        For L = 1 To Nlig
            .Range("A" & L) = Range("A" & L).Text
            .Range("E" & L) = Range("B" & L).Text
            If CDbl(Range("C" & L)) > 0 Then
                .Range("J" & L) = "0"
                .Range("K" & L) = "0"
                    Num = Format(Range("C" & L), "0.00")
                .Range("L" & L) = Replace(Num, ",", ".")
                .Range("N" & L) = "0"
            End If
        Next L
        .Select
    End With
 ExportCSV
End Sub

Maurice,

J'ai modifié le code et nous sommes ok dans la feuill Export

En revanche dans le fichier csv il n'est toujours pas sous la bonne forme.

Une dernière modif?

Merci et bonne soirée

Je vous dit a demain

Jean

export csv export test1

Bonjour

Voila avec Import

Maintenent ses a toi de faire les modife

A+

Maurice

Bonjour Maurice,

Merci pour ton retour, je viens de regarder, je ne comprends pas pourquoi tu as rajouté une feuille.

De même tu me dit de faire la modif, seulement je ne vois pas laquelle.

Ton premier jet était bon hormis le format d'un nombre entier.

En revanche dans le second je perd le côté super ou je pouvais aussi saisir une référence sans prix car maintenant apparaît un.00 .

Jean

Bonjour à Tous,

Je n'arrive toujours pas a faire fonctionner correctement le fichier, pouvez vous me venir en aide svp?

En vous remerciant.

Jean

RE

On en est à 45 échanges sur ce fil et tu n'as toujours pas fourni le cas qui ne fonctionne pas avec le code que j'ai posté... ni même le message d'erreur...

Bonjour Chris78,

Merci de te patience et de ne pas me lâcher

J'ai écrit cela le 27/11 à 17h08 et Archer a répondu, le 27/11 à 18H28, j'avais également joint les fichiers.

Dans ton code, dans certains cas les zéro ne ressortaient pas.

Avec la correction d'archer cela fonctionne, mais il reste un problème pour les chiffres entier ex: 50 devient bien 50.00 dans l'onglet Export, mais lorsque il est en CSV il apparaît 50. voir mes posts précédent.

Le top serait le mix de vos 2 codes .

Voilà j'espère JEna avoir été clair dans mon explication...

Merci encore et bonne journée

Jean

Bonjour

déjà pour voir si ton csv est bon tu l'ouvre avec le Bloc-Notes

A+

Maurice

Bonsoir Maurice

J'ai effectué cette vérification et avec bloc notes C est ok.

C'est vraiment les dizaines qui posent problème

Merci

Jean

RE

On t'as déjà indiqué qu'il ne faut pas ouvrir un csv avec Excel mais passer par l'onglet Données : sinon Excel le transforme à son idée.

Le bloc notes te donne le vrai contenu.

Il faut donc vérifier comment ton outil cible l'importe et arrêter de focaliser sur un test qui est biaisé.

Re Chtis

Il est certain que ne suis pas expert en VBA d'où ma présence ici en revanche je sais ouvrir un fichier quel que soit son format.

Le test n'est absolument pas biaisé il fonctionne parfaitement seulement il y a un problème sur les dizaines.

Merci quand même

Bonne soirée

Jean

RE

Tu es extrêmement têtu : on a beau être plusieurs à t'expliquer que le format csv est un format texte, qu'Excel, paramétré pour cela à l'américaine, ouvre mais de façon incorrecte puisqu'il y fait des modifications inappropriées, tu t'entête...

J'ai travaillé sur des échanges tant en import qu'en export sur pas mal de logiciels et connais donc bien ce problème...

On est là pour aider pas pour te donner des infos erronées mais si tu ne veux pas les prendre en compte, ce fil est inutile...

Pour ma part j'arrête là...

Bonjour Chris78,

Je comprends le fait que tu renonces, dès le début nous avons eu du mal a nous comprendre.

Ce forum est basé sur l'échange et la bonne volonté, dont tu a fait preuve jusqu'ici.

J'ai bien compris le fonctionnement des fichiers et vous ne m'avez donnés aucune fausses informations.

Si j'essaye d'aller au bout c'est tout simplement car je suis persévérant/têtu selon son appréciation.

A chaque code j'ai testé de bout en bout, le tien fonctionne très bien sur les dizaines (10,20,30..) mais lors de copier coller incrémente pas à chaque fois les zéros, dans le feuill export

Celui d'archer corrige le problème des zéros mais ne fonctionne pas sur les dizaines.

Quoi qu'il en soit je garde ton code qui m'a fait découvrir de nouvelle fonction.

Je te remercie très sincèrement de l'aide que tu as apporté a fil.

Je te souhaite bonne continuation et une excellente journée.

Bien Amicalement

Jean

Bonjour à Tous,

La persévérance fini toujours par payer !!! encore une fois cela vient de se vérifier.

Après plusieurs jours de travail, de recherche, j'ai enfin résolu mon problème.

J'ai créer une macro qui met en forme mes données avant traitement par le code d'Archer.

Voilà je tenais à vous faire part du résultat et vous remercier pour l'aide.

"Ils ne savaient pas que c'était impossible, alors ils l'ont fait !!! "

re à tous

Jeannot :

  • poste ta solution, ça aidera ceux qui t'on aidé à mieux comprendre
  • poste ta solution, ça aidera peut-être d'autres personnes rencontrant le même problème
  • teste Power Query, apprends-le
  • coche "résolu"

amitiés à toi et à tous

Re,

Oui pardon tu as complètement raison, je me suis laissé emporter par ma joie.

Oui aussi pour Power Query, maintenant je vais pouvoir m'y pencher.

N'étant pas un spécialiste comme vous avez pu le constater, voici comment j'ai procéder.

Je vous poste le code

Sub Uniquement_si_Prix_Macro()

'

' Uniquement_si_Prix_Macro Macro

'

'

Sheets("Info").Select

Columns("C:C").Select

Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _

Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _

:=Array(1, 1), TrailingMinusNumbers:=True

Range("D1").Select

Call M_Export.Export

End Sub

Sub Export()

Call M_Export.Export

End Sub

J'ai également fait une macro our nettoyer mes données une fois fini, je la poste aussi.

Sub Supprime()

'

' Supprime Macro

'

'

Sheets("Export").Select

Range("A1").Select

Range(Selection, Selection.End(xlDown)).Select

Columns("A:N").Select

Selection.ClearContents

Range("B1").Select

Sheets("Info").Select

Range("A1").Select

Range(Selection, Selection.End(xlDown)).Select

Columns("A:C").Select

Selection.ClearContents

Range("D1").Select

End Sub

Bon Week end a tous

Amicalement

Rechercher des sujets similaires à "transformer feuille csv modifiant mise forme"