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 33 34 35 36 37 38 39 40 41 42 43
| Option Explicit
Private Sub Worksheet_Change(ByVal CellulesColonneJ As Range)
Dim WsE As Worksheet
Set WsE = Worksheets("Sheet1")
Dim LigneDeTitre As Long
Dim LigneEnCours As Long
Dim TotalLigne As Single
Dim DebutCol As Long
Dim ColEnCours As Long
If CellulesColonneJ.Count > 6 Then Exit Sub
If Not Application.Intersect(CellulesColonneJ, WsE.Columns("B")) Is Nothing Then
LigneDeTitre = 2
LigneEnCours = LigneDeTitre + 1
For LigneEnCours = LigneDeTitre + 1 To WsC.UsedRange.Rows.Count
TotalLigne = Application.WorksheetFunction.Sum(Range(ActiveSheet.Cells(LigneEnCours, 46), ActiveSheet.Cells(LigneEnCours, 54)))
If TotalLigne > 0 Then
ActiveSheet.Range("AR1") = ActiveSheet.Cells(LigneEnCours, 1)
ActiveSheet.Range("AR2") = ActiveSheet.Cells(LigneEnCours, 2)
ActiveSheet.Range("AR3") = ActiveSheet.Cells(LigneEnCours, 5)
DebutCol = 45
ColEnCours = DebutCol + 1
For ColEnCours = DebutCol + 1 To 60
If ActiveSheet.Cells(LigneEnCours, ColEnCours).Value <> "" Then
ActiveSheet.Range("AR4") = ActiveSheet.Cells(LigneDeTitre, ColEnCours)
Exit For
End If
Next
Exit For
Else
ActiveSheet.Range("AR1") = "no solution"
ActiveSheet.Range("AR2") = "no solution"
ActiveSheet.Range("AR3") = "no solution"
ActiveSheet.Range("AR4") = "no solution"
End If
Next
End If
End Sub |
Partager