Problème de boucles au niveau de mon code.

arnaud95000 Messages postés 46 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 18 décembre 2007 - 21 sept. 2007 à 12:24
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 22 sept. 2007 à 13:01
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

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
22 sept. 2007 à 13:01
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²
0
Rejoignez-nous