Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Bonjour.
Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Value)
If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Cordialement.
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de news:
eabeAP%23%23FHA.1256@TK2MSFTNGP15.phx.gbl...
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu
dans une plage de cellule.
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Major TOM
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une
formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais.
Le frais sont comptés par jour et par famille et par exemple pour le péage, il
est possible d'avoir plusieurs reçus pour une case à remplir.
Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%23t%23iZY%23%23FHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour.
Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Value)
If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Cordialement.
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de news:
eabeAP%23%23FHA.1256@TK2MSFTNGP15.phx.gbl...
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu
dans une plage de cellule.
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Daniel
Alors :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Daniel "Major TOM" a écrit dans le message de news: upoHIe%23%
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Alors :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Formula)
Var = Mid(c.Formula, i, 1)
If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de news:
upoHIe%23%23FHA.3852@TK2MSFTNGP14.phx.gbl...
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus
d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais.
Le frais sont comptés par jour et par famille et par exemple pour le
péage, il est possible d'avoir plusieurs reçus pour une case à remplir.
Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3
tickets
Thierry
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%23t%23iZY%23%23FHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour.
Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Value)
If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Cordialement.
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de
news: eabeAP%23%23FHA.1256@TK2MSFTNGP15.phx.gbl...
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+"
contenu dans une plage de cellule.
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Daniel "Major TOM" a écrit dans le message de news: upoHIe%23%
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Batchiboy
Merci, je m'y penche sans tomber
"Daniel" a écrit dans le message de news: %235EIfz%23%
Alors :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Daniel "Major TOM" a écrit dans le message de news: upoHIe%23%
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Merci, je m'y penche sans tomber
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%235EIfz%23%23FHA.3992@TK2MSFTNGP15.phx.gbl...
Alors :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Formula)
Var = Mid(c.Formula, i, 1)
If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de
news: upoHIe%23%23FHA.3852@TK2MSFTNGP14.phx.gbl...
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus
d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais.
Le frais sont comptés par jour et par famille et par exemple pour le
péage, il est possible d'avoir plusieurs reçus pour une case à remplir.
Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3
tickets
Thierry
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%23t%23iZY%23%23FHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour.
Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Value)
If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Cordialement.
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de
news: eabeAP%23%23FHA.1256@TK2MSFTNGP15.phx.gbl...
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+"
contenu dans une plage de cellule.
"Daniel" a écrit dans le message de news: %235EIfz%23%
Alors :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Daniel "Major TOM" a écrit dans le message de news: upoHIe%23%
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Major TOM
Merci Daniel.
Pour obtenir ça : Dans A1 : nbPlus(A2) Dans A2 : +5+8+3
J'ai fait ça : Function NbPlus(c As Range) 'Renvoie le nombre de plus contenu dans une formule Dim Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 End If Next i Next c NbPlus = Ctr End Function
Théoriquement je devrai obtenir comme résultat : 3 Malheureusement, j'obtient : 0
Où est-ce que cela pêche ?
Par avance, merci de votre aide.
Thierry "Daniel" a écrit dans le message de news: %235EIfz%23%
Alors :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Daniel "Major TOM" a écrit dans le message de news: upoHIe%23%
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
Merci Daniel.
Pour obtenir ça :
Dans A1 : nbPlus(A2)
Dans A2 : +5+8+3
J'ai fait ça :
Function NbPlus(c As Range)
'Renvoie le nombre de plus contenu dans une formule
Dim Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Formula)
Var = Mid(c.Formula, i, 1)
If Mid(c.Formula, i, 1) = "+" Then
Ctr = Ctr + 1
End If
Next i
Next c
NbPlus = Ctr
End Function
Théoriquement je devrai obtenir comme résultat : 3
Malheureusement, j'obtient : 0
Où est-ce que cela pêche ?
Par avance, merci de votre aide.
Thierry
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%235EIfz%23%23FHA.3992@TK2MSFTNGP15.phx.gbl...
Alors :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Formula)
Var = Mid(c.Formula, i, 1)
If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de news:
upoHIe%23%23FHA.3852@TK2MSFTNGP14.phx.gbl...
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une
formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais.
Le frais sont comptés par jour et par famille et par exemple pour le péage,
il est possible d'avoir plusieurs reçus pour une case à remplir.
Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%23t%23iZY%23%23FHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour.
Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1()
Dim c As Range, Ctr As Long
For Each c In Selection
For i = 1 To Len(c.Value)
If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1
Next i
Next c
MsgBox Ctr
End Sub
Cordialement.
Daniel
"Major TOM" <tpmsnmapson2004@mapsonfree.fr> a écrit dans le message de news:
eabeAP%23%23FHA.1256@TK2MSFTNGP15.phx.gbl...
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu
dans une plage de cellule.
Pour obtenir ça : Dans A1 : nbPlus(A2) Dans A2 : +5+8+3
J'ai fait ça : Function NbPlus(c As Range) 'Renvoie le nombre de plus contenu dans une formule Dim Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 End If Next i Next c NbPlus = Ctr End Function
Théoriquement je devrai obtenir comme résultat : 3 Malheureusement, j'obtient : 0
Où est-ce que cela pêche ?
Par avance, merci de votre aide.
Thierry "Daniel" a écrit dans le message de news: %235EIfz%23%
Alors :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Formula) Var = Mid(c.Formula, i, 1) If Mid(c.Formula, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Daniel "Major TOM" a écrit dans le message de news: upoHIe%23%
Merci, mais dommage, car c'est ce que je veux faire. Compter les plus d'une formule.
Mon besoin est de déterminer le nombre de reçus pour des notes de frais. Le frais sont comptés par jour et par famille et par exemple pour le péage, il est possible d'avoir plusieurs reçus pour une case à remplir. Donc la formule est de type +6+3 ... ce qui fait 2("+") + 1 = 3 tickets
Thierry
"Daniel" a écrit dans le message de news: %23t%23iZY%23%
Bonjour. Essaie (la macro ne compte pas les "+" inclus dans les formules) :
Sub test1() Dim c As Range, Ctr As Long For Each c In Selection For i = 1 To Len(c.Value) If Mid(c.Value, i, 1) = "+" Then Ctr = Ctr + 1 Next i Next c MsgBox Ctr End Sub
Cordialement. Daniel "Major TOM" a écrit dans le message de news: eabeAP%23%
Bonjour,
Je cherche une formule me permettant de calculer le nombre de "+" contenu dans une plage de cellule.
--
Par avance, merci de votre aide.
Thierry
JB
Bonjour,
Function NbPlus(champ As Range) n = 0 For Each c In champ temp = c.Formula For i = 1 To Len(temp) If Mid(temp, i, 1) = "+" Then n = n + 1 End If Next i Next c NbPlus = n End Function
Cordiaement JB
Bonjour,
Function NbPlus(champ As Range)
n = 0
For Each c In champ
temp = c.Formula
For i = 1 To Len(temp)
If Mid(temp, i, 1) = "+" Then
n = n + 1
End If
Next i
Next c
NbPlus = n
End Function
Function NbPlus(champ As Range) n = 0 For Each c In champ temp = c.Formula For i = 1 To Len(temp) If Mid(temp, i, 1) = "+" Then n = n + 1 End If Next i Next c NbPlus = n End Function
Cordiaement JB
Major TOM
Merci JB et Daniel
C'est OK
--
Par avance, merci de votre aide.
Thierry "JB" a écrit dans le message de news:
Bonjour,
Function NbPlus(champ As Range) n = 0 For Each c In champ temp = c.Formula For i = 1 To Len(temp) If Mid(temp, i, 1) = "+" Then n = n + 1 End If Next i Next c NbPlus = n End Function
Cordiaement JB
Merci JB et Daniel
C'est OK
--
Par avance, merci de votre aide.
Thierry
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
1134120053.707652.241030@g43g2000cwa.googlegroups.com...
Bonjour,
Function NbPlus(champ As Range)
n = 0
For Each c In champ
temp = c.Formula
For i = 1 To Len(temp)
If Mid(temp, i, 1) = "+" Then
n = n + 1
End If
Next i
Next c
NbPlus = n
End Function
Function NbPlus(champ As Range) n = 0 For Each c In champ temp = c.Formula For i = 1 To Len(temp) If Mid(temp, i, 1) = "+" Then n = n + 1 End If Next i Next c NbPlus = n End Function
Cordiaement JB
Michel Gaboly
Bonjour,
On peut simplifier en éliminant la seconde boucle :
au lieu de tester chaque caractère, il suffit de calculer la différence en nombre de caractères entre la formule, et la chaîne de caractères obtenue en éliminant les "+" de la formule.
Function NbPlus(Plg As Range) Dim c As Range For Each c In Plg NbPlus = NbPlus + Len(c.Formula) - Len(Replace(c.Formula, "+", "")) Next End Function
NB - La fonction Replace utilisée ci-dessus est liée à VB6. Elle n'est donc disponible ni dans Excel 97, ni dans les versions Mac.
Pour ces verions, il faut utiliser la fonction de feuille de calcul SUBSTITUE() à la place de Replace, ou écrire une fonction Replace faisant appel à cette fonction :
Function Replace(Txt As String, A$, N$) Replace = Application.WorksheetFunction.Substitute(Txt, A, N) End Function
Bonjour,
Function NbPlus(champ As Range) n = 0 For Each c In champ temp = c.Formula For i = 1 To Len(temp) If Mid(temp, i, 1) = "+" Then n = n + 1 End If Next i Next c NbPlus = n End Function
Cordiaement JB
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonjour,
On peut simplifier en éliminant la seconde boucle :
au lieu de tester chaque caractère, il suffit de calculer la différence
en nombre de caractères entre la formule, et la chaîne de caractères
obtenue en éliminant les "+" de la formule.
Function NbPlus(Plg As Range)
Dim c As Range
For Each c In Plg
NbPlus = NbPlus + Len(c.Formula) - Len(Replace(c.Formula, "+", ""))
Next
End Function
NB - La fonction Replace utilisée ci-dessus est liée à VB6. Elle n'est
donc disponible ni dans Excel 97, ni dans les versions Mac.
Pour ces verions, il faut utiliser la fonction de feuille de calcul
SUBSTITUE() à la place de Replace, ou écrire une fonction Replace
faisant appel à cette fonction :
Function Replace(Txt As String, A$, N$)
Replace = Application.WorksheetFunction.Substitute(Txt, A, N)
End Function
Bonjour,
Function NbPlus(champ As Range)
n = 0
For Each c In champ
temp = c.Formula
For i = 1 To Len(temp)
If Mid(temp, i, 1) = "+" Then
n = n + 1
End If
Next i
Next c
NbPlus = n
End Function
On peut simplifier en éliminant la seconde boucle :
au lieu de tester chaque caractère, il suffit de calculer la différence en nombre de caractères entre la formule, et la chaîne de caractères obtenue en éliminant les "+" de la formule.
Function NbPlus(Plg As Range) Dim c As Range For Each c In Plg NbPlus = NbPlus + Len(c.Formula) - Len(Replace(c.Formula, "+", "")) Next End Function
NB - La fonction Replace utilisée ci-dessus est liée à VB6. Elle n'est donc disponible ni dans Excel 97, ni dans les versions Mac.
Pour ces verions, il faut utiliser la fonction de feuille de calcul SUBSTITUE() à la place de Replace, ou écrire une fonction Replace faisant appel à cette fonction :
Function Replace(Txt As String, A$, N$) Replace = Application.WorksheetFunction.Substitute(Txt, A, N) End Function
Bonjour,
Function NbPlus(champ As Range) n = 0 For Each c In champ temp = c.Formula For i = 1 To Len(temp) If Mid(temp, i, 1) = "+" Then n = n + 1 End If Next i Next c NbPlus = n End Function