cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013
-
16 mars 2010 à 10:47
daffy17
Messages postés106Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention22 avril 2010
-
22 mars 2010 à 09:12
Bonjour à tous, j'explique mon problème, je realise des exatractions de document, et le souci c'est que les chiffres se présentent sous forme :
1.028,16
1.119,03
1.521,44
456,5
je realise la macro :
Selection.Replace What:= ".", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
le souci c'est que excel confond , et .
le résultat est :
1.028,16 => 1 028,16
1.119,03
1.521,44
456,5 => 4565
Autrement dit, s'il n'y a pas de point il considere la "," comme point et la supprime égallement :x
je voulais alors dans ce cas mettre un "." dans chaque cellule (et apres le pb est reglé) mais le souci c'est qu'avec 8000cellules la manipulation devient trop lente :x, j'avais utilisé cette macro :
'Dim CL As Range
'For Each CL In Selection
'If CL <> "" Then
'If Right(CL, 7) <> "." Then < = le point se trouvant en 7eme position à droite cependant la syntaxe est incorrect, je ne sais pas correctement utilisé cette fonction :x 'CL = "." & CL.Text
'End If
'End If
'Next
cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013 16 mars 2010 à 14:23
Sinon j'ai pensé à insérer un "." dans chaque cellule, ainsi il ne supprime que les "."
L'inconvéniant c'est que l'execution de l'opération est très longue :(
Dim CL As Range
For Each CL In Selection
If CL <> "" Then
CL = "." & CL.Text
End If
Next
y'a t'il un moyen de n'executer l'opération que sur les cellules qui ne dispose pas d'un "." dans leur chaine ?
cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013 17 mars 2010 à 10:04
Le point a été saisie, et le format d'affichage est en valeur.
Le souci c'est qu'avec le remplacé (ctrl + h) ca passe sans souci, mais des lors que je l'enregistre en macro, là plus rien ne vas.
Je pense garder ma méthode en insérant un "." dans chaque cellule, j'ai realisé le test et le resultat est concluant, cependant l'opération prends une 30aines de minutes.
daffy17
Messages postés106Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention22 avril 2010 22 mars 2010 à 09:12
As tu essayé de modifier le paramètres d'excel en ce qui concernent le format régional (pour les séparateurs de décimal et de milliers) ?
Application.DecimalSeparator = ","
ou
Application.DecimalSeparator = "."
et
Application.ThousandsSeparator = ""
Fait plusieurs tests avec des valeurs différentes ça pourrait marcher.
Je pencherait par défaut pour essayer le "thousandsSeparator".
Effectue la modification en début de traitement de ta fonction ou d'ouverture de ton classeur, et pense surtout à remettre la valeur par défaut à la fin du traitement ou à la fermeture de ton classeur histoire de ne pas modifier les préférences des utilisateurs.
Dim separateurMillier As String
separateurMillier = Application.ThousandsSeparator
'Début de traitement
Application.ThousandsSeparator = ""
'Traitement
'Traitement
'Traitement
'Fin de traitement
Application.ThousandsSeparator = separateurMillier