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

Copier valeurs Cellules sans les décimales

Burnoc

XLDnaute Nouveau
Bonjour, je solicite vote aide car je ne trouve pas la solution à mon problème après des recherches sur le net.(pourtant cela me parraissait simple ^^).

J'ai une base de données avec notmament une colone comprennant pour chaques cellules une valeurs à pluiseurs décimales. J'ai affiché ces valeurs à une décimale et j'aimerais copier cette colone en l'état pour que mes futurs calculs se fassent sans les décimales.

Pour exemple dans ma celulle A1 s'affiche : 4.1. et dans ma barre de formule la valeur affichée est 41,4036529680365.
Impossible de copier ma colonne pour que 4.1 soit, dans la cellule et dans la barre de formule.
La seul solution que j'ai trouvé est de modifier à la main tout les formules (qui n'en sont pas vraiment) mais j'en ai environ 1000...

en espérant avoir été assez clair
Merci par avance pour vos réponses.
Cordialement
 

M12

XLDnaute Accro
Bonjour,

Regarde au niveau de la fonction =arrondi(valeur à renseigner,0)
0 étant pour aucun chiffre après la virgule, 1 un chiffre, etc
il y a aussi ARRONDI.INF et ARRONDI.SUP

la touche F1 te rendra biendes services
 

Burnoc

XLDnaute Nouveau
merci pour cete réponse., elle m'a permis d'avoir un déclic
J'avais vu cette réponse déjà mais du coup je voyais pas comment l'appliquer a toute les colonnes.
Il me suffisait de copier ma colonne, rentrer =arrondi(cellule d'a côté,1) puis de "tirer" sur la totalité de ma colonne et une nouvelle fois copier en copiant seulement les valeurs.
 

job75

XLDnaute Barbatruc
Bonjour Burnoc, M12,

Pour traiter la colonne vous pouvez exécuter cette macro :
Code:
Sub Arrondir()
Dim n%, col%, t, i&, x$
n = 1 '2ème argument de la fonction Excel ARRONDI, à adapter
col = 1 'n° de colonne à traiter, à adapter
With ActiveSheet.UsedRange.Columns(col)
  t = .Resize(, 2).Formula 'au moins 2 éléments
  For i = 1 To UBound(t)
    x = t(i, 1)
    If Left(x, 1) <> "=" Then If IsNumeric(Evaluate(x)) Then t(i, 1) = Application.Round(Val(x), n)
  Next
  .Formula = t
End With
End Sub
Comme il se doit les formules sont ignorées.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re,

Et si l'on veut traiter toutes les colonnes :
Code:
Sub Arrondir()
Dim n%, ncol%, t, i&, j%, x$
n = 1 '2ème argument de la fonction Excel ARRONDI, à adapter
With ActiveSheet.UsedRange
  ncol = .Columns.Count
  t = .Resize(, ncol + 1).Formula 'au moins 2 éléments
  For i = 1 To UBound(t)
    For j = 1 To ncol
      x = t(i, j)
      If Left(x, 1) <> "=" Then If IsNumeric(Evaluate(x)) Then t(i, j) = Application.Round(Val(x), n)
  Next j, i
  .Formula = t
End With
End Sub
A+
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…