Remplacer le séparateur de décimale

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 383 fois - Téléchargée 27 fois

Contenu du snippet

Permet de remplacer un séparateur de décimale virgule (,) ou point (.) par un point ou une virgule.

Source / Exemple :


nblignes = ActiveSheet.UsedRange.Rows.Count
'compte le nombre de lignes de la feuille active
For c = 17 To 24
'définit les colonnes surlesquelles se feront les modifications
For j = 1 To nblignes
'définit les lignes surlesquelles se feront les modifications
'
tai = Len(Cells(j, c))
'compte le nombre de caractères
sep = Mid(Cells(j, c), tai - 2, 1)
'identifie le séparateur de décimale, se trouvant 3 caractères avant la fin (pour un nombre avec 2 chiffres après la virgules, si plus remplacer le 2 par ce nombre de chiffres apres la virgule)
If sep = "." Then
'pour que la modif ne se fasse que si on trouve un .
gauche1 = Left(Cells(j, c), tai - 3)
'sélectionne tous les caractères à gauche du séparateur
droite2 = Right(Cells(j, c), 2)
'sélectionne tous les caractères à droite du séparateur
Cells(j, c) = gauche1 & "," & droite2
'concatène la partie gauche, le séparateur voulu et la partie droite
Cells(j, c) = Cells(j, c) + 0
'active la cellule en tant que nombre
End If
Next j
Next c

Conclusion :


Ca faisait un an que je faisait mes macros en 2 parties. Execution, puis remplacer le séparateur à la main, puis reéxécution. VICTOIRE!

A voir également

Ajouter un commentaire

Commentaires

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
ce code sera supprimé dans la soirée ou demain....
demande moi par MP si les raisons ne te semblent pas évidentes
++
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Par contre gregcitt le niveau de la source c'est pas "Initié", c'est plutôt débutant et comme le dit mortalino bon courage pour faire ça sur les 16 776 960 cellules.
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Super ton snippet mortalino pour effectuer le changement uniquement sur l'application excel, cela va bien me servir! Merci!
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Salut mortalino:
Et pour les options régionales: (petite fonction faite avec renfield)

http://www.codyx.org/snippet_modifier-separateur-decimale-options-regionales-linguistiques_264.aspx

(pas noté)
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
Ah et sinon autre chose, ton code "initié", je pense que vu la difficulté pour le faire, il met du temps à l'exécution, non ?

Voici un bout de code, de niveau débutant, et que tu aies une ou 65535 x 256 cellules remplis, il met une seconde ;)

With Application
.UseSystemSeparators = False
.DecimalSeparator = "."
End With
++
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.