Suppression espace dans un nombre

Bonjour,

j'ai un fichier excel (source un outil de gestion) dans lequel j'ai plusieurs colonnes informations mais aussi de nombre. Ces nombres sont au format suivant :

12 345,67 puis la ligne suivante est au même format 12 345,67. Ce qui se passe lorsque je veux sommer ces deux lignes là, au lieu de me donner 24691,34, mon total est de 2. Autrement dit, il ne reconnait pas les caractères. J'ai essayé les fonctions convertir, format de cellule, la fonction supprespace... rien y fait. Auriez vous svp une solution de manière à ce que mon format 12 345,67 devienne 12345,67 et que la sommation se fasse sans problème ?

merci pour votre aide,

Bonjour avez-vous essayez =CNUM() ou alors dans la colonne d'à coté de multiplier la cellule par 1 ? Sinon vous pouvez aussi essayez de changer le point en virgule ou vice et versa

Bonjour

En supposant que tes deux cellules sont B3 et B4, essaie cette formule -> =CNUM(SUBSTITUE(B3;" ";""))+CNUM(SUBSTITUE(B4;" ";""))

Si ok, clique sur le v vert à coté du bouton EDITER pour cloturer le fil lors de ta réponse

Crdlt

Bonjour,

tout d'abord merci pour vos réponses mais je crois que je me suis mal expliqué : voici le fichier joint. Ma préoccupation se situe dans les colonnes E F H I J K

j'ai essayé vos formules mais sauf erreur de ma part ca ne fonctionne pas. Auriez vous autre chose en magasin ?

merci

raté, le fichier n'est pas joins au message

oops désolé Force rouge !!! le fichier est trop gros !!! le voici plus léger merci pour votre aide

32conso-treso-2.xlsx (11.21 Ko)

Ah oui quand même...Y a un sacré problème avec les deux premières lignes, les autres elles sont bien en texte mais les deux premières....Franchement chapeau! Il faut le faire pour avoir se genre de problème (vous n'vous appelez pas Monsieur Pouasse ?)

bon ceci dit, en curatif immédiat il y a cette petit macro qui règle le problème pour pouvoir faire les calculs

Sub probleme()
Dim c As Range
Feuil1.Range("e2:k" & Feuil1.Range("k" & Rows.Count).End(xlUp).Row).Select
For Each c In Selection
c = c * 1
Next
End Sub

LOL merci force rouge !

encore une question le programme que vous m'avez communiqué je l'insère ou & comment ?

merci

nota : je ne suis pas un grand expert d'excel, je pense que c'est du VBA mais....pas sur

euh...Quand vous êtes dans excel vous faites alt+f11 (cela va vous ouvres l'éditeur vba) puis dans cet éditeur vous allez dans le menu insertion pour inserer un nouveau "module" et c'est dans se module qu'il faut copier le code...

Super merci force rouge - je vais réessayer et vous tiens au courant. Merci encore !! bon week end

sinon vous prenez celui-ci. ctrl +q pour lancer la macro...

Bonjour,

ou bien sans macro :

  • tu copies l'espace qui est dans -11 479.72 (qui est en fait le code 0160, espace insécable)
  • tu sélectionnes E:K
  • Ctrl+H (Remplacer)
Remplacer : tu colles le caractère copié ou tu saisis Alt+0160 (relacher Alt après saisie des 4 chiffres)

Par : (vide)

'Remplacer tout'

- et selon ton séparateur décimal, remplacer , par .

eric

Salut eriiiiiiiiic et merci pour l'astuce mais une question me taraude, en passant par vba en multipliant par 1 cela transforme en format nombre en déjouant le piège du caractère insécable mais si on multiplie par 1 directement dans excel il n'y a aucun changement on retombe sur une valeur d'erreur...Pourquoi ? (Bonne question merci je sais....)

Sans doute que la routine de conversion n'est pas la même en vba et sur la feuille, et qu'elle tient compte des 2 types d'espace.

En fait en vba tu n'es même pas obligé de * 1

Dim va As Double
va = [E2]

Tu peux voir que va a bien la valeur numérique.

Et :

[E2] = CDbl([E2])

nous converti bien en numérique.

eric

Merci eriic , je vais faire different type de test avec long et integer juste par curiosité!

Rechercher des sujets similaires à "suppression espace nombre"