Signaler

Problème avec les chiffres pour une remonter d'un etat TXT [Résolu]

Posez votre question Sheridana - Dernière réponse le 18 mai 2017 à 15:30 par Sheridana
Bonjour à tous,

J'ai besoin d'aide j'aimerais automatiser un traitement et je bloque sur la remonter des chiffres. Je n'arrive pas à supprimer les points sans que cela touche au reste. Il me semble que c'est un probleme de format mais je n'ai aucune formation VBA et j'aimerais bien y arriver Ci dessous le format de mon fichier

Merci de votre aide à tous.


23100000 Immos en cours transit. lin. -81.652,46
23100010 Immos en cours transit. lin. Mtrg -49.400,00
23110000 Immos en cours transit. dég. -35.258,00
23120005 PO Immo. reçues non facturées 320.352,08
23200000 Immo. en cours PAS linéaire 2.347.294,32
27500000 Dépôts et cautionnements versés -42.386,75
32114000 Stock Lyreco 70.373,60
40110000 Fournisseurs HG 1.209.997,90
40120000 Fournisseurs IG 9.951.209,08
Afficher la suite 
Utile
+1
plus moins
Const lideb As Long = 2   ' premiere ligne à traiter
Const co As String = "C"  ' colonne à traiter

Public Sub OK()
Dim li As Long, lifin As Long, v As String, vv As Single
lifin = Range(co & Rows.Count).End(xlUp).Row
For li = lideb To lifin
  v = Range(co & li).Value
  v = Replace(v, ".", "")
  v = Replace(v, ",", ".")
  vv = Val(v)
  Range(co & li).Value = vv
  Range(co & li).NumberFormat = "#,##0.00"
Next li
End Sub
Cette réponse vous a-t-elle aidé ?  
Donnez votre avis
Utile
+0
plus moins
Bonjour

As tu essayé
1. Sélectionner la plage à traiter
2. Edition/Remplacer
3. Replacer . (le point) par tu ne mets rien
4. Replacer tout
Tes valeurs devraient alors se caler à droite dans les cellules (> elle sont devenues des nombres)
Il ne te reste, peut être, qu'à les reformater en ajoutant le séparateur de milliers

Cdlmnt
Donnez votre avis
Utile
+0
plus moins
Oui mais j'ai une macro de remonter pour aller plus vite avec de caler les colonnes et j'aimerais automatiser ca aussi. Simplement quand je fais ca en manuel ca passe mais des que j'essai d'automatiser ca ne marche plus.
Donnez votre avis
Utile
+0
plus moins
Essaies d'adapter ce code

Public Sub OK()
Dim cel As Range, v As String, vv As Single
For Each cel In Selection
  v = cel.Value
  v = Replace(v, ".", "")
  v = Replace(v, ",", ".")
  vv = Val(v)
  cel.Value = vv
  cel.NumberFormat = "#,##0.00"
Next cel
End Sub

Cdlmnt
Donnez votre avis
Utile
+0
plus moins
merci pour ton aide
mais comment lui dire de ne séléctionner que la colonne C avant
Donnez votre avis
Utile
+0
plus moins
c'est super ca marche merci !!

Par contre dernier petit souci cela me change sur certaine ligne le dernier chiffre par exemple le chiffre etait a la base 1 447 625.86 et a la suite de la macro il se termine par 1 447 625.88

Merci de ton aide précieuse
Donnez votre avis
Utile
+0
plus moins
Essaies en remplaçant le type single de vv par le type double
Dim li As Long, lifin As Long, v As String, vv As Double

Et ajouter cette ligne
vv = Val(v)
vv = Round(vv, 2)
Donnez votre avis
Utile
+0
plus moins
C'est magique vraiment merci merci merci !!!
Donnez votre avis
Utile
+0
plus moins
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

Bonne fin de journée
Donnez votre avis
Utile
+0
plus moins
Toute derniere question apres j'arrrete lol
comment intégrer ta macro a la mienne pour qu elle se lance a la suite elle est inscrite en dessous de mon end sub separer par un trait
Donnez votre avis
Utile
+0
plus moins
C'est bon j'ai trouver merci pour tout
vraiment

bonne fin de journée
Donnez votre avis

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.

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

Vous n'êtes pas encore membre ?

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