Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

chiffres sans valeur, le retour...

  • 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
Bonsoir le forum
Tout d’abord, merci à ceux qui ont répondu à mon mail ;
A on grand regret, les solutions proposées n’ont rien donné ;
La fonction CAR(cellule) renvoie le code 48, qui correspond, d’après mes essais, à la valeur 0
Et pourtant, il existe bien ce foutu caractère invisible !
Ci joint un fragment du fichier en question :
La colonne A se laisse additionner sans problème, mais essayez d’en faire autant avec les colonne B et C
Bon courage à ceux qui s’y frotteront. Le problème n’est pas grave, mais très agaçant…
Bonne soirée à tous
André
 

Pièces jointes

c'est parce que tes nombres sont stockés sous forme de texte. Tu peux arranger ça en mettant dans une colonne supplémentaie =CNUM(B2), puis tu étends toute la colonne, ensuite soit tu fais tes calculs sur cette colonne supplémentaire, soit tu fais un copier-coller de ces vrais nombres sur ta colonne d'origine.
Ou alors, tu fais tes calculs directement, mais en mettant à chaque fois CNUM(B..) quand tu fais référence aux colonnes B ou C.
= A(3) + CNUM(B3) - CNUM(C3)
 
bonsoir,

oui, Ti a tout à fait raison,

mais nouvelle enigme alors,:

pourquoi l'addition fonctionne si on additionne en ligne deux cellules (une de B avec celle de C à côté)

B2+C2 donne bien un résultat <> 0 !!

why ?

@+

brett.
 
Bonsoir André, Le Forum,

J'y suis arrivé !! ?? !!

En faite je possède Excel 2003, et lorsque tu cliques sur une cellule Excel detecte qu'il s'agit de la forme d'un nombre mais au format texte.

Il affiche alors une petit panneau sur la gauche de la cellule, et quand tu cliques dessus il te propose une liste d'action.

J'ai choisi parmi celles-ci "Convertir en nombre" et voila ...

Par contre effectivement ca ne marche pas avec le méthode "traditionnelle" cellule/format, etc ...

Je ne comprends pas bien pourquoi !!

MAis bon voila la preuve de ce que j'annonce en PJ

++

Creepy
 

Pièces jointes

pour info andré, ton caractère invisible est ' (simple cote)

saisi dans une cellule '12, et seul 12 apparaitra 🙂
la cote à disparue, mais à mis ta cellule en format texte.

CQFD

@+

brett
 
Bonsoir André, et tout le monde,

A toutes fins utiles, voici la même chose que Ti en macro VBA :

Tu colles le code ci-dessous dans un module :

Sub Convertir()
Dim C As Range
On Error Resume Next
For Each C In Selection
If CDbl(C.Value) <> 0 Then C.Value = CDbl(C.Value)
Next
On Error GoTo 0
End Sub

Tu sélectionnes ta plage et tu lances cette macro.

Cordialement.
Didier
 
Salut à tous !

Je crois pouvoir lever un coin du voile :
L'énigme ne concerne que des réels, les entiers sont corrects.
J'ai écris en E7 0,763 en regard de B7 où tu as 0,763 aligné à gauche.
Ma saisie s'est alignée à droite, c'est normal.
J'ai ensuite comparé toutes les propriétés des deux cellules et constaté une différence sur Formula.
Ta cellule B7 contient 0,763
Ma cellule E7 contient 0.763 !
Il s'agit donc probablement d'un bug au niveau de la francisation d'Excel.
Essaie ceci :

If Range("B7").Formula <> Range("E7").Formula Then
MsgBox Range("B7").Formula & " " & Range("E7").Formula
End If

Etonnant non ?

A+
LN
 
Bonjour Ândré, tous

J'ai le même type de problème dans une base de données Oracle et VB pour tout ce qui est requètes et affichages. Je n'en connais pas les versions respectives et je ne suis pas maître de ces choix.

Certains affichages générés via VB sont faux (fonction sommes), et donc les exports correspondants aussi, pour les mêmes raisons.

Il semble que VB soit capricieux à ce niveau.
Il lui arrive aussi d'inverser les JJ/MM (format anglo-saxon/français) au moment de la récupération par VB (toujours DD/JJ/YY dans la base) notamment si le jour est inférieur au douxième mois (là quand même il se rend compte de quelque chose). Sur le problème de date, cela semble aussi aléatoire.

Notre développeur (société externe) ne connait pas la source de ces problèmes (il est pourtant pas si mauvais que ça, à priori).

Je sais que cela ne résoud pas tes problèmes.
D'autre part, il me semble avoir vu quelques fils sur ces sujets sur le forum (date notamment).

Si quelqu'un a une idée, quelle qu'elle soit .....


Le double clic sur la valeur dans Excel revalide le contenu en numérique comme dit plus haut ainsi que =cnum().
Cette solution est vite rébarbative surtout sur les gros tableaux, alors....

Bon week end malgré tout

Abel
 
Salut le forum
Vos mails m'ont amené deux solutions :
Ti a raison : en faisant CNUM( cellule), on convertit la valeur du format
?????? en numérique...
Lord Nelson a aussi raison : j'ai remplacé la virgule par un point, puis ce
point par une virgule; En le faisant directement, ça fonctionne; dès que je
le passe en macro, ça ne fonctionne pas ?????
La solution de Ti me convient, mais je vais m'empresser de mettre au courant mon expéditeur de fichiers mal foutus, afin qu'il s'arrange pour importer correctement ses valeurs.
Bon week-end à tous, et encore merci de votre aide
Si ce forum n'existait pas, avec ses experts, il faudrai l'inventer, et vite....
André
 
Salut André et tous !

Voici la macro la plus paradoxale que j'aie vu :

Sub Convertir()
'Voici une macro dingue :
'Il faut remplacer une virgule par un point
'pour obtenir.... une virgule
'Merci Mister Bill !
Dim CL As Range
Dim ST As String
For Each CL In Selection
ST = Replace(CL.Formula, ",", ".")
CL.Formula = ST
Next
End Sub

En fait, il ne faut pas chercher à revenir à la virgule, Excel le gère lui-même.

A+
et merci pour cette enigme.
LN
 
Lord Nelson, c'est simplement parce que VBA ne connaît que le point comme séparateur décimal, mais ensuite Excel retranscrit ce point selon les paramètres locaux, donc il remet une virgule chez nous. Cela n'est pas plus mal, chaque fois qu'on utilise VBA, on sait qu'on n'a qu'un seul séparateur : le point...
 
D'accord avec toi Ti, VBA n'a pas été francisé donc son séparateur décimal est un point (un point américain lol).

Le côté paradoxal des données d'André dans Excel est que leurs propriétés Text et Formula ont une virgule.
Or un nombre normal a une propriété Text avec virgule et une propriété Formula avec un point.
Donc, pour redonner aux chiffres d'André un comportement habituel, il convient de remplacer la virgule de leur Formula par un point.
Autrement dit, il faut les américaniser un peu pour qu'ils se comportent comme de bons Français !

A+
LN
 
Lord Nelson, Ti, Ândré, tous,

Fouuia !
Quel roman j'avais mis.

J'en étais au même point que Lord Nelson mais avec la variante suivante :

For Each c In Selection
c.Value = CDec(c)
Next c

Le problème est de règler la sélection si elle est "mouvante".

Ca marche aussi. Ca prend environ 2/100e de seconde sur l'exemple de Ândré sur une colonne.

L'idéal étant de travailler sur la passerelle entre la base de données et Excel.

A+

Abel
 
Bonjour tous,

Pour finir, j'ai rajouter un plus pour permettre de faire fonctionner cette petite fonction sur des colonnes ou des lignes entières :

Sub FormatNombre()
On Error Resume Next
For Each c In Selection
c.Value = CDec(c)
Next c
End Sub

J'ai mis cette fonction dans Perso.xls associée à un bouton dans les barres d'outils standarts.
Comme ça, c'est toujours dispo. Attention, cependant, en cas de changement de profil.

De plus, si cela fonctionne bien dans le cas soumis par Ândré, cela ne fonctionne pas s'il y a un séparateur décimal américain. Il faut combiner avec le code de Lord Nelson.


J'espère que mon blabla sera utile à quelqu'un.

Bonne journée.

Abel
 
- 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

A
Réponses
10
Affichages
993
Dugenou
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…