Code rapprochement (2)

20 août, 2007

Ce code fait le rapprochement des écritures par leur montant en tenant compte d’une partie du libellé

*****************************************************************

***********************************************************************

‘NB: Les informations precédées du signe ‘ sont des commentaires
‘Elles ne sont pas considérées dans l’exécution du code
‘Ce code ne concerne que sur les opérations au crédit. Il est facilement adaptable pour les opérations au débit
‘Pour rapprocher une écriture,Il prend en compte non seulement le montant
‘mais également un element du libellé des opérations NS
‘qui doit correspondre avec un element du libellé des opérations AS.

Sub Rapprochement_Credit_New()

‘Cette macro fait le rapprochement des montants nouveau système (NS) et ceux de ancien système (AS)
‘macro écrite par calvin, le 29 avril 2007
‘les montants rapprochés sont coloriés en vert
Rem NB: Avant d’utiliser ce code, il est conseillé de mettre les montants sous format de séparateur de milliers

Dim i As Long
Dim j As Long
Dim k As Integer
Dim m As Integer
Dim Montant, NumeroAS, NumeroNS ‘As Double
Dim TableauNS() As String
Dim TableauAS() As String

 With ActiveSheet ‘Le code devrait marcher pour la feuille active

    For j = 2 To 600 ‘debut de la boucle sur les montant AS
   
        Montant = Cells(j, 11) ‘Recupération de la valeur AS dans cette variable (colonne K, ie n°11)
       
       
            For i = 2 To 600 ‘debut de la boucle sur les montant NS au débit
               
                ‘ la fonction Split divise une chaine en fonction des espaces Ex: Plit(”je suis en vie”, ” “), aura en sortie : | je | suis | en | vie |
                ‘ Puis on conserve le résultat dans un tableau
               
                TableauNS = Split(Cells(i, 4).Offset(0, -2), ” “) ‘Fonction dans la colonne des libellés NS
                TableauAS = Split(Cells(j, 11).Offset(0, 2), ” “) ‘Fonction dans la colonne des libellés AS
               
                    For k = 0 To UBound(TableauNS) ‘Boucle sur le tableau NS
                       
                        For m = 0 To UBound(TableauAS) ‘Boucle sur le tableau AS
                       
                            ‘Condition si le montant AS correspond au montant NS (colonne C, ie n°3)
                            ‘Et une partie du libellé AS  est contenu dans une partie du libellé de NS
                           
                             If Cells(i, 4) = Montant _
                             And TableauAS(m) = TableauNS(k) _
                             And Cells(i, 4).Interior.ColorIndex <> 4 _
                             And Cells(j, 11).Interior.ColorIndex <> 4 _
                             And Imput = “C” Then ‘Condition si le montant AS correspond au montant NS (colonne D, ie n°4)
                                    Cells(i, 4).Interior.ColorIndex = 4 ‘Colorier la cellule du montant NS
                                    Cells(j, 11).Interior.ColorIndex = 4 ‘Colorier la cellule du montant AS
               
                                End If ‘Fin de la condition
                               
                        Next m ‘increment de la cellule du tableau AS
                       
                    Next k ‘increment de la cellule du tableau NS
                   
            Next i ‘increment de la cellule suivante des montants NS
   
    Next j  ‘increment de la cellule suivante des montants AS
   
 End With ‘Fin Feuille active
 
 MsgBox “Lettrage des montants au crédit terminé”, vbInformation, “Lettrage ” ‘Message qui indique la fin du lettrage
 
End Sub 

Leave a Reply