Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

somme dans commentaires

26 réponses
Avatar
Pierre52
bonsoir à toutes et tous

tout d'abord, il est encore temps, meilleurs v½ux à tout le monde

je voudrais savoir s'il est possible de faire la somme de nombres écrits
dans des commentaires situés sur une même colonne

si oui comment faire?

merci de vos réponses

10 réponses

1 2 3
Avatar
michdenis
Ton fichier est inaccessible.
Avatar
Pierre52
merci beaucoup de votre aide cela fonctionne
j'aurai pu relire le code mais j'ai juste fais un copier coller
mea culpa

et pour que cela se recalcule au changement?



Le 31/01/2010 15:47, michdenis a écrit :
Ton fichier est inaccessible.




Avatar
michdenis
| et pour que cela se recalcule au changement?

Tu peux provoquer le recalcul en appuyant sur la touche F9



Le 31/01/2010 15:47, michdenis a écrit :
Ton fichier est inaccessible.




Avatar
Pierre52
merci beaucoup,

c'est vrai j'avais pas pensé à ça
je pensais à la validation du commentaire


Le 31/01/2010 18:11, michdenis a écrit :

| et pour que cela se recalcule au changement?

Tu peux provoquer le recalcul en appuyant sur la touche F9



Le 31/01/2010 15:47, michdenis a écrit :
Ton fichier est inaccessible.






Avatar
Pierre52
bonjour
et désolé de reprendre si tard ce fil de conversation

tu disais
> Si tu as autre chose qu'une valeur numérique, donne des
> exemples de commentaires dont tu aimerais additionner
> la composante numérique.

mais cette possibilité m'avais échappée

j'aurai des commentaires de ce type

"10 blabla" ou alors "4 bla blablabla blabla"
toujours un nombre suivi de 1 ou plusieurs mots

si tu avais une solution se serait parfait

et encore désolé de reprendre ce fil si tard
Avatar
michdenis
Bonjour,

Utilise cette fonction personnalisée que tu copies dans un module standard.
La macro requiert Excel 2000 ou plus récent à cause de la fonction "split()"
Chaque nombre contenu dans les commentaires
a un espace entre lui et le texte du commentaire.

Tu appelles la fonction dans une cellule : =LaSom(A1:A5)
'-----------------------------------
Function LaSom(Rg As Range)
Dim Sep As String, T As Variant
Dim C As Range, Elt As Variant
Sept = Format(0, ".")
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
Debug.Print Elt
If IsNumeric(Trim(Replace(Elt, ".", Sep))) Then
LaSom = LaSom + Val(Trim(Elt))
End If
Next
End If
Next
End Function
'-----------------------------------




"Pierre52" a écrit dans le message de groupe de
discussion :
bonjour
et désolé de reprendre si tard ce fil de conversation

tu disais
> Si tu as autre chose qu'une valeur numérique, donne des
> exemples de commentaires dont tu aimerais additionner
> la composante numérique.

mais cette possibilité m'avais échappée

j'aurai des commentaires de ce type

"10 blabla" ou alors "4 bla blablabla blabla"
toujours un nombre suivi de 1 ou plusieurs mots

si tu avais une solution se serait parfait

et encore désolé de reprendre ce fil si tard




Avatar
Pierre52
merci beaucoup

cela fonctionne à merveille mais j'ai oublié de préciser que les nombres
sont des heures (aïe pas sur la tête)sous la forme hh:mm
cela te pose t il un problème si oui je me contenterai de nombres
décimaux "hh,25", "hh,30", "hh,45"

en core merci de ton aide et je te prie de m'excuser pour mon étourderie

Le 09/02/2010 16:19, michdenis a écrit :
Bonjour,

Utilise cette fonction personnalisée que tu copies dans un module standard.
La macro requiert Excel 2000 ou plus récent à cause de la fonction
"split()"
Chaque nombre contenu dans les commentaires
a un espace entre lui et le texte du commentaire.

Tu appelles la fonction dans une cellule : =LaSom(A1:A5)
'-----------------------------------
Function LaSom(Rg As Range)
Dim Sep As String, T As Variant
Dim C As Range, Elt As Variant
Sept = Format(0, ".")
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
Debug.Print Elt
If IsNumeric(Trim(Replace(Elt, ".", Sep))) Then
LaSom = LaSom + Val(Trim(Elt))
End If
Next
End If
Next
End Function
'-----------------------------------




"Pierre52" a écrit dans le message de groupe de
discussion :
bonjour
et désolé de reprendre si tard ce fil de conversation

tu disais
> Si tu as autre chose qu'une valeur numérique, donne des
> exemples de commentaires dont tu aimerais additionner
> la composante numérique.

mais cette possibilité m'avais échappée

j'aurai des commentaires de ce type

"10 blabla" ou alors "4 bla blablabla blabla"
toujours un nombre suivi de 1 ou plusieurs mots

si tu avais une solution se serait parfait

et encore désolé de reprendre ce fil si tard






Avatar
michdenis
Essaie comme ceci :

Les chiffres ayant un format "heure"
Tu peux adapter le format selon ce que tu désires.

'---------------------------------------------
Function LaSom(Rg As Range)
Dim Y As Double, T As Variant
Dim C As Range, Elt As Variant
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
If IsDate(Trim(Elt)) Then
Y = Y + TimeValue(Trim(Elt)) * 1
End If
Next
End If
Next
If Y >= 1 Then
LaSom = Int(Y) & " jr(s) " & _
Format(Y - Int(Y), "H ""hrs ""MM ""Min ""SS ""Sec""")
Else
LaSom = Format(Y, "H ""hrs ""MM ""Min ""SS ""Sec""")
End If
End Function
'---------------------------------------------



"Pierre52" a écrit dans le message de groupe de
discussion : eq$
merci beaucoup

cela fonctionne à merveille mais j'ai oublié de préciser que les nombres
sont des heures (aïe pas sur la tête)sous la forme hh:mm
cela te pose t il un problème si oui je me contenterai de nombres décimaux
"hh,25", "hh,30", "hh,45"

en core merci de ton aide et je te prie de m'excuser pour mon étourderie

Le 09/02/2010 16:19, michdenis a écrit :
Bonjour,

Utilise cette fonction personnalisée que tu copies dans un module
standard.
La macro requiert Excel 2000 ou plus récent à cause de la fonction
"split()"
Chaque nombre contenu dans les commentaires
a un espace entre lui et le texte du commentaire.

Tu appelles la fonction dans une cellule : =LaSom(A1:A5)
'-----------------------------------
Function LaSom(Rg As Range)
Dim Sep As String, T As Variant
Dim C As Range, Elt As Variant
Sept = Format(0, ".")
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
Debug.Print Elt
If IsNumeric(Trim(Replace(Elt, ".", Sep))) Then
LaSom = LaSom + Val(Trim(Elt))
End If
Next
End If
Next
End Function
'-----------------------------------




"Pierre52" a écrit dans le message de groupe de
discussion :
bonjour
et désolé de reprendre si tard ce fil de conversation

tu disais
> Si tu as autre chose qu'une valeur numérique, donne des
> exemples de commentaires dont tu aimerais additionner
> la composante numérique.

mais cette possibilité m'avais échappée

j'aurai des commentaires de ce type

"10 blabla" ou alors "4 bla blablabla blabla"
toujours un nombre suivi de 1 ou plusieurs mots

si tu avais une solution se serait parfait

et encore désolé de reprendre ce fil si tard









Avatar
Pierre52
si je ne veux que des heures et des minutes que je puisse additionner
comment transformer le format car pour le moment j'en suis à ça

LaSom = Format(Y, "H"":""MM""")

merci d'avance

e 09/02/2010 20:45, michdenis a écrit :
Essaie comme ceci :

Les chiffres ayant un format "heure"
Tu peux adapter le format selon ce que tu désires.

'---------------------------------------------
Function LaSom(Rg As Range)
Dim Y As Double, T As Variant
Dim C As Range, Elt As Variant
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
If IsDate(Trim(Elt)) Then
Y = Y + TimeValue(Trim(Elt)) * 1
End If
Next
End If
Next
If Y >= 1 Then
LaSom = Int(Y) & " jr(s) " & _
Format(Y - Int(Y), "H ""hrs ""MM ""Min ""SS ""Sec""")
Else
LaSom = Format(Y, "H ""hrs ""MM ""Min ""SS ""Sec""")
End If
End Function
'---------------------------------------------



"Pierre52" a écrit dans le message de groupe de
discussion : eq$
merci beaucoup

cela fonctionne à merveille mais j'ai oublié de préciser que les
nombres sont des heures (aïe pas sur la tête)sous la forme hh:mm
cela te pose t il un problème si oui je me contenterai de nombres
décimaux "hh,25", "hh,30", "hh,45"

en core merci de ton aide et je te prie de m'excuser pour mon étourderie

Le 09/02/2010 16:19, michdenis a écrit :
Bonjour,

Utilise cette fonction personnalisée que tu copies dans un module
standard.
La macro requiert Excel 2000 ou plus récent à cause de la fonction
"split()"
Chaque nombre contenu dans les commentaires
a un espace entre lui et le texte du commentaire.

Tu appelles la fonction dans une cellule : =LaSom(A1:A5)
'-----------------------------------
Function LaSom(Rg As Range)
Dim Sep As String, T As Variant
Dim C As Range, Elt As Variant
Sept = Format(0, ".")
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
Debug.Print Elt
If IsNumeric(Trim(Replace(Elt, ".", Sep))) Then
LaSom = LaSom + Val(Trim(Elt))
End If
Next
End If
Next
End Function
'-----------------------------------




"Pierre52" a écrit dans le message de groupe de
discussion :
bonjour
et désolé de reprendre si tard ce fil de conversation

tu disais
> Si tu as autre chose qu'une valeur numérique, donne des
> exemples de commentaires dont tu aimerais additionner
> la composante numérique.

mais cette possibilité m'avais échappée

j'aurai des commentaires de ce type

"10 blabla" ou alors "4 bla blablabla blabla"
toujours un nombre suivi de 1 ou plusieurs mots

si tu avais une solution se serait parfait

et encore désolé de reprendre ce fil si tard











Avatar
michdenis
Si tu veux faire des opérations mathématiques à partir
du résultat affiché dans une cellule, et tu appliques le
format désiré à partir du menu / format / cellule / nombre /

'------------------------------------------
Function LaSom(Rg As Range)
Dim Y As Double, T As Variant
Dim C As Range, Elt As Variant
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
If IsDate(Trim(Elt)) Then
Y = Y + TimeValue(Trim(Elt)) * 1
End If
Next
End If
Next
LaSom = Y
End Function
'------------------------------------------


"Pierre52" a écrit dans le message de groupe de
discussion :
si je ne veux que des heures et des minutes que je puisse additionner
comment transformer le format car pour le moment j'en suis à ça

LaSom = Format(Y, "H"":""MM""")

merci d'avance

e 09/02/2010 20:45, michdenis a écrit :
Essaie comme ceci :

Les chiffres ayant un format "heure"
Tu peux adapter le format selon ce que tu désires.

'---------------------------------------------
Function LaSom(Rg As Range)
Dim Y As Double, T As Variant
Dim C As Range, Elt As Variant
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
If IsDate(Trim(Elt)) Then
Y = Y + TimeValue(Trim(Elt)) * 1
End If
Next
End If
Next
If Y >= 1 Then
LaSom = Int(Y) & " jr(s) " & _
Format(Y - Int(Y), "H ""hrs ""MM ""Min ""SS ""Sec""")
Else
LaSom = Format(Y, "H ""hrs ""MM ""Min ""SS ""Sec""")
End If
End Function
'---------------------------------------------



"Pierre52" a écrit dans le message de groupe de
discussion : eq$
merci beaucoup

cela fonctionne à merveille mais j'ai oublié de préciser que les
nombres sont des heures (aïe pas sur la tête)sous la forme hh:mm
cela te pose t il un problème si oui je me contenterai de nombres
décimaux "hh,25", "hh,30", "hh,45"

en core merci de ton aide et je te prie de m'excuser pour mon étourderie

Le 09/02/2010 16:19, michdenis a écrit :
Bonjour,

Utilise cette fonction personnalisée que tu copies dans un module
standard.
La macro requiert Excel 2000 ou plus récent à cause de la fonction
"split()"
Chaque nombre contenu dans les commentaires
a un espace entre lui et le texte du commentaire.

Tu appelles la fonction dans une cellule : =LaSom(A1:A5)
'-----------------------------------
Function LaSom(Rg As Range)
Dim Sep As String, T As Variant
Dim C As Range, Elt As Variant
Sept = Format(0, ".")
For Each C In Rg
Set com = C.Comment
If Not com Is Nothing Then
T = Split(com.Text, " ")
For Each Elt In T
Debug.Print Elt
If IsNumeric(Trim(Replace(Elt, ".", Sep))) Then
LaSom = LaSom + Val(Trim(Elt))
End If
Next
End If
Next
End Function
'-----------------------------------




"Pierre52" a écrit dans le message de groupe de
discussion :
bonjour
et désolé de reprendre si tard ce fil de conversation

tu disais
> Si tu as autre chose qu'une valeur numérique, donne des
> exemples de commentaires dont tu aimerais additionner
> la composante numérique.

mais cette possibilité m'avais échappée

j'aurai des commentaires de ce type

"10 blabla" ou alors "4 bla blablabla blabla"
toujours un nombre suivi de 1 ou plusieurs mots

si tu avais une solution se serait parfait

et encore désolé de reprendre ce fil si tard














1 2 3