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

Microsoft 365 Problème conversion Nombre

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

eric72

XLDnaute Accro
Bonjour à tous les As d'EXCEL,
Je me retrouve dans une impasse et sans vous je ne m'en sortirais pas.
Dans le fichier ci-joint dans l'onglet "Chantiers" j'ai un bouton pour ouvrir un Userform et lorsque je sélectionne le Client "BREGEON" et que je l'ajoute le "Nombre D'heures total du chantiers" passe de 53,4666666666667 (onglet "base") à
534666666666667 lors de l'exportation dans "Chantiers", quelqu'un a-t-il déjà rencontré ce cas?
Oui je sais cela parait invraisemblable et pourtant!!!
Un grand merci d'avance.
Cordialement.
Eric
 

Pièces jointes

Bonjour.
Essayez en remplaçant
Cells(Derligne, 8) = Format(TxtNbHeures.Value, "general number")
par :
VB:
Cells(Derligne, 8) = CDbl(TxtNbHeures.Text)
Lorsqu'on affecte à une valeur ce cellule un texte comportant des chiffres et une virgule, il essaye de l'interpréter comme un nombre mais à l'anglo-saxonne, la virgule étant ignorée puisque c'est le séparateur de milliers. Alors affectez donc directement le nombre résultant d'une convertion correcte du texte.
 
Dernière édition:
Bonjour eric72, Bernard,
VB:
Cells(Derligne, 8) = CDbl(TxtNbHeures.Text)
provoquera un bug si la valeur entrée dans la TextBox n'est pas numérique.

Il vaut mieux utiliser :
VB:
Cells(Derligne, 8) = Val(Replace(TxtNbHeures, ",", "."))
qui fonctionne quel que soit le séparateur décimal utilisé.

A+
 
Bonjour,

Il faut différencier un texte d'un nombre. L'instruction FORMAT renvoie du texte à un format donnée.
Une heure pour excel est de type Double. Utilisez la fonction de conversion CDBL dans votre procédure de validation Btn_Valider_Click() :
Cells(Derligne, 8) = CDbl("0" & TxtNbHeures.Value)
Le "0" n'est là que pour tromper CDBL au cas où TxtNbHeures serait vide.
CDBL travaille avec le séprateur décimal de l'ordinateur".

Cordialement

[Edit] Oups, j'arrive après la guerre, moi. Bonjour tout le monde
 
- 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

Discussions similaires

Réponses
0
Affichages
2 K
M
Réponses
5
Affichages
2 K
W
Réponses
1
Affichages
1 K
L
S
Réponses
7
Affichages
898
Celeda
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…