besoins de votre savoir urgent!!

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 !

brigitte844000

XLDnaute Nouveau
Bonjour a tous;

Voila mon problème je dois entré dans excel des données type 52.65894 45.32569 ect seulement quand j'entre 52,63250 le zero disparait et cela donne 52,6325
Comment je dois faire pour que le 0 reste écrit?????😕
 
Re : besoins de votre savoir urgent!!

Bonjour à tous

Voir cette macro à tester:

Code:
Sub test()
Application.ScreenUpdating = False
Set TBL = Cells(1, 1).CurrentRegion
For Each cell In TBL
If cell.Value <> "" Then cell.Value = cell * 1
Next
Application.ScreenUpdating = True
End Sub

PS: c'est vrai qu'on en a perdu beaucoup pour moins que ça, j'espère que Ges va rester avec nous 🙂.
 
Re : besoins de votre savoir urgent!!

Bonjour Brigitte et tout ce (beau) monde 🙂🙂

En effet en Feuil4 du fichier de Brigitte les "nombres décimaux" sont du Texte.

Et il me semble que c'est tès bien, Brigitte à raison.

Il n'y a pas à tortiller, si l'on veut qu'il y ait réellement des 0 à la fin des nombres, il faut du texte.

Voyez les 2 feuilles du fichier joint et cette macro :

Code:
Sub Decimales(Plage As Range)
If Plage Is Nothing Then Exit Sub
Dim d As Byte, cel As Range, txt As String, pos As Byte, n As Byte
d = 5 'nombre de décimales à afficher
Application.EnableEvents = False
For Each cel In Plage
  txt = Replace(cel.Text, " ", "") 'enlève les espaces
  If IsNumeric(txt) Then
    pos = InStr(txt, ",")
    If pos = 0 Then pos = InStr(txt, ".") 'si version anglaise
    If pos Then
      n = Len(txt) - pos 'nombre de décimales existantes
      If n < d Then
        txt = txt & String(d - n, "0") 'ajoute les 0 manquants
      Else
        txt = Left(txt, pos + d) 'supprime les décimales en trop
      End If
      cel.NumberFormat = "@" 'cellule au format "Texte"
      cel.Value = txt
    End If
  End If
Next
Application.EnableEvents = True
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : besoins de votre savoir urgent!!

Re,

Job, t'as raison, j'avais rien pigé au truc. Alors mes excuses à toi et Brigitte.

Mais j'aime bien le "Il n'y a pas à tortiller" dommage que tu ne sois pas aller jusqu'au " du...pour.....droit"😀😀😀😀😀

A++
 
Re : besoins de votre savoir urgent!!

Re,

Job: Quand même depuis le début, cette histoire n'est pas claire 😕.

Quand je lis cela:

par contre g toujours le même soucis donc je pense que la meilleur solution serait de trouver un moyen de transformer 42.62650 par exemple en 42.62651ce qui m'arrangerais beaucoup!!

Cela me laisse perplexe 🙁.

Sinon, cela ressemble beaucoup à un importation de données 🙄.
 
Re : besoins de votre savoir urgent!!

Re,

Pas compris le pourquoi de tes excuses Hasco 🙂

Le fichier (1) traitait uniquement les nombres décimaux, pas les nombres entiers.

Cette version (2) traite aussi les nombres entiers.

Edition : comptenu de la méthode du post #29, la version (2 bis) est plus légère.

En voici la macro :

Code:
Sub Decimales(Plage As Range)
If Plage Is Nothing Then Exit Sub
Dim d As Byte, cel As Range, txt As String
d = 5 'nombre de décimales à afficher
Application.EnableEvents = False
For Each cel In Plage
  txt = Replace(cel.Text, " ", "") 'enlève les espaces
  If IsNumeric(txt) Then
    cel.NumberFormat = "0." & String(d, "0") 'cellule au format nombre
    cel.Value = CDec(txt)
    txt = cel.Text
    If Right(txt, 1) = "0" Then
      cel.NumberFormat = "@" 'cellule au format "Texte"
      cel.Value = txt
    End If
  End If
Next
Application.EnableEvents = True
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : besoins de votre savoir urgent!!

Re,

Sinon, cela ressemble beaucoup à un importation de données 🙄.

C'est bien possible Michel.

Ce qu'il faut bien voir, c'est qu"il n'y a aucun problème pour faire des opérations arithmétiques sur des cellules au format Texte.

A condition bien sûr qu'elles contiennent des nombres avec le séparateur décimal de l'ordi.

Les signes d'alerte en haut à gauche des cellules peuvent facilement être supprimés...

A+
 
Re : besoins de votre savoir urgent!!

Bonjour à tous,

Quand on sait qu'un zéro, APRES le séparateur décimal, ne vaut pas grand chose... Je ne vous dis pas en cinquième position...

Ravi, néanmoins, d'avoir participé à cette discussion avec du beau monde.

A+ à tous
 
Re : besoins de votre savoir urgent!!

Bonjour le fil, le forum,

Si l'on veut tenir compte de la dernière proposition de Brigitte, on peut remplacer le 0 par un 1 à la dernière décimale.

Alors bien sûr on peut mettre la cellule au format nombre "0,00000".

Fichier (3) joint.

A+
 

Pièces jointes

Dernière édition:
Re : besoins de votre savoir urgent!!

Re,

Pour cette dernière version (décimale 1) il y a d'ailleurs beaucoup plus simple.

La nouvelle macro :

Code:
Sub Decimales(Plage As Range)
If Plage Is Nothing Then Exit Sub
Dim d As Byte, cel As Range, txt As String
d = 5 'nombre de décimales à afficher
Application.EnableEvents = False
For Each cel In Plage
  txt = Replace(cel.Text, " ", "") 'enlève les espaces
  If IsNumeric(txt) Then
    cel.NumberFormat = "0." & String(d, "0") 'cellule au format nombre
    cel.Value = CDec(txt)
    txt = cel.Text
    If Right(txt, 1) = "0" Then _
      cel.Value = CDec(Left(txt, Len(txt) - 1) & 1)
  End If
Next
Application.EnableEvents = True
End Sub

Fichier (4).

Edit : j'ai édité le post #24 en ajoutant cette nouvelle méthode.

A+
 

Pièces jointes

Dernière édition:
- 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
10
Affichages
813
Retour