Incrémenter une formule si une plage de cellule n'est pas vide

Résolu
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013 - 24 oct. 2010 à 17:03
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013 - 1 nov. 2010 à 21:42
Bonjour à tous,

je viens auprès de vous pour choper des idées en réponses à un problème ....

Voilà mon problème, je voudrais que lorsqu'une ou plusieurs valeurs sont saisies dans une plage une formule (somme par exemple) soit automatiquement affectée dans une autre cellule. Dans le cas contraire, ladite cellule reste vide et ne fait pas de calcul.

Voili voilou ....

Merci de votre aide !!!

A+

6 réponses

gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013
1 nov. 2010 à 21:42
Merci pour l'aide apportée ... je réponds tardivement mais en cherchant un peu + ton aide j'ai trouvé ma solution !

Merci encore !
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 oct. 2010 à 18:55
Salut

Tes explications ne veulent rien dire.
Relis-toi

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013
24 oct. 2010 à 20:13
Bonsoir,

Effectivement y'a un bout de phrase qui manque ... donc je reprécise :

J'ai une plage de cellules, dans Excel, disons A2:A5 où l'utilisateur fait ou non une saisie.

Dans le cas où une saisie est faite dans la plage, je souhaite qu'en A1 soit incrementé la formule somme(A2:A5). Si la plage est vide, alors je souhaite que A1 soit également vide (et donc ne contenant pas de formule).

Ai je été suffisamment précis ? sinon faut me le dire et je re-préciserais

Merci de votre aide ....

A+
0
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013
24 oct. 2010 à 21:14
En tâtonnant un peu j'ai réussi à faire fonctionner cela :

Private Sub Worksheet_Change(ByVal Target As Range)

Set maplage=range("A2:A5")

If Application.CountA(maplage) <> 0 Then
Range("A1").Formula = "=sum(A2:A5)"
End If

End sub


... mais la solution n'est que partielle puisque si maplage devient vide, la formule reste incrémentée en A1 ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 oct. 2010 à 23:41
"Dans le cas où une saisie est faite dans la plage"
Tu veux dire "Dans le cas où toutes les cellules de la plage ont été renseignées"

"je souhaite qu'en A1 soit incrementé la formule somme(A2:A5)"
Qu'est qu'une incrémentation vient faire la dedans ?
    Dim maCellule As Range
    Dim bFlag As Boolean
    For Each maCellule In Range("A1:A5")
        If maCellule.Value = "" Then
            bFlag = True
            Exit For
        End If
    Next
    If bFlag Then
        Range("A1").Value = ""
    Else
        Range("A1").Formula = "=tralala"
    End If

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 oct. 2010 à 23:42
ou
If IsEmpy(maCellule) Then
(pas sûr de la syntaxe, à vérifier)
0
Rejoignez-nous