1 pièce(s) jointe(s)
VBA pour transférer des valeurs d'un tableau à l'autre
Bonjour,
J'ai écrit ce petit VBA qui permet de transférer des valeurs d'un compte à l'autre.
Code:
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
|
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chqLR As Long, savLR As Long, celLR As Long, marLR As Long
If Target.Row < 6 Or Target.Row > 102 Then Exit Sub
If Target.Column <> 7 And Target.Column <> 9 And Target.Column <> 19 And Target.Column <> 21 Then Exit Sub
Application.EnableEvents = False
chqLR = Range("C" & 102).End(xlUp).Row
savLR = Range("Q" & 102).End(xlUp).Row
celLR = Range("AC" & 102).End(xlUp).Row
marLR = Range("AO" & 102).End(xlUp).Row
If Target.Column = 7 Or Target.Column = 9 Then
If UCase(Range("G" & Target.Row)) = UCase("Virement Chèque-Épargne") _
And Range("I" & Target.Row) <> "" Then
Range("Q" & savLR + 1) = Range("C" & Target.Row)
Range("S" & savLR + 1) = Range("G" & Target.Row)
Range("W" & savLR + 1) = Range("i" & Target.Row)
End If
End If
If Target.Column = 19 Or Target.Column = 21 Then
If UCase(Range("S" & Target.Row)) = UCase("Virement Épargne-Chèque") _
And Range("U" & Target.Row) <> "" Then
Range("C" & chqLR + 1) = Range("Q" & Target.Row)
Range("G" & chqLR + 1) = Range("S" & Target.Row)
Range("K" & chqLR + 1) = Range("U" & Target.Row)
End If
End If
If Target.Column = 7 Or Target.Column = 9 Then
If UCase(Range("G" & Target.Row)) = UCase("Virement Chèque-Céli") _
And Range("I" & Target.Row) <> "" Then
Range("AC" & celLR + 1) = Range("C" & Target.Row)
Range("AE" & celLR + 1) = Range("G" & Target.Row)
Range("AI" & celLR + 1) = Range("I" & Target.Row)
End If
End If
If Target.Column = 31 Or Target.Column = 33 Then
If UCase(Range("AE" & Target.Row)) = UCase("Virement Céli-Chèque") _
And Range("AG" & Target.Row) <> "" Then
Range("C" & chqLR + 1) = Range("AC" & Target.Row)
Range("G" & chqLR + 1) = Range("AE" & Target.Row)
Range("K" & chqLR + 1) = Range("AG" & Target.Row)
End If
End If
If Target.Column = 7 Or Target.Column = 9 Then
If UCase(Range("G" & Target.Row)) = UCase("Virement Chèque-Marge") _
And Range("I" & Target.Row) <> "" Then
Range("AO" & celLR + 1) = Range("C" & Target.Row)
Range("AQ" & celLR + 1) = Range("G" & Target.Row)
Range("AU" & celLR + 1) = Range("i" & Target.Row)
End If
End If
If Target.Column = 43 Or Target.Column = 45 Then
If UCase(Range("AQ" & Target.Row)) = UCase("Virement Marge-Chèque") _
And Range("AS" & Target.Row) <> "" Then
Range("C" & marLR + 1) = Range("AO" & Target.Row)
Range("G" & marLR + 1) = Range("AQ" & Target.Row)
Range("K" & marLR + 1) = Range("AS" & Target.Row)
End If
End If
Application.EnableEvents = True
End Sub |
Le problème que je ne comprends pas c'est :
Pourquoi est-ce ce que j'arrive à transférer des valeurs de compte chèque à Épargne, vice versa mais je peux que transférer des valeurs du compte chèque à Céli et compte chèque à Marge et pas le contraire, soit Céli à Chèque et Marge à Chèque ?
Aussi, deuxième question :
Pourquoi les premières valeurs inscrites dans Marge de crédit apparaissent dans AO9 au lieu de AO7 ?
Merci pour vos réponse. Ce projet est important pour moi.
Camaalot