Une Feuille en virgule une autre en point dans le même fichier

Fermé
Cedric V - Modifié par Cedric V le 25/10/2016 à 16:05
 Cedric V - 27 oct. 2016 à 23:45
Bonjour,

Voila ma demande j'aimerais qu'une feuille sois avec des points de séparation de décimale et une autre en séparation par des virgules dans le même fichier est-ce possible ?

Ou encore une macro qui me modifier une feuille "ATC" en virgule (le fichier étant en point d'origine) le temps de l'enregistrement en fichier ".txt" puis repasse en point.

Explication de ma démarche: J'utilise le fichier pour crée des listing que j'importe dans 2 logiciel différent qui marche du coup l'un avec des points l'autre avec des virgules.

Merci encore une foi ^^ d'avance de votre aide.
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
25 oct. 2016 à 22:59
Bonjour,

Tu devrais pouvoir le faire avec ctrl+h ou fonction "Remplacer" dans le menu.
Tu "remplaces tout" le "." par "," tu sauvegardes et tu refais la modification à l'envers.
0
J'ai fait rechercher . remplacer par , ça me marque "Microsoft office EZxcel ne trouve pas les données que vous recherchez." apres je me dit que ca ne marche peu être pas car il y a des formules dans le tas. Ex: la casse C1 = "=Calcul!C25" d1= "='Tableau a remplir'!Q8" et B1= "=SI(D1="";"";SI(SIERREUR(CHERCHE("alu ral";Calcul!B25);0);Calcul!B25 &" "&'Tableau a remplir'!O8;Calcul!B25))"
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
26 oct. 2016 à 10:02
Bonjour,

Effectivement avec les formules c'est moins évident, alors va pour la macro :
Public Sub sauve_virgule()
Dim cel As Range, wk As Worksheet, fic
    Set wk = Sheets("ATC")
    wk.Copy
    wk.UsedRange.Copy
    ActiveSheet.Range("A1").PasteSpecial xlPasteValues
    For Each cel In ActiveSheet.UsedRange.Cells
        If InStr(1, cel, ".") Then cel.Value = Replace(cel.Value, ".", ",")
    Next cel
    Application.DisplayAlerts = False
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "C:\temp\Classeur1.txt"
        .Show
        If .SelectedItems.Count Then ActiveWorkbook.SaveAs Filename:=.SelectedItems(1), FileFormat:=xlText
    End With
    ActiveWorkbook.Close SaveChanges:=False
    Application.DisplayAlerts = True
End Sub

Tu remplaces
"C:\temp\Classeur1.txt"
par ton répertoire et fichier de sauvegarde.
Si c'est toujours le même tu peux remplacer :
With ...
    End With

par
ActiveWorkbook.SaveAs Filename:= "C:\temp\Classeur1.txt", FileFormat:=xlText
0
Salut alors donc j'ai réécrit ta macro comme ca :

Sub Test()
Dim cel As Range, wk As Worksheet, fic
Set wk = Sheets("ACT")
wk.Copy
wk.UsedRange.Copy
ActiveSheet.Range("A1").PasteSpecial xlPasteValues
For Each cel In ActiveSheet.UsedRange.Cells
If InStr(1, cel, ".") Then cel.Value = Replace(cel.Value, ".", ",")
Next cel
Application.DisplayAlerts = False
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = "Y:\Cédric\Aide de production\Programmation\Test.txt"
.Show
If .SelectedItems.Count Then ActiveWorkbook.SaveAs Filename:=.SelectedItems(1), FileFormat:=xlText
End With
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True
End Sub

du coup la il me demande le fichier dans le quelle je veux l’enregistrer même si le \Test.txt et déjà écrit et quand je l'ouvre il ne ma toujours pas remplacer les "." en ",".
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713 > Cedric V
26 oct. 2016 à 18:00
Bonsoir,

Essaies comme ceci, tu devrais avoir de virgules....
Sub Test()
Dim cel As Range, wk As Worksheet, fic
Set wk = Sheets("ACT")
wk.Copy
wk.UsedRange.Copy
ActiveSheet.Range("A1").PasteSpecial xlPasteValues
For Each cel In ActiveSheet.UsedRange.Cells
If InStr(1, cel, ".") Then cel.Value = Replace(cel.Value, ".", ",")
Next cel
Application.DisplayAlerts = False
 ActiveWorkbook.SaveAs Filename:="Y:\Cédric\Aide de production\Programmation\Test.txt", FileFormat:=xlText
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True
End Sub 
0
Donc ça me sauvegarde bien le fichier mais toujours pas de virgule. Ça doit venir de mes formules du coup j'ai penser a une autre solution mais encore une foi j'aurais besoin de ton aide pour crée la macro car je n'y connais rien en macro.

1/ Il faudrait donc qu'il me crée a partir de "ACT" un fichier au format .csv (séparateur: point virgule) qui serait par exemple: "Y:\Cédric\Aide de production\Programmation\ACT.csv" (car je sais quand csv les formules disparaisse et qu'il ne garde que les nombres qu'il y avait a l'intérieurs des cases.)(ici le fichier de sauvegarde sera toujours le même écraser a chaque foi)

2/ Une foi crée qu'il l'ouvre et qu'il utilise ta formule pour les changement point en virgule

3/ qu'il me demande ou l'enregistrer en .txt

Vraiment désolé du dérangement que je te cause.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
27 oct. 2016 à 09:12
bonjour,

ça me sauvegarde bien le fichier mais toujours pas de virgule
Dans ce cas tu n'as pas de point non plus.

car je sais quand csv les formules disparaisse et qu'il ne garde que les nombres qu'il y avait a l'intérieurs des cases
Dans le fichier que je te crées il n'y a pas non plus de formule, pas besoin de passer par csv.

Le mieux serait de me fournir ton classeur de départ sans éléments personnels, pour voir ce qui ne va pas,
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
0
Cedric V > Cedric V
27 oct. 2016 à 09:20
J'ai trouver cette formule que j'ai tester qui fonctionne pour le changement des .en , pour le fichier .csv:
Public Sub Rempl()
Dim feuil As Worksheet
For Each feuil In ThisWorkbook.Worksheets
feuil.Cells.Replace What:=".", Replacement:=","
Next feuil
End Sub
0