begin process at 2012 02 09 02:01:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBA

 > REMPLACER LE SÉPARATEUR DE DÉCIMALE

REMPLACER LE SÉPARATEUR DE DÉCIMALE


 Information sur la source

Note :
2 / 10 - par 2 personnes
2,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VBA Classé sous :séparateur, décimale, remplacer, convertir, csv Niveau :Initié Date de création :15/11/2006 Date de mise à jour :15/11/2006 16:05:45 Vu :12 860

Auteur : gregcitt

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

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

Source

  • 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
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!


 Historique

15 novembre 2006 15:57:41 :
Pas de mise à jour
15 novembre 2006 16:05:45 :
LA dernière ligne "Cells(j, c) = Cells(j, c) + 0 'active la cellule en tant que nombre" a été ajoutée, sinon Excel ne reconnait pas le nombre de la cellule en tant que tel.

 Sources de la même categorie

Source avec Zip GESTION PERSONNEL par oudlarbi
Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture COLLECTION ID par Le Pivert
Source avec Zip Source avec une capture VBA MASQUE DE SAISIE NUMÉRIQUE par acive

 Sources en rapport avec celle ci

Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
Source avec Zip Source avec une capture CONVERTIR UN NOMBRE DÉCIMAL EN FRACTION par Guillaume170194
Source avec Zip Source avec une capture Source .NET (Dotnet) MODIFIER COULEUR IMAGE PAR LOT par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) CONVERTIR IMAGE EN TON SÉPIA par Le Pivert
Source avec Zip VBSCRIPT PERMETTANT DE PASSER UN FICHIER EXCEL EN CSV par esus1985

Commentaires et avis

Commentaire de mortalino le 16/11/2006 02:31:26

Salut,

pourquoi ne pas aller dans les options régionales de ton système d'exploitation et de le modifier une bonne fois pour toute ?
Tu utilises les deux configurations ?

@++

Commentaire de mortalino le 16/11/2006 02:36:31

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
++

Commentaire de Drikce06 le 16/11/2006 13:09:18

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é)

Commentaire de Drikce06 le 16/11/2006 14:25:59

Super ton snippet mortalino pour effectuer le changement uniquement sur l'application excel, cela va bien me servir! Merci!

Commentaire de Drikce06 le 16/11/2006 14:28:48

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.

Commentaire de PCPT le 16/11/2006 18:15:25 administrateur CS

ce code sera supprimé dans la soirée ou demain....
demande moi par MP si les raisons ne te semblent pas évidentes
++

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

convertir une lettre en sa valeur décimale [ par Gabalgabow ] En VB,comment convertir une lettre en sa valeur décimale ou héxadécimale correpondante?Ex: a -->1 b -->2 c -->3GRIND YER FACE!! convertir une lettre en sa valeur décimale [ par Gabalgabow ] Comment compter le nombre d'enregistrement dans une base de données à partir de VB?GRIND YER FACE!! convertir une lettre en sa valeur décimale [ par Gabalgabow ] Comment compter le nombre d'enregistrement dans une base de données à partir de VB?GRIND YER FACE!! enregistrer un classeur sous forme de .csv avec séparateur [ par Virginie ] salutJe désire enregistrer des données qui se trouve dans un classeur excel sousla forme d'un fichier csv avec des séparateurs ";" parce que je veux m Problème csv Excel [ par lourdo ] Bonjour,avec Excel 97, je désire exporter par macro le contenu de mon workbook sous un format csv avec séparateur ";".En utilisant le menu fichier|sau Convertir un Fichier CSV en XLS [ par Sebby59 ] Bonjour à tous !Voilà mon petit problème : Je souhaite que mon fichier CSV soit correctement représenté dans Excel. Je m'explique plus clairement, mon Excel -Séparateur Decimal @/$2&*!!! [ par MarmotteQC ] Allo!Allo!Allo!Alors voilà je dois comparer 2 fichiers Excel (À l'intérieur d'un prog. VB) dont un a comme séparateur décimale le point(.) et l'autre rech outil pour convertir fichier dbf en csv ou txt [ par eric_aix13 ] bonjour,je recherche un outil pour convertir dans un batch un fichier dbf (dbase iii) en csv ou txt avec separateur parametrable ?merci d'avance Fonction pour convertir ujn fichier "csv" en "xls" [ par LibreMax ] Salut,Quelqu'un connaiterai une fonction pour convertir un fichier ".csv" en ".xls"Merci LibreMax Convertir plusieurs fichiers Excel en fichiers CSV [ par domm78 ] Bonjour,Je recherche une fonction pour convertir, a partir d'une page HTML, plusieurs fichiers XLS (qui sont dans un repertoire et des&


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales