Format numérique Balance récalcitrante

Sylvie

XLDnaute Accro
Bonjour Cher Forum

la dernière version d'un célèbre logiciel comptable du marché bug au point de ne plus exporter correctement les balances au format excel.

Pourriez vous me compiler une petite macro qui traitera en bloc les 4 colonnes C, D E et F qui supprimera l'espace généré comme séparateur de milliers et qui mettra au format numérique les données inférieures à 1000 (car la suppression de l'espace rétablit bien le format numérique mais il faudrait appliquer en VBA un CNUM en bloc sur ces 4 colonnes) ?

J'ai bien sur trouvé des macros sur le forum qui traitent ce problème de format mais mon haut niveau de VBA, ne me permet pas de savoir les compiler correctement.

Par avance merci
 

Pièces jointes

  • Balance Export.xls
    35 KB · Affichages: 98
  • Balance Export.xls
    35 KB · Affichages: 102
  • Balance Export.xls
    35 KB · Affichages: 100

Sylvie

XLDnaute Accro
Re : Format numérique Balance récalcitrante

Bonjour Abcd,

je souhaite une solution en vba que je puisse appliquer en masse à toutes les extractions de balance.
Bien sur j'ai supprimé les espaces par éditions , remplacer et appliquer la transformation via CNUM des chaines de caractères restantes, mais ceci est trop long pour que je puisse généraliser cette méthode.
 

Catrice

XLDnaute Barbatruc
Re : Format numérique Balance récalcitrante

Bonjour,

Ci-joint une macro qui "nettoie" tes données.
En fait ton appli ajoute des espaces (code 32) et des espaces insecables (code 160).

Edit : Bonjour Hasco et abcd.

Il y a aussi des espaces "32" dans les cellules.
 

Pièces jointes

  • Balance export.xls
    42.5 KB · Affichages: 90
  • Balance export.xls
    42.5 KB · Affichages: 84
  • Balance export.xls
    42.5 KB · Affichages: 89
Dernière édition:
G

Guest

Guest
Re : Format numérique Balance récalcitrante

Bonjour sylvie,:D

voici une petite macro qui le fera,

tu selectionnes tes cellules (sans la ligne de titre) et tu appelles la macro:

Code:
Sub convert()
    Dim i As Long
    Dim valTxt As String
    For i = 1 To Selection.Cells.Count
        If Trim(Selection(i).Text) <> vbNullString Then
            valTxt = Replace(Replace(Selection(i), Chr(160), ""), ",", ".")
            Selection(i) = Val(valTxt)
        End If
    Next i
End Sub

A+

[Edition] Hello Catrice!
 

BERRACHED said

XLDnaute Accro
Re : Format numérique Balance récalcitrante

Salue,Sylvie

a tester :

Code:
Sub Format()
Worksheets("BAL 31.10.08").Columns("C"). _
    NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Worksheets("BAL 31.10.08").Columns("D"). _
    NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Worksheets("BAL 31.10.08").Columns("E"). _
    NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Worksheets("BAL 31.10.08").Columns("F"). _
    NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Call Format
End Sub

Cordialement
 

Sylvie

XLDnaute Accro
Re : Format numérique Balance récalcitrante

Bonjour les zamis,

Merci Hasco .. it's perfect !
J'ai rajouté à la fin de ta macro après le Next.i ceci
Selection.NumberFormat = "#,##0.00"

Cela fonctionne bien sur, mais pour ma gouverne personnelle et pour progresser dans la compréhension du VBA, peux tu me dire si tu aurais placé ce bout de code à cet endroit où si cela fait bondir les puristes ?

Catrice et Said merci également (mais catrice je n'ai pas pu ouvrir ton fichier)

A+
 
G

Guest

Guest
Re : Format numérique Balance récalcitrante

Re, Sylvie

Le Selection.NumberFormat = "#,##0.00" est très bien là où tu l'as mis.

Ce qui est bien c'est ce qui marche et te convient, les puristes, laissons les puritaniser?, purister? purer? ou ce qu'ils voudront.:)

bises et à bientôt
 

Statistiques des forums

Discussions
312 106
Messages
2 085 351
Membres
102 871
dernier inscrit
Maïmanko