Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Modif macro qui transforme point en virgule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bernard-Louis

XLDnaute Occasionnel
Bonjour a toutes et tous.
Je vous soumet un probleme que je n'arrive pas a resoudre.
J'ai une macro qui transforme les points en virgule d'un fichier que j'importe. Ce fichier comporte une 50 de colonnes et 5000 lignes.
Des que la macro tombe sur un chiffre : 50,000. elle bloque parce qu il y a une , puis apres les 000 un point. exemple en colonne E
Auriez vous la solution a mon probleme ?
Avec mes remerciements anticipes.
Cordialement
 
Re : Modif macro qui transforme point en virgule

Bonjour,

pour quelles raisons fais-tu ce traitement?
tu récupères un fichier txt ou csv?
les données sont au format anglais?

toutes ces questions pour savoir s'il n'est pas possible de traiter en amont ton problème.

A+
 
Re : Modif macro qui transforme point en virgule

Bonjour,
A priori il n'est pas possible de le traiter en amont (dixit les informaticiens) Je pense qu'il doit etre possible de mettre une condition, a savoir :
SI . et rien apres (c'est a dire pas de 0), faire sauter le .
La question est de savoir ou et comment mettre cette condition.
Cordialement
 
Re : Modif macro qui transforme point en virgule

bonjour Bernard-Louis

Salut OVDJ

voila une modification qui semble fonctionner

Attention
si ce fichier est un exemple il est imperatif de mettre les cellules a traiter en formAt Texte
 

Pièces jointes

Re : Modif macro qui transforme point en virgule

Merci OVDJ et Pierrejean,
La macro bloque sur les cellules vides. Dans le fichier j'ai quelques colonnes vides.
Par ailleurs il faut valider le changement apres chaque cellule.
Je pense que l'on est sur la bonne voie.
Merci encore.
Cordialement
 
Re : Modif macro qui transforme point en virgule

Bonsoir à tous,

pourrais tu monter le fichier source (le txt) ou un extrait, histoire de vérifier ce qu'on peut en faire?
quand je disais en amont, je pensais à l'ouverture du fichier.

cordialement
 
Re : Modif macro qui transforme point en virgule

bonsoir Bernard-Louis

voila une version un peu meilleure

j'avais laissé trainer des msgbox (qui me servent a debugger)

il reste quelques valeurs qui ne finissent pas en nombre

doit-on les traiter ?

je n'aurai de tout façon pas le temps de regarder ce soir
 

Pièces jointes

Re : Modif macro qui transforme point en virgule

Bonsoir Pierrejean,
Je te remercie de te pencher a nouveau sur mon probleme.
Sur le fichier exemple cela tourne impeccablement bien.
Sur le fichier reel, la premiere cellule vide bloque la macro sur cette ligne

If Asc(Right(cellule, 1)) = 46 Then

Si il y a un moyen de te transmettre 2 ou 3 lignes du fichier reel
a ton adresse perso je le fais, car ces donnees je ne veux pas les mettre en ligne.
je te souhaite une bonne soirée. Encore merci.
Cordialement
 
Re : Modif macro qui transforme point en virgule

Bonsoir à tous,

voici un code pour expliquer ce que j'entendais par "en amont", il traite tout à l'ouverture :
Code:
Sub txt_open()
Dim monfichier
monfichier = Application.GetOpenFileName("fichiers text (*.txt), *.txt")
If monfichier <> False Then
    Workbooks.OpenText Filename:=monfichier, Origin:= _
        xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
        , ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:= _
        False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 4), Array(2, 1) _
        , Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
        Array(10, 1), Array(11, 1), Array(12, 1)), DecimalSeparator:=".", _
        ThousandsSeparator:=",", TrailingMinusNumbers:=False
End If
End Sub
comme ton fichier était déjà un xls, j'ai recréé un csv renommé en txt.
je ne sais si ça correspond à ton contexte mais il est toujours possible de s'en rapprocher.

cordialement
 
Re : Modif macro qui transforme point en virgule

bonjour Bernard-Louis

Salut ODVJ

une ligne( cellule=Trim(cellule) ) déplaçée et j'espere que cela ira mieux

en fait je presume que tes cellules vides contiennent en réalité des espaces

mais si la solution d'OVDJ est operationnelle je t'engage à la preferer (il est toujours mieux de travailler le plus en amont possible
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Y
Réponses
6
Affichages
1 K
yangerber64500
Y
K
Réponses
2
Affichages
5 K
K
I
Réponses
3
Affichages
2 K
O
Réponses
6
Affichages
4 K
N
Réponses
2
Affichages
9 K
Nostromo
N
R
Réponses
2
Affichages
1 K
runisland
R
P
Réponses
2
Affichages
2 K
Phoenix
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…