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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| Option Explicit
Dim vOldValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chqLR As Long, savLR As Long, celLR As Long, visLR As Long, MCrdLR As Long
Dim wbVisa As Workbook
If vOldValue <> "" Then Exit Sub '--- évite création nouvelle ligne en cas de simple correction
If Target.Row < 6 Or Target.Row > 102 Then Exit Sub
chqLR = Range("C" & 102).End(xlUp).Row
savLR = Range("Q" & 102).End(xlUp).Row
celLR = Range("AE" & 102).End(xlUp).Row
MCrdLR = Range("AS" & 102).End(xlUp).Row
If Target.Column = 5 Or Target.Column = 7 Or Target.Column = 9 Then
'--- compte chèque
If Range("I" & Target.Row) = "" Then Exit Sub
If UCase(Range("E" & Target.Row)) = UCase("Op. Ep.") Then
'--- vers compte épargne
Range("Q" & savLR + 1) = Range("C" & Target.Row)
Range("S" & savLR + 1) = Range("E" & Target.Row)
Range("U" & savLR + 1) = Range("G" & Target.Row)
Range("Y" & savLR + 1) = Range("I" & Target.Row)
ElseIf UCase(Range("E" & Target.Row)) = UCase("Vir. Ch. => Céli") Then
'--- vers compte Céli
Range("AE" & celLR + 1) = Range("C" & Target.Row)
Range("AG" & celLR + 1) = Range("E" & Target.Row)
Range("AI" & celLR + 1) = Range("G" & Target.Row)
Range("AM" & celLR + 1) = Range("I" & Target.Row)
ElseIf UCase(Range("E" & Target.Row)) = UCase("Visa") Then
'--- vers compte Visa
'--- initialise dossier Visa.xlsx
On Error Resume Next
Set wbVisa = Workbooks("Visa.xlsx")
If Err.Number <> 0 Then
'--- fichier Visa.xlsx pas encore ouvert
Set wbVisa = Workbooks.Open(ThisWorkbook.Path & "\Visa.xlsx")
Err.Clear
End If
On Error GoTo 0
'--- passe les valeurs
With wbVisa.Worksheets(ActiveSheet.Name)
visLR = .Range("C" & 102).End(xlUp).Row
.Range("C" & visLR + 1) = Range("C" & Target.Row)
.Range("E" & visLR + 1) = Range("E" & Target.Row)
.Range("G" & visLR + 1) = Range("G" & Target.Row)
.Range("K" & visLR + 1) = Range("I" & Target.Row)
End With
Set wbVisa = Nothing
ElseIf UCase(Range("G" & Target.Row)) = UCase("Paiement MasterCard") Then
'--- vers compte Mastercard
'--- visa supprimé ==> Mastercard déplacé --- à vérifier
Range("AS" & MCrdLR + 1) = Range("C" & Target.Row)
Range("AU" & MCrdLR + 1) = Range("E" & Target.Row)
Range("AW" & MCrdLR + 1) = Range("G" & Target.Row)
Range("BA" & MCrdLR + 1) = Range("I" & Target.Row) '--- ?
End If
ElseIf Target.Column = 19 Or Target.Column = 23 Then
'--- compte épargne
If Range("W" & Target.Row) = "" Then Exit Sub
If UCase(Range("S" & Target.Row)) = UCase("Vir. Ep. => Ch.") Then
'--- vers compte chèque
Range("C" & chqLR + 1) = Range("Q" & Target.Row)
Range("E" & chqLR + 1) = Range("S" & Target.Row)
Range("G" & chqLR + 1) = Range("U" & Target.Row)
Range("K" & chqLR + 1) = Range("W" & Target.Row)
ElseIf UCase(Range("S" & Target.Row)) = UCase("Vir. Ep. => Céli") Then
'--- vers compte Céli
Range("AE" & celLR + 1) = Range("Q" & Target.Row)
Range("AG" & celLR + 1) = Range("S" & Target.Row)
Range("AI" & celLR + 1) = Range("U" & Target.Row)
Range("AM" & celLR + 1) = Range("W" & Target.Row)
End If
ElseIf Target.Column = 33 Or Target.Column = 37 Then
'--- compte Céli
If Range("AK" & Target.Row) = "" Then Exit Sub
If UCase(Range("AG" & Target.Row)) = UCase("Vir. Céli => Ch.") Then
'--- vers compte chèque
Range("C" & chqLR + 1) = Range("AE" & Target.Row)
Range("E" & chqLR + 1) = Range("AG" & Target.Row)
Range("G" & chqLR + 1) = Range("AI" & Target.Row)
Range("K" & chqLR + 1) = Range("AK" & Target.Row)
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then vOldValue = Target.Value
End Sub |
Partager