bguichardaz
Messages postés1Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention17 septembre 2008
-
17 sept. 2008 à 10:28
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
17 sept. 2008 à 19:26
Bonjour,
J'ai un fichier des colonnes avec plein de chiffre dont certains sont positifs, d'autres négatifs. Je souhaite faire l'addition des chiffres négatifs appartenant à une plage discontinue (genre A1:G5,H64) que j'aurais moi même désigné via un argument placé dans une fonction personnalisée.
Pb : Lorsque que je met Maplage en argument et que je selectionne une plage discontinue à l'aide la toucher ctrl ma fonction me renvoie l'erreur #valeurs ! J'ai bien chercher à utiliser la propriété areas mais ca ne marche pas. Je dois me tromper dans la synthaxe. Donc qlq un serait utiliser cette propriété et me donner un exemple de son utilisation pour ce que j'ai a faire ? Toute autre solution utilisant une fonction personnalisée et non une procedure, permetant l'opération sur plage multiples, est la bienvenue.
MERCI !
là où j'en suis (non satisfaisant car mes plages change d'un fichier à l'autres)
Function SommeSiInf() As Variant
Dim Sum As Variant
Dim maplage As Range
Dim cell As Range
Set maplage = Range("A1:A2,B1:B2")
Sum = 0
For Each cell In maplage
If cell.Value < 0 Then
Sum = Sum + cell.Value
End If
Next cell
SommeSiInf = Sum
End Function
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 sept. 2008 à 19:26
Salut
J'ai essayé ta fonction + modif et tout fonctionne en ayant mis le texte "A1:A2,B1:B2" dans la celule A5:
En tant qu'argument, "maPlage" n'est qu'une chaîne
Sub Test()
Dim Resultat As Single
Dim sTemp As String
sTemp = Feuil1.Range("A5")
Resultat = SommeSiInf(sTemp)
MsgBox Resultat
End Sub
Function SommeSiInf(maPlage As String) As Variant
Dim Sum As Variant
' Dim maPlage As Range
Dim cell As Range
' Set maPlage = Range("A1:A2,B1:B2")
Sum = 0
For Each cell In Range(maPlage)
If cell.Value < 0 Then
Sum = Sum + cell.Value
End If
Next cell
SommeSiInf = Sum
End Function
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)