Bonjour à tous,
J'ai un léger soucis qui, je pense, ne va pas vous poser de problème!
Sur cette ligne de code:
Je souhaiterai que dans la fonction If (ou If not je ne sais pas trop...) soit rajouté une deuxième condition: Que la variable "Ligne" égale la colonne 5 (E) ce qui est déjà fait ET égale la colonne 4 (D).
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 'la macro se déclenche à chaque fois qu'une valeur est entrée dans une cellule de la feuille Private Sub Worksheet_Change(ByVal Target As Range) Dim Ligne As Variant 'si la saisie concerne une colonne inférieure à 5 et que les saisies des colonnes A, B et D 'ont été faites If Target.Column < 6 And Application.CountA(Cells(Target.Row, 1).Resize(, 5)) = 5 Then With Sheets("CalculsMacros") 'on cherche sur la feuille "CalculsMacros" le numéro de ligne correspondant à l'évènement Ligne = Application.Match(Cells(Target.Row, 5), .[C:C], 0) 'si on ne le trouve pas, on affecte le n° de la ligne "Autres" 'on peut aussi rechercher ce n° If Not IsNumeric(Ligne) Then Ligne = 9 'on additionne le nombre de la colonne C de la feuille "saisie-pilote" dans la colonne E ' de la feuille "CalculsMacros" .Cells(Ligne, 5) = .Cells(Ligne, 5) + Cells(Target.Row, 3) .Cells(Ligne, 8) = .Cells(Ligne, 8) + 1 End With End If End Sub
En effet, si il y a la même cellule plusieurs fois sur la colonne E alors que sur la colonne D celles-ci sont différentes, la variable "Ligne" va prendre la première cellule trouvée en E alors que ce n'est pas forcément la bonne...
Je rajoute le fichier en pièce jointe si je me suis mal fait comprendre .
Cordialement,
Blend
Partager