Somme si avec reduc

Bonjour encore merci pour vos réponses tout à l'heure

je souhaite compléter la formule par le biais d'une macro si remise est validée ..

le fichier est modifié..

un grand merci a vous tous

chris

Heu ...si c plus simple en modifiant la formule SOMMEPROD ...C BIEN AUSSI

MERCI

CHRIS

Salut

Bon bah avec macro

Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("E14")) Is Nothing Then
            If Range("e14").Value <> "" Then
                Range("D14").Value = Range("D14").Value * 0.9
            Else
                Range("d14").FormulaLocal = "=SOMMEPROD((presta=$C$14)*($A$3:$O$3))"
                Calculate
            End If
        End If
        If Not Intersect(Target, Range("C14")) Is Nothing Then
                Range("D14").FormulaLocal = "=SOMMEPROD((presta=$C$14)*($A$3:$O$3))"
                Range("e14").Value = ""
                Calculate
        End If

End Sub

a me redire

Leakim

Bonsoir Leakim

Merci pour la Macro ...

j ai pas précisé que la collonne "E" aura 200 lignes ...

c'est possible de changer la macro ...elle me convient super bien

somme si avec reduc colonne E

.xlsm

Bah il est content ?

Tu veux une réponse et tu ne donnes pas tous les éléments...

Bon il faut tout refaire car une macro c'est en dur donc pas très souple.

En même temps j'ai jamais fait un tel truc alors merci pour l'exercice.

Je regarde quand tu m'auras mis un fichier qui ressemble à ton fichier final

Leakim

Oui DSL je complete le fichier

ci joint le doc modifié

merki

A+

chris

Me revoilà !

Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, ([choixtarif])) Is Nothing Then
            If Right(ActiveCell.Value, 1) = "%" Then
                ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(0, -1).Value * 0.9
            End If
           If Not Right(ActiveCell.Value, 1) = "%" Then
                ActiveCell.Offset(0, -1).FormulaLocal = "=INDEX($A$3:$O$3;;EQUIV(INDIRECT(""c""&LIGNE());presta;0))"
            End If
        End If
        If Not Intersect(Target, ([choixpresta])) Is Nothing Then
                ActiveCell.Offset(0, 1).FormulaLocal = "=INDEX($A$3:$O$3;;EQUIV(INDIRECT(""c""&LIGNE());presta;0))"
                ActiveCell.Offset(0, 2).Value = ""
                ActiveCell.Offset(0, -1).Value = ""
        End If
End Sub

A me redire,

Leakim

super Merci beaucoup

j adapte ça demain !

nickel

bonne soirée..

chris

ha si un dernier petit truc dans le fichier joint

je souhaite enlever les #N/A pour faire le total...

merci beaucoup

chris

Salut,

avec l'ajout de la fonction "sierreur" que je t'invite à étudier

ce qui donne en formule

=SIERREUR(INDEX($A$3:$O$3;;EQUIV(INDIRECT("c"&LIGNE());presta;0));"")

et en macro une nouvelle fois modifiée

Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, ([choixtarif])) Is Nothing Then
            If Right(ActiveCell.Value, 1) = "%" Then
                ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(0, -1).Value * 0.9
            End If
           If Not Right(ActiveCell.Value, 1) = "%" Then
                ActiveCell.Offset(0, -1).FormulaLocal = "=SIERREUR(INDEX($A$3:$O$3;;EQUIV(INDIRECT(""c""&LIGNE());presta;0));"""")"
            End If
        End If
        If Not Intersect(Target, ([choixpresta])) Is Nothing Then
                ActiveCell.Offset(0, 1).FormulaLocal = "=SIERREUR(INDEX($A$3:$O$3;;EQUIV(INDIRECT(""c""&LIGNE());presta;0));"""")"
                ActiveCell.Offset(0, 2).Value = ""
                ActiveCell.Offset(0, -1).Value = ""
        End If
End Sub

Bonjour merci beaucoup...je vais copier et adapter tout ca

@+

Chris

cc Leakim

Super j ai adapté .....ca fonctionne bien

merci bcp

@+

chris

Salut,

Cool si c'est ok

Le picto

le faire c'est mieux

Merci de clore le sujet.

Leakim

merci encore !

chris

Rechercher des sujets similaires à "somme reduc"