chiffres sans valeur

  • Initiateur de la discussion Initiateur de la discussion André
  • 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 !

A

André

Guest
Salut le forum,
Une énigme à vous soumettre :
J'ai reçu, pour le boulot un fichier Excel de facturation. J'aurai voulu vérifier la somme totale, mais il a été impossible de faire additionner cette colonne de chiffres. Une autre colonne, dans la même feuille, fonctionnait correctement, mais pas celle que je voulais. J'ai pensé que mes chiffres étaient en format texte, mais impossible de changer le format (passer à plus de deux décimales, mettre en format monétaire, etc...). J'ai essayé avec la formule EPURAGE, mais rien n'a changé.
Finalement, j'ai contourné le problème en effaçant le premier caractère, ou ce que je crois être le premier caractère, car il était invisible. Maintenant, j'ai pu additionner, mais j'aimerai comprendre, et surtout avertir l'émetteur du fichier, car je n'aimerai pas me refaire toute une colonne à chaque fois...

Merci de votre attention, et j'espère de votre solution ........
André
 
Bonsoir André, le Forum

Il arrive assez souvent lors de manipulation de fichiers entre diverses sources de bases de données et des conversions vers TXT ou autre qu'au final Excel hérite simplement d'un espace en début de chaque cellule...


Une petite macro comme ceci peut y remédier en un rien de temps.
Sub Nettoyage()
Dim Cell As Range

For Each Cell In Sheets("Sheet1").UsedRange
Cell.Value = LTrim(Cell)
Next
End Sub

NB : Ltrim si l'espace est à la gauche, Rtrim à droite, Trim pour Gauche ET Droite...

Bonne Soirée
@+Thierry

PS II si ce n'est pas un espace il faudrait connaître sa nature et son numéro Ascii...
 
Salut André,

Cette question a déjà été posée ici, mais je ne retrouve pas le post.

Il s'agit d'un caractère non visible qui vient se poser devant le nombre et qui empêche l'addition.

Pour le repérer tu fais : =CODE(GAUCHE(ta cellule;1)) et tu obtiendras son numéro (de mémoire 1000 et quelque chose).

Ensuite tu sélectionne la colonne et tu fais un supprimer de : CAR(le numéro que la formule code t'a renseigné).

J'espère que c'est cela.

Ândré.
 
PS III Si le tableau est immence...

Sub Nettoyage()
Dim Plage As Variant
Dim i As Integer, ii As Integer

Plage = Sheets("Sheet1").Range("A1:H1000")

For i = 1 To 8
For ii = 1 To 1000
Plage(ii, i) = LTrim(Plage(ii, i))
Next ii
Next i

Sheets("Sheet1").Range("A1:H1000") = Plage


End Sub

Bye suis à la bourre
@+Thierry
 
Salut @Thierry,

Oups, sur la même longueur d'onde.
Oserais-je dire deux solutions issues du même bac de Duvel (lol).

A y réfléchir, tu ne m'as jamais dit si pour toi c'était des bouteilles à étiquette rouge (33 cl) ou verte (28 cl).

Pour revenir à la question, il serait peut-être plus simple d'essayer d'abord un SUPPRESPACE ou un SUBSTITUE.

Au plaisir de te revoir.
Ândré.
 
hello Ândré & André & Co !

Je pense que si on parle bien d'un espace indésirable, la Fonction VBA TRim (ou RTrim, Ltrim) en VBA est exactement prévu pour faire ceci....

Maintenant si on veut le faire par Formule sur feuille, SUPPRESPACE doit en être la traduction, mais nécessite, si je ne m'abuse de passer par un tableau intermédiaire (ou l'insertion de colonnes etc)... Les deux boucles VBA poposées ci-dessus, le font directement sur les données (je conseille toutefois de garder un exemplaire d'origine en back-up)

Par contré Ândré, je ne connais pas la méthode "tu sélectionnes la colonne et tu fais un supprimer de : CAR(le numéro que la formule code t'a renseigné" et jusqu'à présent je remplaçais un CAR indésirable par la méthode remplacer...par "" (rien)

Et finalement Ândré, compte tenu de la haute confidentialité du truc je te réponds en Chr(lol)

Sub TopSecret()
Dim i As String, MessagePourAndre As String, Titre As String
i = Chr(32)

Titre = "Pour " & Chr(194) & Chr(78) & Chr(68) & Chr(82) & Chr(201)
MessagePourAndre = Chr(68) & i & Chr(85) & i & Chr(86) & i & Chr(69) & i & Chr(76) & i & i & _
Chr(82) & i & Chr(79) & i & Chr(85) & i & Chr(71) & i & Chr(69) & i & i & _
Chr(51) & Chr(51) & Chr(99) & Chr(108) & i & i & Chr(33) & Chr(33)

MsgBox MessagePourAndre & Chr(10) & Chr(10) & Chr(9) & Chr(9) & "lol, @+Thierry", , Titre
End Sub


Bonne soirée
@+Thierry
 
Bonsoir

Une toute petite intervention dans ce fil, la fonction =CODE(A1) retourne le numéro ASCII de la première lettre contenue dans la cellule A1, André, tu n'as pas besoin de faire un GAUCHE(A1;1)

@+Jean-Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
204
  • Question Question
Microsoft 365 Power Query
Réponses
8
Affichages
273
Retour