• Initiateur de la discussion Initiateur de la discussion fifi
  • Date de début Date de début

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 !

fifi

XLDnaute Occasionnel
bonjour le forum,
j'ai un pb de vba :s

après importation d'un fichier texte, j'ai des séparateurs décimaux notés avec des points. Excel reconnait donc pas les valeurs.

quand je fais un remplacer : point par virgule via le menu CTRL+H , il n'y pas de pb mais quand j'utilise l'engistreur de macro, cela ne fonctionne pas correctement. Des points sont carrément supprimés, ce qui me donne des valeurs de l'odre du million :s.


j'utilise ce code.

Sheets("table").Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False


il y a possibilité d'éviter ce problème?
 
Re : pb , et . en vba ?

Bonjour,

Tu peux essayer ceci :

Sub Test1()
Selection.TextToColumns Destination:=Selection, DecimalSeparator:=".", TrailingMinusNumbers:=True
End Sub
Il faut que les données soient sur une seule colonne.

Ou bien pour une selection plus large :

Sub Test2()
For Each X In Selection
MaVar = Split(X, ".")
If UBound(MaVar) > 0 Then X.Value = CDbl(MaVar(0) & "," & MaVar(1)): X.NumberFormat = "General"
Next
End Sub

ou

Sub Test3()
For Each X In Selection
If X <> "" Then X.Value = CDbl(Replace(X.Value, ".", ",")): X.NumberFormat = "General"
Next
End Sub
 
Dernière édition:
Re : pb , et . en vba ?

Merci catrice pour tes réponses.
pour le moment la 3éme fonctionne correctement, merci beaucoup .D




Bonjour,

Tu peux essayer ceci :

Sub Test1()
Selection.TextToColumns Destination:=Selection, DecimalSeparator:=".", TrailingMinusNumbers:=True
End Sub
Il faut que les données soient sur une seule colonne.

Ou bien pour une selection plus large :

Sub Test2()
For Each X In Selection
MaVar = Split(X, ".")
If UBound(MaVar) > 0 Then X.Value = CDbl(MaVar(0) & "," & MaVar(1)): X.NumberFormat = "General"
Next
End Sub

ou

Sub Test3()
For Each X In Selection
If X <> "" Then X.Value = CDbl(Replace(X.Value, ".", ",")): X.NumberFormat = "General"
Next
End Sub
 
- 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

Réponses
3
Affichages
563
Réponses
11
Affichages
3 K
Retour