Calcul en fonction des cases cochées ou non

Bonjour,

Je suis amateur d'excel et je bloque sur mon tableau de calcul.

Voilà je voudrais partir d'un nombre x, et d'un liste de valeurs que je coche ou pas.

J'ai besoin que le total calcul x - les valeurs afférentes aux caches non cochées.

Mais là, c'est déjà d'un autre niveau pour moi ...

Merci pour votre aide.

Le fichier joint résume ce dont j'ai besoin.

Bonjour

Pour cela il faut associer une cellule à chaque case (clic droit, format du contrôle) car une formule ne peut se référer à un objet mais à des cellules

Cependant, de façon générale créer une case à cocher par ligne est très lourd.

On privilégie VBA pour coche/décocher directement la cellule, ce qui y ajoute le caractère de la coche, qu'on peut facilement décompter directement.

Bonjour Titi25, 78chris, le forum,

78chris ( )m'a devancé.....pour illustrer ses propos:

Cordialement,

Merci 78chris et xorsankukai ,

J'y vois plus clair.

J'ai de quoi plancher maintenant.

Bonne soirée à vous.

Bonjour,

Une autre piste avec des fonctions perso :

Le code si on ne veux pas télécharger le classeur :

Function TotalCaseCochee(NombreX As Long) As Long

    'calcule la différence entre le nombre X et les valeurs situées en regard des cases non cochées en colonne B
    Dim S As Shape
    Dim Total As Integer

    Application.Volatile

    For Each S In ActiveSheet.Shapes

        'si la case à cocher ne l'ai pas, totalise les valeurs situées en colonne B
        If S.ControlFormat.Value = -4146 Then Total = Total + S.TopLeftCell.Offset(, -1).Value

    Next S

    TotalCaseCochee = NombreX - Total

End Function

Function CaseNonCochee() As Long

    'calcule le nombre de case non cochées
    Dim S As Shape
    Dim Total As Integer

    Application.Volatile

    For Each S In ActiveSheet.Shapes

        'totalise les cases non cochées
        If S.ControlFormat.Value = -4146 Then Total = Total + 1

    Next S

    CaseNonCochee = Total

End Function

Sub OnActionCase()

    'à n'exécuter qu'une fois ou si on rajoute une ou plusieurs cases à cocher
    Dim S As Shape

    'permet d'affecter la macro "CalculerCase" ci-dessous à toutes
    'les cases à cocher afin de permettre un calcul dynamique quand on coche ou décoche une case
    For Each S In ActiveSheet.Shapes: S.OnAction = "CalculerCase": Next S

End Sub

Sub CalculerCase()

    'force le calcul
    Application.Calculate

End Sub

Bonjour Titi25, 78chris, xorsankukai, le forum,

On peut très bien s'en sortir avec des "x" à la place des cases à cocher (qu'il faudrait ancrer à la cellule)

et la fonction NB.SI()

=NB.SI(C2:C11;"<>"&"x")

Bjr @ Theze

Bonjour,

Une autre proposition à étudier (de ce que j'ai compris).

Cdlt.

14titi25.xlsm (25.31 Ko)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, [Choix]) Is Nothing Then
        Cancel = True
        Target.Value = IIf(IsEmpty(Target), "?", "")
    End If
End Sub

Merci @Theze, @njhub et @ Jean-Eric.

Theze, je réponds sur le smartphone et apparemment il ne prend pas en charge les fonctions BVA. Je vais étudier ta solution sur le pc à la maison

njhub, merci, ça a l'air simple en effet je vais regarder ta solution aussi.

Jean-Eric, ben voilà ! C'est exactement ce que je cherchais. Merci bien

Je vais analyser toutes les solutions au mieux pour ma feuille de calcul.

Merci les gars, sympa !

Bonne soirée

Bonjour Jean-Eric,

Ta dernière solution est parfaite.

Merci.

Désolé pour le mp.

Salutations

Rechercher des sujets similaires à "calcul fonction cases cochees"