Bonjour,

J'ai un petit problème que je ne vois pas comment résoudre. Dans un tableau, j'ai par exemple deux lignes avec en colonne T un même nom, exemple VIR4513.

Sur une de ces lignes, j'ai une somme positive et sur l'autre j'ai une somme négative.

Je voudrais que dans la colonne W, s'inscrive à l'aide d'un code VBA, pour la ligne positive :
Virement du compte (valeur de la colonne J + valeur de la colonne E de la ligne négative) pour (valeur de la colonne V)
et sur la ligne négative :
Virement vers le compte (valeur de la colonne J + valeur de la colonne E de la ligne positive) pour (valeur de la colonne V)

Je ne suis pas très loin de la solution, enfin je pense mais je suis bloqué pour le moment.

J'ai écrit le code suivant :

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
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
 
Private Sub CommandButton1_Click()
 
Dim I As Integer
Dim DERNLIGNVIR As Long
Dim MONTANTVAR As String
 
    DERNLIGNVIR = Range("E1048576").End(xlUp).Row
 
    For I = 4 To DERNLIGNVIR
 
        If Range("E" & I) = "" Then
        Rows(I).Delete
        End If
 
        If Range("E" & I) = "Imputation" Then
        Rows(I).Delete
        End If
 
    Next I
 
    For I = 4 To DERNLIGNVIR
 
        If Range("A" & I) = "" Then
        Range("T" & I) = Range("T" & I).Offset(-1, 0).Value
        Range("U" & I) = Range("T" & I).Offset(-1, 0).Value & Range("J" & I).Value & "_" & Range("E" & I).Value
        Else
        Range("T" & I) = Range("A" & I).Value & Range("B" & I).Value
        Range("U" & I) = Range("A" & I).Value & Range("B" & I).Value & Range("J" & I).Value & "_" & Range("E" & I).Value
        End If
 
        If Range("C" & I) = "" Then
        Range("V" & I) = Range("V" & I).Offset(-1, 0).Value
        Else
        Range("V" & I) = Range("C" & I).Value
        End If
 
        Range("X" & I) = Range("Q" & I).Value
 
        Range("Y" & I) = Range("Y" & I).Value
 
    Next I
 
    For I = 4 To DERNLIGNVIR
 
        If Range("T" & I).Value = Range("T" & I).Offset(-1, 0).Value Then
 
            If Range("Q" & I) > 0 Then
            MONTANTVAR = "Du compte "
            COMPTEVARPOSITIF = Range("J" & I).Value & "_" & Range("E" & I).Value
            Range("W" & I) = "Virement " & MONTANTVAR & COMPTEVARNEGATIF1 & " + " & _
            COMPTEVARNEGATIF2 & " + " & _
            COMPTEVARNEGATIF3 & " + " & _
            COMPTEVARNEGATIF4 & " + " & _
            COMPTEVARNEGATIF5 & " + " & _
            COMPTEVARNEGATIF6 & " + " & _
            COMPTEVARNEGATIF7 & " + " & _
            COMPTEVARNEGATIF8 & " + " & _
            COMPTEVARNEGATIF9 & " + " & _
            COMPTEVARNEGATIF10 & " + " & _
            COMPTEVARNEGATIF11 & " + " & _
            COMPTEVARNEGATIF12 & " + " & _
            " Pour " & Range("V" & I).Value
            Else
            MONTANTVAR = "Vers le compte "
            COMPTEVARNEGATIF1 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF2 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF3 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF4 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF5 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF6 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF7 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF8 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF9 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF10 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF11 = Range("J" & I).Value & "_" & Range("E" & I).Value
            COMPTEVARNEGATIF12 = Range("J" & I).Value & "_" & Range("E" & I).Value
            Range("W" & I) = "Virement " & MONTANTVAR & COMPTEVARPOSITIF & " Pour " & Range("V" & I).Value
            End If
 
        End If
 
    Next I
 
End Sub
Je joint un fichier exemple pour que cela soit plus représentatif.

EXEMPLE.xlsm

Merci par avance à ceux qui pourront me débloquer.