!!! Dénombreuement à virgule !!!

  • Initiateur de la discussion fabrice
  • Date de début
F

fabrice

Guest
Bonjour tout le monde

J'espère que vous n'avez pas fait d'abus de chocolat ce week-end!!!

Bon, plus sérieusement, j'ai un problème.
Je cherche à dénombrer des données. J'ai dans une colonne des nombres qui vont de -10 à +30 mais avec des virgules. (ex 10,4).
Je cherche à savoir combien de fois j'ai 10, combien de fois j'ai 11, ...

Le probleme est quà chaque tentative, il ne tenait pas compte des virgules.

Avez vous une solution???

Merci de votre réponse,
FAb
 
J

Jean

Guest
Salut,
regarde dans l'aide les fonctions 'int' et éventuellement 'abs'.

Si A1 contient 10.4 la fonction int(range("A1")) retourne 10

Si tu ne veux pas non plus tenir compte du signe :
si A1 contient -10.4, abs(int(range("A1"))) retourne 10
A plus.
 
F

fabrice

Guest
Salut Jean

merci de ta réponse. Le probleme est que je ne peux pas rajouter de colonne. J'ai la colonne avec les données et celle dans laquelle je dois dénombrer. Je ne peux donc pas faire d'étape!!!

Merci FAb
 
W

We_kend

Guest
Salut fabrice

Dans le fichier joint, la colonne A correspond à tes nombres.
La colonne B est répartie en deux
Une partie qui compte les nombres
une deuxieme partie qui fait des différences

La colonne C est la pour indication
 

Pièces jointes

  • Classeur3.xls
    14 KB · Affichages: 60
  • Classeur3.xls
    14 KB · Affichages: 68
  • Classeur3.xls
    14 KB · Affichages: 71
J

Jean

Guest
Salut,
essaie ça, (vite fait, mal fait ! je suis plutôt programmeur
et mon code va sans doute faire hurler les puristes VBA)

Sub Macro1()
Dim IA As Integer, IC As Integer, Tot As Integer
IC = 3
While Cells(IC, 3).Value <> ""
Tot = 0
IA = 2
While Cells(IA, 1).Value <> ""
If Int(Cells(IA, 1)) = Cells(IC, 3) Then Tot = Tot + 1
IA = IA + 1
Wend
Cells(IC, 4) = Tot
IC = IC + 1
Wend
End Sub

A plus.
 
J

Jean

Guest
Salut,
Désolé pour mon post précédent: trop bâclé et en plus faux: s'il y a des nombres négatifs, il vaut sans doute mieux employer Fix() et non int()
Voici donc ma modeste contribution:

Sub macro1()
Dim Plage As Range
Dim Nbre As Range
Set Nbre = Range("C3")
While Nbre <> ""
Nbre.Offset(0, 1) = 0
Set Plage = Range("A2")
While Plage <> ""
Plage.Offset(0, 1) = Fix(Plage)
If Fix(Plage.Value) = Nbre Then
Nbre.Offset(0, 1) = Nbre.Offset(0, 1) + 1
End If
Set Plage = Plage.Offset(1, 0)
Wend
Set Nbre = Nbre.Offset(1, 0)
Wend
End Sub

A plus.
 
F

fabrice

Guest
Salut jean

C'est exactement ca.
Juste une petite question, est-il possible de ne pas faire appartaitre l'étape d'arrondi. Autrement dit, peut-on la rendre invisilbe pour l'utilisateur??? (Car je suis un peu juste au niveau du nombre de colonne).

A part ca, tout va bien

MErci
FAb
 

Discussions similaires

Réponses
16
Affichages
700

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p