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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| Public valeurCelluleModifiee As String
Public cleRecherche As String
Public macroEnCours As Boolean
Sub Worksheet_Change(ByVal Target As Range)
Dim plageRespAffaire As Range
Dim plageCommercial As Range
Dim plageCommentaires As Range
Dim plageDouteux As Range
Call compteurLignes("Balance clients")
Call compteurLignes("Transco Factures")
Application.ScreenUpdating = False
valeurCelluleModifiee = ""
cleRecherche = ""
Set plageRespAffaire = Worksheets("Balance clients").Range("Z6:Z" & ligneBalanceClients)
Set plageCommercial = Worksheets("Balance clients").Range("X6:X" & ligneBalanceClients)
Set plageCommentaires = Worksheets("Balance clients").Range("AB6:AB" & ligneBalanceClients)
Set plageDouteux = Worksheets("Balance clients").Range("W6:W" & ligneBalanceClients)
macroEnCours = True 'Cette définition de variable sert juste a faire un test de sortie
If macroEnCours = True Then
Exit Sub
Else
If Target.Cells.Count > 1 Then
Exit Sub
Else
If Not Application.Intersect(plageRespAffaire, Range(Target.Address)) Is Nothing Then
Call celluleCible(Target, "6")
Else
If Not Application.Intersect(plageCommercial, Range(Target.Address)) Is Nothing Then
Call celluleCible(Target, "9")
Else
If Not Application.Intersect(plageCommentaires, Range(Target.Address)) Is Nothing Then
Call celluleCible(Target, "7")
Else
If Not Application.Intersect(plageDouteux, Range(Target.Address)) Is Nothing Then
Call celluleCible(Target, "8")
Else
Exit Sub
End If
End If
End If
End If
End If
End If
End Sub
Function celluleCible(celluleModifiée As Range, deplacementValeurCible As Long)
If macroEnCours = True Then
Exit Function
Else
valeurCelluleModifiee = celluleModifiée.Value
cleRecherche = Range(celluleModifiée.Address).Offset(0, -13).Value
MsgBox "La piéce n°" & cleRecherche & " a été modifiée et la valeur modifiée est : " & valeurCelluleModifiee
Call rechercheValeur(cleRecherche, deplacementValeurCible, valeurCelluleModifiee)
Application.ScreenUpdating = True
Worksheets("Balance clients").Activate
Range(celluleModifiée.Address).Activate
End If
End Function |
Partager