XL 2016 Decimal a 2 seulement

Dennnisss

XLDnaute Occasionnel
Bonjour ,,,,,
Je suis un cycliste et avec votre aide j'avais creer un programme pour mes données personnel je totalise 24 ans de données
Je cherche a mettre a jour mon documents que sa fait deja une dizaine année il vieillit ,,,, ce documents avait été creer avec logiciel excel 2003 ,,,, la pour etre sur de pouvoir concerver ce documents le plus longtemps je dois me mettre a jour sur les logiciels plus performant ,,,,, je tente de le convertir sur un excel 2016 a 32 bits ,,,,, Bien je fait face a de nombreuses erreurs sur mon ancien je me servait de la fonction Format pour determiné le nombre de décimal apres la virgule soit 2 pour les labels ,,,,,
Label405.Caption = .Cells(43 + offset, 19)et je le formulais comme suit Label405 = Format(Label405, "####.00")
je suis obligé d'enlever la formule Format car il semble pas reconnaitre cette formule ,,,,, alors j'aurait besoin de votre aide comment maintenant je peut faire pour que les labels affiche seulement 2 decimals ,,,,, je suis allée tenter de mettre les cellulles a 2 decimals et rien n'a changer ,,,, alors je me refaire a vous
bien sur je vous envoie une tres petite partie pour etre capable de le transmettre
merci de votre aide elle est grandement apprécié denis gauthier :):)
 

Pièces jointes

  • Modele format.xls
    162.5 KB · Affichages: 20

Dennnisss

XLDnaute Occasionnel
Bonjour a vous deux ,,,, Tout d'abord un gros merci de m'avoir aidé et prendre le temps ,,,,, j'ai opté pour la solution de Mrs M12 c'est super il va a merveille ,,,, car celui de Mrs Soan il affiche les numero de label et non le resultats a moins que j'ai mal compris le fonctionnement de sa logique ,,,,, merci a vous deux je continue de faire la correction vers excel 2016 et sur que j'aurai besoin de votre aide merci a vous et bonne chance dans ce temps difficile :):):)
 

soan

XLDnaute Barbatruc
Inactif
@Dennnisss

dans le fichier joint de mon post #3, ma modif de ton code VBA est ceci :
VB:
Private Function fmt(nb#) As String
  fmt = Format(nb, "0.00")
End Function

Private Sub UserForm_Initialize()
'...
Label405.Caption = fmt(.Cells(43 + offset, 19)): Label406.Caption = fmt(.Cells(44 + offset, 19))
Label407.Caption = fmt(.Cells(45 + offset, 19)): Label408.Caption = fmt(.Cells(46 + offset, 19))
Label409.Caption = fmt(.Cells(47 + offset, 19)): Label410.Caption = fmt(.Cells(48 + offset, 19))
Label411.Caption = fmt(.Cells(49 + offset, 19)): Label412.Caption = fmt(.Cells(50 + offset, 19))
Label413.Caption = fmt(.Cells(51 + offset, 19)): Label414.Caption = fmt(.Cells(52 + offset, 19))
Label415.Caption = fmt(.Cells(53 + offset, 19)): Label416.Caption = fmt(.Cells(54 + offset, 19))

Exit Sub 'je te laisse enlever cette instruction, et faire la suite en dessous
'...
End Sub
le résultat est celui-ci (quand on clique sur CommandButton1) :

Image.jpg


dans le code, j'ai bien précisé que tu dois enlever Exit Sub et faire la suite en dessous ;
c'est-à-dire de la même façon que j'ai fait ; si tu ne l'as pas fait, c'est normal que tu
as des numéros de label comme 435, puisque ce sont ceux à l'initialisation, et qu'ils
n'ont pas été modifiés vu la sortie prématurée par Exit Sub.

si tu complètes le code VBA pour tous tes nombreux labels, en faisant les mêmes
modifs que moi, tu auras le résultat attendu. ;)


soan
 

soan

XLDnaute Barbatruc
Inactif
@Dennnisss

Lis d'abord mon post précédent.

pour le Caption suivant, complète :

Label422.Caption = .Cells(43 + offset, 20)

ainsi :
Label422.Caption = fmt(.Cells(43 + offset, 20))

--------------------------------------------------------------------------------------------------------------

donc la ligne :

Label422.Caption = .Cells(43 + offset, 20): Label423.Caption = .Cells(44 + offset, 20)

devient :

Label422.Caption = fmt(.Cells(43 + offset, 20)): Label423.Caption = fmt(.Cells(44 + offset, 20))

--------------------------------------------------------------------------------------------------------------

note que mon code VBA a le gros avantage de mettre le format directement,
et pas en 2 étapes successives ; il te suffit juste de le compléter. :)


soan
 

ChTi160

XLDnaute Barbatruc
Bonjour Dennnisss
Bonjour le Fil, le Forum
Il est recommandé aussi de ne pas utiliser de terme appartenant au vocabulaire de l'appli pour en faire des variables (si j'ai bien lu)
Offset par exemple.(apparemment il ne sert a rien ce offset !!!!!)
Bonne journée
Jean marie
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour Jean-Marie, @Dennnisss,

tu as raison sur les deux choses :

* il ne faut pas utiliser des mot-clés de VBA (keywords) pour des noms
de variables (ni pour d'autres noms, tels que des noms de formes, ou
des noms de tableaux structurés, par exemple).

* le offset ne sert à rien ; je n'avais pas voulu prendre le temps de le vérifier,
me disant que Dennnisss savait pourquoi il l'avait utilisé ; aussi, je m'suis
occupé du format uniquement.

une ligne telle que :


Label422.Caption = .Cells(43 + offset, 20): Label423.Caption = .Cells(44 + offset, 20)

peut donc devenir :
Label422.Caption = fmt(.[T43]): Label423.Caption = fmt(.[T44])

soan
 

Dennnisss

XLDnaute Occasionnel
Oh que je suis stupéfaits ,,,,,,, bien reçu ton message Soan et merci pour l'explication elle est très clair et apprécié ,,,, la je suis bouche bé avec toutes ses solutions ,,,, pour le cas de ChTi160 tu a un bon sens étant donné que je doit mettre au plus bas le document pour le transfert j'ai déjà cette option que tu ma envoyer en vidéo sur un autre sub que j'avais créer avec votre aide bien sur qui agis de très près a ce que tu m'a confectionner merci beaucoup a tous c'est pro ,,,, votre site est tellement utile pour des gens comme moi qui cherche a se créer un petit programme et que sa connaissance est limité merci encore :):):)
 

Discussions similaires

Réponses
1
Affichages
189

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 117
dernier inscrit
augustin.morille