Problème de report de nombre

Salut,

Pour un logiciel de compta je veux reporter dans une cellule Excel un chiffre saisi dans un textbox. J'utilise pour ça la commande

Sheets("Compte courant").Cells(Ligne, 11) = Replace(Format(TextboxX, "0.00"), ",", ".")

Dans certains cas la valeur saisie dans le textbox n'est pas reportée dans la cellule (1 est transformé en 0.04, 2 en 0.08, ..., 10 en 0.42, ..., 23.59 en 1). Ca semble ne plus être le cas à partir de 23.6 mais j'ai un pourtant 10.75 qui est bien reporté...

Qu'est ce qui pourrait expliquer ça ?

Voilà le fichier :

UserForm_Report_Lignes / Sub Validation

Merci d'avance.

Manu

Bonjour,

Il y a plusieurs UserForm et TextBox sur ton fichier,

peut-tu être plus spécifique dans ta définition du problème ?

Bonjour,

Pour ceux qui ne sont pas comptable (ce qui est mon cas) explique la minip pour arriver jusqu'au résultats qui ne conviennent pas (clic sur quel bouton de quel formulaire puis quelle valeur dans quel TextBox, etc ...

Désolé, j'étais pas étanche à 2h20 du matin...

Il faut lancer le menu principal avec la macro " Ouverture " dans le module 1 et cliquer sur le bouton " Reporter / mettre à jour les lignes de budget ... ".

Un UserForm (" UserForm_Report_Lignes ")s'affiche en reprenant toutes les lignes de budget (à partir de l'onglet " Budget "). Dans ce tableau il y a une ligne " Portable 1 " à 2 € et une ligne " Cotisation club " à 11 €.

Quand on clique sur " Valider " les montants de ces 2 lignes sont reportés respectivement avec 0.08 € (ligne 19 de l'onglet " Compte courant ") et 0.46 € (ligne 28 de l'onglet "Compte courant "). Tous les autres montants sont correctement reportés.

C'est là qu'il y a un os...

En faisant l'exécution pas à pas du UserFom " UserForm_Report_Lignes ", les montants de 2 et 11 € sont correctement repris des TextBox mais c'est la conversion (remplacement de la virgule par un point et affichage avec 2 décimales) qui ne se passe pas bien.

Manu

Regarde si tu n'as pas un format heure.mm qui perturberait le report des valeurs ... surtout quand on voit que 23.59 (heure) est transformé en 1 (jour ?)

re,

Il faut lancer le menu principal avec la macro " Ouverture " dans le module 1 et cliquer sur le bouton " Reporter / mettre à jour les lignes de budget ... ".

ok

Un UserForm (" UserForm_Report_Lignes ")s'affiche en reprenant toutes les lignes de budget (à partir de l'onglet " Budget "). Dans ce tableau il y a une ligne " Portable 1 " à 2 € et une ligne " Cotisation club " à 11 €.

ok

Quand on clique sur " Valider " les montants de ces 2 lignes sont reportés respectivement avec 0.08 € (ligne 19 de l'onglet " Compte courant ") et 0.46 € (ligne 28 de l'onglet "Compte courant "). Tous les autres montants sont correctement reportés.

Quand on clique sur " Valider " il y a beaucoup plus que 2 lignes qui sont reportés, c'est difficile de cerner quel est ton problème ?

Regarde si tu n'as pas un format heure.mm qui perturberait le report des valeurs ... surtout quand on voit que 23.59 (heure) est transformé en 1 (jour ?)

J'y ai pensé mais je ne le trouve pas. Ni dans la macro, ni dans les formats de cellule

Quand on clique sur " Valider " il y a beaucoup plus que 2 lignes qui sont reportés, c'est difficile de cerner quel est ton problème ?

Quand on clique sur " Valider " les montants de ces 2 lignes sont reportés respectivement avec 0.08 € (ligne 19 de l'onglet " Compte courant ") et 0.46 € (ligne 28 de l'onglet "Compte courant "). Tous les autres montants sont correctement reportés.

Manu

re,

Voici le résultat obtenu,

je ne comprend toujours pas,

manu31 test

Bonjour Manu, le forum,

je te retourne ton fichier modifié :

à toi de faire les tests.

dhany

re,

Voici le résultat obtenu,

je ne comprend toujours pas,

Ben t'as de la chance ça marche chez toi. Chez moi les lignes que tu as surlignées renvoient 0.08 et 0.46. La commande

format(Valeur,"0.00")

les converti en format horaire...

D'où une question supplémentaire : comment Excel peut être instable et aussi peu fiable au point qu'une même routine renvoie des résultats différents selon les machines sur lesquelles elle tourne ? Déjà que la mise en page dépend de la résolution d'écran...

Bonjour Manu, le forum,

à toi de faire les tests.

dhany

Je viens d'arriver à un résultat équivalent en supprimant le format de la macro. C'est pas très propre puisque maintenant le format dépend de celui de la cellule dans laquelle la valeur est envoyée et non plus du traitement de la macro, mais au moins ça marche.

Merci.

Manu

D'où une question supplémentaire : comment Excel peut être instable et aussi peu fiable au point qu'une même routine renvoie des résultats différents selon les machines sur lesquelles elle tourne ? Déjà que la mise en page dépend de la résolution d'écran...

Ma philosophie est claire ... j'évite les UserForm pour rentrer des valeurs. Je privilégie toujours l'entrée de valeurs dans une feuille, quitte à spécialiser une feuille pour cela et renvoyer ensuite les valeurs dans une liste ou base de données. Au moins tu maîtrise les formats.

Rechercher des sujets similaires à "probleme report nombre"