Chiffre MAXI

Bruce68

XLDnaute Impliqué
Bonjour à tous
Peut on dans la ligne A trouver le chiffre Maxi (Par Formule) parmis des cellules comportant des Dates et des chiffres.
Merci de votre aide
 

mromain

XLDnaute Barbatruc
Re : Chiffre MAXI

bonjour,

autant pour moi, voici MaSomme modifiée :
Code:
Function MaSomme(zone As Range) As Integer
For Each curCell In zone.Cells
    If IsNumeric(curCell.Value) And curCell.Value <> vbNullString Then
        MaSomme = MaSomme + [B][COLOR=Red]curCell.Value[/COLOR][/B]
    End If
Next curCell
End Function

a+
 

mromain

XLDnaute Barbatruc
Re : Chiffre MAXI

Bonjour,
j'ai un peu le meme genre de probleme. Je voudrai que la valeur d'une cellule memorise le MAX de cette meme cellule dont la donnée provient d'une requete WEB. cette donnée est numerique.

j'ai essayé MonMax mais ca passe pas.

merci

bonjour excellentt,

quel est le séparateur décimal de tes "valeurs numériques" ?
si c'est un point (.), c'est normal que ça ne marche pas.

si c'est bien les cas, cette macro devrai te satisfaire :
Code:
Function MonMax(zone As Range) As Double
For Each curCell In zone.Cells
    If IsNumeric(Replace(curCell.Value, ".", ",")) Then
        If MonMax < Replace(curCell.Value, ".", ",") Then MonMax = Replace(curCell.Value, ".", ",")
    End If
Next curCell
End Function

elle vérifie les nombres, que le séparateur soit un point ou une virgule.

a+
 

Bruce68

XLDnaute Impliqué
Re : Chiffre MAXI

Bonjour mromain et le forum
Merci pour la fonction çà fonctionne correctement.
J'abuse peut etre mais la fonction compte peut on lui mettre des conditionset comment : Exemple:
-Compter uniquement les dates
-Les cellules ayant la lettre E par exemple
-Les cellules ayant que du texte .
Merci pout toute votre aide
 

mromain

XLDnaute Barbatruc
Re : Chiffre MAXI

re salut,

pour les dates, remplacer la ligne de condition
Code:
If IsNumeric(curCell.Value) And curCell.Value <> vbNullString Then
par
Code:
If IsDate(curCell.Value) Then
et pour tester la présence d'un "E"
Code:
If InStr(curCell.Value, "E") > 0 Then

pour vérifier que la cellule ne contient que du texte (donc pas de chiffre), c'est un peu plus compliquer, il n'y a pas de fonction toute faites pour ce test.

a+
 

mromain

XLDnaute Barbatruc
Re : Chiffre MAXI

re,

pour compter les cellules qui ne contiennent uniquement du texte, ajouter cette fonction :
Code:
Public Function ContientQueDuTexte(texteAnalyse As Variant) As Boolean
ContientQueDuTexte = True
texteAnalyse = Trim(CStr(texteAnalyse))
For i = 1 To Len(CStr(texteAnalyse))
    If IsNumeric(Mid(CStr(texteAnalyse), i, 1)) Then ContientQueDuTexte = False: Exit Function
Next i
End Function

et remplacer la ligne de condition par
Code:
If ContientQueDuTexte(curCell.Value) And curCell.Value <> vbNullString Then

a+
 

vbacrumble

XLDnaute Accro
Re : Chiffre MAXI

Bonjour


mromain:
Pourquoi ne pas utiliser la fonction native d'Excel ? :confused: (IsText)

Code:
Sub test()
Dim s$, n&, m$: s = "texte": n = 123
m = s & ": " & Application.WorksheetFunction.IsText(s) & Chr(13)
m = m & n & ": " & Application.WorksheetFunction.IsText(n)
MsgBox m
End Sub
 

nolich

XLDnaute Occasionnel
Re : Chiffre MAXI

Bonjour Bruce68, Raja, mromain, vbacrumble, excellentt et JHA, bonjour à toutes et à tous :)

Bruce68 à dit:
Merci pour la fonction çà fonctionne correctement.
J'abuse peut etre mais la fonction compte peut on lui mettre des conditions et comment : Exemple:
-Compter uniquement les dates
-Les cellules ayant la lettre E par exemple
-Les cellules ayant que du texte .

Ci-joint un exemple avec uniquement des formules matricielles et une plage nommée :

Données | =DECALER(Feuil1!$B$3;;;;NBVAL(Feuil1!$B$3:$IV$3))

Pas mieux que tout le monde, mais simplement pour mettre mon grain de sel ;)

Je suis parti du postulat que ton fichier représente des comptes et qu'aucun montant n'est supérieur à 39448. Pourquoi ce chiffre ? Parce qu'il correspond à la date du 1er janvier 2008 :)

@+
 

Pièces jointes

  • Exemple_Bruce68.xls
    15 KB · Affichages: 53

mromain

XLDnaute Barbatruc
Re : Chiffre MAXI

bonjour vbacrumble, le fil

en fait (j'avais sûrement mal compris la demande de Bruce68) je vérifie, avec ma fonction, qu'il n'y a aucun chiffre dans la chaine de caractère ("que du texte").

du coup,
Application.WorksheetFunction.IsText("toto123") renvoie true
alors que
ContientQueDuTexte("toto123") renvoie false

a+
 

Bruce68

XLDnaute Impliqué
Re : Chiffre MAXI

Bonsoir à tous

J'ai encore un probleme je pense que cela vient du format de MaSomme

Je rentre dans ma ligne des chiffres à l'aide d'un TextBox Sans format spécial.
Quand je met le chiffre dans la cellule (format personnalisé: "0.00 Kl €")
EX: TextBox = 540.25 cellule = 540.25 Kl €.

dans MaSomme = 540.00 Kl € cellule au format personnalisé:"0.00 Kl €"

Par contre avec MonMax aucun Probleme le chiffre est correct et fait de la meme façon que MaSomme.

Que faut il faire pour avoir le bon chiffre ?

Merci pour votre aide
 
Dernière édition:

Bruce68

XLDnaute Impliqué
Re : Chiffre MAXI

Bonjour à tous
Personne pour me dire comment il faut faire pour mettre le chiffre de la somme avec 2 chiffres derriere la virgule dans cette fonction avec la fonction monMax aucun probleme.

Function MaSomme(zone As Range) As Integer
For Each curCell In zone.Cells
If IsNumeric(curCell.Value) And curCell.Value <> vbNullString Then
MaSomme = MaSomme + curCell.Value
End If
Next curCell
End Function
Merci pour l'aide
 

nolich

XLDnaute Occasionnel
Re : Chiffre MAXI

Re le fil :), bonjour à toutes et à tous :)

Bruce68 à dit:
Bonjour à tous
Personne pour me dire comment il faut faire pour mettre le chiffre de la somme avec 2 chiffres derriere la virgule dans cette fonction avec la fonction monMax aucun probleme.

Function MaSomme(zone As Range) As Integer
For Each curCell In zone.Cells
If IsNumeric(curCell.Value) And curCell.Value <> vbNullString Then
MaSomme = MaSomme + curCell.Value
End If
Next curCell
End Function
Merci pour l'aide

Je dois être bête mais je ne comprends pas ta première remarque. En effet, mromain t'a envoyé ceci :

mromain à dit:
Code:
Function MonMax(zone As Range) As Double
For Each curCell In zone.Cells
    If IsNumeric(Replace(curCell.Value, ".", ",")) Then
        If MonMax < Replace(curCell.Value, ".", ",") Then MonMax = Replace(curCell.Value, ".", ",")
    End If
Next curCell
End Function

A priori, tu dis que cela te donne le bon résultat. Si tu veux remercier mromain pour sa fonction, il te suffit de l'écrire. Dans ton post, il semble qu'il te manque quelquechose, est-ce le cas ?

@+
 

Bruce68

XLDnaute Impliqué
Re : Chiffre MAXI

Bonjour nolich et le forum

La fonction MaSomme donne bien le bon résultat mais sans aucun chiffre derriere la virgule ou le point suivant la config. (Le Chiffre est Arrondi)
Pour la meme ligne avec la fonction MonMax j'ai le chiffre avec tous les chiffres derriere la virgule ou le point.
Ex Cellule A8 =742.45
MaSomme = 742
MonMax= 742.45
Ce que je voudrais : que faut il modifier dans fonction MaSomme Pour avoir 2 nchiffres derrier la virgule ou le point en sachant que j'aimerais mettre le format 0.00 Kl €
Merci pour l'aide.
 

Bruce68

XLDnaute Impliqué
Re : Chiffre MAXI

Bonsoir vbacrumble
Merci pour la réponse cela fait la somme de n'importe quel Chiffre meme les dates et moi je ne veux que les chiffres sans les dates mais avec 2 chiffres derriere la virgule ou le point suivant la config.
merci pour toute votre aide
 

Discussions similaires

Réponses
2
Affichages
362

Statistiques des forums

Discussions
312 453
Messages
2 088 550
Membres
103 881
dernier inscrit
malbousquet