Problème de boucles au niveau de mon code.

Signaler
Messages postés
46
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
18 décembre 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour j'ai une question en VBA, en fait ce que je voudrais c'est que pour chaque ligne si le nom du client est le même dans le première et la cinquième colonne je déduis le montant de la déduction et la deduction de ce même montant. Par exemple pour le client AC on fait pour la première ligne 1
12000000-1200-1300-1130=119996370 et les des déductions de AC sont de 0. Mais si si le montant de la déduction est supérieur au montant alors on doit avoir le résidu dans la colonne déduction. J'ai commencé une macro mais çà ne marche pas du tout. Merci d'avance de votre aide.

Avant déduction

<colgroup><col style=\"WIDTH: 149pt; mso-width-source: userset; mso-width-alt: 7277\" width=\"199\" /><col style=\"WIDTH: 60pt\" span=\"5\" width=\"80\" /></colgroup>----
Clients, Montant,  ,  , Clients, Deduction, ----
AC, 120000000,  ,  , AC, 1200, ----
AC, 130000000,  ,  , AC, 1300, ----
AC, 11300000,  ,  , AC, 1130, ----
AC, 8243963,  ,  , AFF, 824, ----
AFF, 28172415,  ,  , AFF, 2817, ----
AFF, 70000000,  ,  , AFF, 700, ----
AFF, 20000000,  ,  , AFF, 20000, ----
AIR , 6359319,  ,  , AIR , 6359, ----
AIR, 1805647,  ,  , AL, 1807, ----
AL, 1805647,  ,  , AL, 1805

Aprés déduction ce que je devrai avoir

<colgroup><col style=\"WIDTH: 149pt; mso-width-source: userset; mso-width-alt: 7277\" width=\"199\" /><col style=\"WIDTH: 60pt\" span=\"5\" width=\"80\" /></colgroup>----
Clients, Montant,  ,  , Clients, Deduction, ----
AC, 119996370,  ,  , AC, 0, ----
AC, 130000000,  ,  , AC, 0, ----
AC, 11300000,  ,  , AC, 0, ----
AC, 8243963,  ,  , AFF, 0, ----
AFF, 28148074,  ,  , AFF, 0, ----
AFF, 70000000,  ,  , AFF, 0, ----
AFF, 20000000,  ,  , AFF, 0, ----
AIR , 6352960,  ,  , AIR , 0, ----
AIR, 1805647,  ,  , AL, 0, ----
AL, 1802035,  ,  , AL, 0

Voici mon code

Sub macro()
Dim i As Integer
Dim j As Integer
i = 1
j = 1
Do While Worksheets("analyse").Cells(j, 5) <> ""
    Do While Worksheets("analyse").Cells(i, 1) <> ""
        If Worksheets("analyse").Cells(i, 1) = Worksheets("analyse").Cells(j, 5) Then
            If Worksheets("analyse").Cells(i, 2) > Worksheets("analyse").Cells(j, 6) Then
                Worksheets("analyse").Cells(i, 2) = Worksheets("analyse").Cells(i, 2) - Worksheets("analyse").Cells(j, 6)
                Worksheets("analyse").Cells(j, 6) = Worksheets("analyse").Cells(j, 6) - Worksheets("analyse").Cells(j, 6)
            Else
            Cells(i, 2) = Cells(i, 2) - Cells(i, 2)
            Cells(j, 6) = Cells(j, 6) - Cells(i, 2)
            End If
        End If
        j = j + 1
    Loop
        i = i + 1
    Loop
End Sub

Merci.

1 réponse

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Désolé, mais avec la nouvelle configuration du site,
on ne peut plus voir la partie droite de ce qui est écrit.
Peux-tu réécrire ta question en utilisant des sauts de lignes ?

À première vue, je pense qu'il y a mélange dans les   i et j
ainsi que les lignes et colonnes
se pourrait-il ?

MPi²