Bonjour le forum,

Je fais suite à la conversation "VBA problème avec le Worksheet change" sur un projet d'outil pour faire des devis et gérer des prix.

Donc sur la base du prix existant en colonne F je veux :

-Soit calculer mon taux de discount en L si un nouveau prix est saisi en K
-Soit calculer mon nouveau prix en K si un discount est saisi en L

Exemple de mon tableau avec des data bidonnées :

Nom : Capture.PNG
Affichages : 595
Taille : 19,5 Ko

Avec ce code (ne riez pas je suis débutant en VBA) j'y arrive :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim AD As String
AD = Target.Address
TG = Target.Column
 
 
            Select Case TG
                'L'utilsateur saisi un discount
                Case Is = 12
                Application.EnableEvents = False
                    If IsEmpty(Range(AD).Value) = True Then 'Si il efface la valeur
                    Range(AD).Offset(0, -1).FormulaR1C1 = ""
                    Else
                    Range(AD).Offset(0, -1).FormulaR1C1 = "=RC[-5]*(1-RC[1])"
                    End If
                Application.EnableEvents = True
 
                'L'utilsateur saisi un nouveau prix
                Case Is = 11
                Application.EnableEvents = False
 
                    If IsEmpty(Range(AD).Value) = True Then 'Si il efface la valeur
                    Range(AD).Offset(0, 1).FormulaR1C1 = ""
                    Else
                    Range(AD).Offset(0, 1).FormulaR1C1 = "=(RC[-6]-RC[-1])/RC[-6]"
                    End If
                Application.EnableEvents = True
 
            End Select
 
End Sub
Mais le problème c'est que si l'utilisateur sélectionne plusieurs cellules, par exemple pour effacer des saisies précédente, ça ne marche plus. Pareil si l'utilisateur copie/colle une liste de prix existant en ligne K.

J'ai compris que ça ne marche pas à cause du fait que ce soit des plages de cellules qui sont modifiées au lieu de cellule. j'ai bricolé des trucs pour test mais rien ne marche.

Auriez vous une piste ou une idée ?

Merci d'avance