je suis extrêmement désolé pour ce retard mais des impératifs pro....
super ton truc, un seul petit soucis : le recalcul ne se fait pas même avec la touche f9 du clavier , je suis obligé d'facer et de reécrire la formule à chaque ajout aurais tu une solution?
encore merci pour ton travail super rapide et moi qui traine encore désolé merci
Le 09/02/2010 22:31, michdenis a écrit :
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
ouahh quel homme ,pratiquement un dieu,
je suis extrêmement désolé pour ce retard mais des impératifs pro....
super ton truc, un seul petit soucis : le recalcul ne se fait pas même
avec la touche f9 du clavier , je suis obligé d'facer et de reécrire la
formule à chaque ajout aurais tu une solution?
encore merci pour ton travail super rapide
et moi qui traine encore désolé
merci
Le 09/02/2010 22:31, michdenis a écrit :
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" <pierre52@aliceadsl.fr> a écrit dans le message de groupe de
discussion : Okw6dbcqKHA.4220@TK2MSFTNGP05.phx.gbl...
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" <pierre52@aliceadsl.fr> a écrit dans le message de groupe de
discussion : eq$EAQbqKHA.5736@TK2MSFTNGP05.phx.gbl...
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" <pierre52@aliceadsl.fr> a écrit dans le message de
groupe de
discussion : eT0ktUQqKHA.5116@TK2MSFTNGP04.phx.gbl...
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
je suis extrêmement désolé pour ce retard mais des impératifs pro....
super ton truc, un seul petit soucis : le recalcul ne se fait pas même avec la touche f9 du clavier , je suis obligé d'facer et de reécrire la formule à chaque ajout aurais tu une solution?
encore merci pour ton travail super rapide et moi qui traine encore désolé merci
Le 09/02/2010 22:31, michdenis a écrit :
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
michdenis
'------------------------------------------ Function LaSom(Rg As Range) Application.Volatile ' <<======= 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 '------------------------------------------
'------------------------------------------
Function LaSom(Rg As Range)
Application.Volatile ' <<======= 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
'------------------------------------------
'------------------------------------------ Function LaSom(Rg As Range) Application.Volatile ' <<======= 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
bravo, nickel, t'es un vrai dieu
merci encore
Le 21/02/2010 03:27, michdenis a écrit :
Function LaSom(Rg As Range) Application.Volatile '<<======= > 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
bravo, nickel, t'es un vrai dieu
merci encore
Le 21/02/2010 03:27, michdenis a écrit :
Function LaSom(Rg As Range)
Application.Volatile '<<======= > 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
Function LaSom(Rg As Range) Application.Volatile '<<======= > 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
Mgr T. Banni
faut rien n'exagérer, malgré tout... je parle en conséquence de cause Mgr T.B.
"Pierre52" a écrit dans le message de news: uJZ5cf$
bravo, nickel, t'es un vrai dieu
faut rien n'exagérer, malgré tout...
je parle en conséquence de cause
Mgr T.B.
"Pierre52" <pierre52@aliceadsl.fr> a écrit dans le message de news: uJZ5cf$sKHA.3408@TK2MSFTNGP06.phx.gbl...
faut rien n'exagérer, malgré tout... je parle en conséquence de cause Mgr T.B.
"Pierre52" a écrit dans le message de news: uJZ5cf$
bravo, nickel, t'es un vrai dieu
Mgr T. Banni
oops...en connaissance et non pas en conséqence, bien sûr allez, ouste, au piquet, Mgr, pour changer un peu puisque le plus souvent, c'est à la piquette... T.B.
"Mgr T. Banni" a écrit dans le message de news:
faut rien n'exagérer, malgré tout... je parle en conséquence de cause Mgr T.B.
"Pierre52" a écrit dans le message de news: uJZ5cf$
bravo, nickel, t'es un vrai dieu
oops...en connaissance et non pas en conséqence, bien sûr
allez, ouste, au piquet, Mgr, pour changer un peu puisque le plus souvent, c'est à la piquette...
T.B.
"Mgr T. Banni" <banni@lacurie.va> a écrit dans le message de news: uEwmZVAtKHA.3660@TK2MSFTNGP05.phx.gbl...
faut rien n'exagérer, malgré tout...
je parle en conséquence de cause
Mgr T.B.
"Pierre52" <pierre52@aliceadsl.fr> a écrit dans le message de news: uJZ5cf$sKHA.3408@TK2MSFTNGP06.phx.gbl...
oops...en connaissance et non pas en conséqence, bien sûr allez, ouste, au piquet, Mgr, pour changer un peu puisque le plus souvent, c'est à la piquette... T.B.
"Mgr T. Banni" a écrit dans le message de news:
faut rien n'exagérer, malgré tout... je parle en conséquence de cause Mgr T.B.
"Pierre52" a écrit dans le message de news: uJZ5cf$
bravo, nickel, t'es un vrai dieu
LSteph
Si tu lui donne du Vin au Mgr Banni ce sera Commentaire Béni ...en somme. -- LSteph (Malgré les Mgr. sur le forum c'est toujours mieux qu'en terra incognita)
On 31 jan, 14:18, "michdenis" wrote:
Voyons Mgr, en ce dimanche, on est à court de vin de messe? Je ne vais quand même pas m'en faire pour quelques "S", tant qu'ils ne sont pas jumelés en "SS", il n'y a rien à craindre! ;-))
Si tu lui donne du Vin au Mgr Banni
ce sera Commentaire Béni
...en somme.
--
LSteph
(Malgré les Mgr. sur le forum c'est toujours mieux qu'en terra
incognita)
On 31 jan, 14:18, "michdenis" <michde...@hotmail.com> wrote:
Voyons Mgr, en ce dimanche, on est à court de vin de messe?
Je ne vais quand même pas m'en faire pour quelques "S",
tant qu'ils ne sont pas jumelés en "SS", il n'y a rien à craindre!
;-))
Si tu lui donne du Vin au Mgr Banni ce sera Commentaire Béni ...en somme. -- LSteph (Malgré les Mgr. sur le forum c'est toujours mieux qu'en terra incognita)
On 31 jan, 14:18, "michdenis" wrote:
Voyons Mgr, en ce dimanche, on est à court de vin de messe? Je ne vais quand même pas m'en faire pour quelques "S", tant qu'ils ne sont pas jumelés en "SS", il n'y a rien à craindre! ;-))