Garder les 0 apres la virgule....
Résolu/Fermé
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
-
20 juil. 2017 à 17:07
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 - 27 juil. 2017 à 14:55
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 - 27 juil. 2017 à 14:55
A voir également:
- Garder les 0 dans un fichier csv
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
3 réponses
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
25 juil. 2017 à 08:06
25 juil. 2017 à 08:06
Bonjour à tous les deux
Car je qualifierai ton style d´ecriture comme assez profesionnel!
Je te trouve un peu dur avec yves qui essaies de t'aider, il est difficile d'y voir clair sans avoir un/des exemple/s (réels) de ton problème ou sans boule de cristal efficace ;-)
Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
Cdlmnt
Car je qualifierai ton style d´ecriture comme assez profesionnel!
Je te trouve un peu dur avec yves qui essaies de t'aider, il est difficile d'y voir clair sans avoir un/des exemple/s (réels) de ton problème ou sans boule de cristal efficace ;-)
Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
Cdlmnt
yg_be
Messages postés
22697
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
25 juil. 2017 à 09:14
25 juil. 2017 à 09:14
bonjour, une piste de réflexion (cela ne marche pas pour tous les formats):
Format(ActiveSheet.Cells(10, 10).Value, ActiveSheet.Cells(10, 10).NumberFormat)
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
25 juil. 2017 à 21:56
25 juil. 2017 à 21:56
Bonjour yg_be
Je ne peux pas changer le format de ma cellule cible je je cherche juste a determiner le nomre de decimale apres la virgule mais lorsque c´est des 0 je n ´arrive pas a les detecter....
Merci de ton aide
Je ne peux pas changer le format de ma cellule cible je je cherche juste a determiner le nomre de decimale apres la virgule mais lorsque c´est des 0 je n ´arrive pas a les detecter....
Merci de ton aide
yg_be
Messages postés
22697
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
25 juil. 2017 à 22:08
25 juil. 2017 à 22:08
je ne propose pas de changer le format de la celulle, je propose quelque chose comme:
(cela ne marche pas pour tous les formats, donc à améliorer)
TBDatos(iNbLi, iTB) = Format(.Cells(DbLinCod + jNbLi, 7).Value, .Cells(DbLinCod + jNbLi, 7).NumberFormat)
(cela ne marche pas pour tous les formats, donc à améliorer)
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
>
yg_be
Messages postés
22697
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
27 juil. 2017 à 14:48
27 juil. 2017 à 14:48
Bjr,
Pour etre sincere avec toi, je ne connaissais pas du tout, je ne comprends pas encore pourquoi, mais cela fonctionne!
Je vais tester encore et encore pour voir les limites de compatibiliter de cette fonction!
Merci yg_be, et a bientot ;)
Pour etre sincere avec toi, je ne connaissais pas du tout, je ne comprends pas encore pourquoi, mais cela fonctionne!
Je vais tester encore et encore pour voir les limites de compatibiliter de cette fonction!
Merci yg_be, et a bientot ;)
Bonjour GermPeru,
Ce code VBA devrait t'aider :
Merci de me donner ton avis.
Ce code VBA devrait t'aider :
Option Explicit Function SetNb(r As Double, n As Byte) As String SetNb = Format(r, "0." & String$(n, "0")) End Function Sub Essai() Dim r As Double: r = 2 MsgBox SetNb(r, 3) MsgBox SetNb(r, 5) MsgBox SetNb(r, 1) End Sub
Merci de me donner ton avis.
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
20 juil. 2017 à 17:58
20 juil. 2017 à 17:58
Salut et merci de ta réponse,
ok pour ta fonction mais comment je fais pour determiner le n vu que c´est ce que je cherche a determiner?
Par exemple dans ma cellule je peux avoir 3, 4 ou 5 decimale mais je n´arrive pas a recuperer cette donnée?
Merci Yves
ok pour ta fonction mais comment je fais pour determiner le n vu que c´est ce que je cherche a determiner?
Par exemple dans ma cellule je peux avoir 3, 4 ou 5 decimale mais je n´arrive pas a recuperer cette donnée?
Merci Yves
yves
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
20 juil. 2017 à 18:37
20 juil. 2017 à 18:37
Sur une feuille vierge, entre 2 en B2 (par exemple) ; et mets-lui
ce format simple : Nombre avec 3 décimales => 2,000
Mon code VBA retournera 3 pour 3 décimales, mais attention :
ça ne marche que pour des formats de nombres simples ;
pas pour d'autres ; tels que : 0.000;-0.000;;
Essaye ce code VBA :
Option Explicit Function Nb0(cellX As Range) As Byte Dim chn As String, p As Byte, n As Byte chn = cellX.NumberFormat: p = InStr(chn, "."): n = Len(chn) - p If Right$(chn, n) = String$(n, "0") Then Nb0 = n End Function Sub Essai() MsgBox Nb0([B2]) End Sub
Pour des formats plus complexes, à toi de voir selon les formats
(personnalisés ou non) qui sont utilisés par ta feuille de calcul.
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
>
yves
24 juil. 2017 à 16:40
24 juil. 2017 à 16:40
Bonjour Yves,
J' ai essayé de comprendre ton code avant de te répondre avec précipitation. Car je qualifierai ton style d´ecriture comme assez profesionnel!
De plus j´ai fait différents tests, donc la grande partie du temps j´ai ma cellule en format texte, a partir de ce moment la ta fonction ne fonctionne plus car il ne détecte pas les 0 en fin et j´ai essayé en format général avec ajout de 3 0 aprés la virgule et de meme le msgbox m´indique 0?
Pourrais tu m´en dire un peu plus stp.
Merci Yves
J' ai essayé de comprendre ton code avant de te répondre avec précipitation. Car je qualifierai ton style d´ecriture comme assez profesionnel!
De plus j´ai fait différents tests, donc la grande partie du temps j´ai ma cellule en format texte, a partir de ce moment la ta fonction ne fonctionne plus car il ne détecte pas les 0 en fin et j´ai essayé en format général avec ajout de 3 0 aprés la virgule et de meme le msgbox m´indique 0?
Pourrais tu m´en dire un peu plus stp.
Merci Yves
yves
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
24 juil. 2017 à 17:02
24 juil. 2017 à 17:02
Bonjour GermPeru,
Si la cellule B2 est en format texte, et que tu utilises le point comme
séparateur décimal, alors pour 2.000 et pour 2.375 : retour 3, avec
ce nouveau code VBA :
Option Explicit Function Nb0(cellX As Range) As Byte Dim p As Byte: p = InStr(cellX, ".") If p > 0 Then Nb0 = Len(cellX) - p End Function Sub Essai() MsgBox Nb0([B2]) End Sub
Si tu utilises la virgule comme séparateur décimal,
mettre : p = InStr(cellX, ",")
À te lire pour avoir ton avis.
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
>
yves
25 juil. 2017 à 21:09
25 juil. 2017 à 21:09
Bonjour Yves,
Dans la cellule de mon document source j´ai une formule selon un fomat, j´ai utilisé ta fonction et cela m´indique toujours 0... Je ne comprends pas trop.
Je rsume:
-document source protéger mais je peux copier les info
-formule dans ma cellule cible
-format general de ma cellule cible 2.000, j´ai vérifié et ce n´est pas une ","
Resultat de ta fonction = 0
Resultat de .value = 2
Merci de ton aide
Dans la cellule de mon document source j´ai une formule selon un fomat, j´ai utilisé ta fonction et cela m´indique toujours 0... Je ne comprends pas trop.
Je rsume:
-document source protéger mais je peux copier les info
-formule dans ma cellule cible
-format general de ma cellule cible 2.000, j´ai vérifié et ce n´est pas une ","
Resultat de ta fonction = 0
Resultat de .value = 2
Merci de ton aide
25 juil. 2017 à 20:59
Concernant yves et son style d´écriture pro je le disais comme un compliment, et j´espére qu il l'a interprété tel quel!
Concernant mon fichier il est un peu lourd mais voici le bout de code:
Avant tout ce que je fais c´est ouvrir un fichier et rechercher certaines info au sein de ce fichier et j´essaye de les enregistrer dans un array
Je suis ouvert a toute forme de critique car c´est la premiere fois que j´utilise une variable tableau. De plus voyant mon style d´écriture tu comprendras pourquoui je qualifie celui de yves comme "pro"!
Mais la ligne concernant ma question est la suivante:
Merci d´avance!
25 juil. 2017 à 21:54
26 juil. 2017 à 00:50
Bonjour GermPeru,
Merci d'avoir qualifié mon style d'écriture de professionnel, ce qui est
d'ailleurs le cas de nombreux autres intervenants du site CCM.
Lis mon message du 25 juillet à 22:15, puis n'oublie pas de revenir à celui-ci :
le fichier Excel joint ci-après contient ton code VBA réécrit et commenté
(tu sais déjà qu'il faut faire Alt F11 pour aller sur Microsoft Visual Basic).
https://mon-partage.fr/f/yYlRMK5u/
⚠ Comme il manque 2 indications dans ton extrait de code, il faudra
les ajouter avant d'utiliser mon code VBA (impératif) ; c'est indiqué
très clairement dans les commentaires.
Il y aura peut-être une ou deux adaptations à faire.
Merci de me donner ton avis.