Bonjour
j'ai deux comptables
le premier constate les Achats son journal de saisie est ACH
le deuxième régler les Achats son journal de saisie est BQD
A la fin du mois je souhaite a voir les Achats non régler.
voici mon tableau
après la constatation le libelle du comptable ACH et automatiser comme suivant :
code fournisseur 5carac - Objet de la facture
après le paiement le libelle du comptable BQD et automatiser comme suivant :
code fournisseur 5carac -Date/N°orde de virement N°de la pièce de constatation Ach
voici un exemple
Au début ma macro marche très bien mais avec le temps le nombre de ligne et devenu très grand ( plus de 40000 lignes ) et son exécution est très lonte
J'ai essayer de travailler avec les tableau ou les collection ou les scripte j'ai lu que c'est plus rapide mais j'ai pas réussie
j'ai deux comptables
le premier constate les Achats son journal de saisie est ACH
le deuxième régler les Achats son journal de saisie est BQD
A la fin du mois je souhaite a voir les Achats non régler.
voici mon tableau
après la constatation le libelle du comptable ACH et automatiser comme suivant :
code fournisseur 5carac - Objet de la facture
après le paiement le libelle du comptable BQD et automatiser comme suivant :
code fournisseur 5carac -Date/N°orde de virement N°de la pièce de constatation Ach
voici un exemple
Au début ma macro marche très bien mais avec le temps le nombre de ligne et devenu très grand ( plus de 40000 lignes ) et son exécution est très lonte
Code:
Option Explicit
Sub Rapprochement()
Dim Dl As Long, I As Long, J As Long
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
Dl = ActiveSheet.Cells(Application.Rows.Count, 8).End(xlUp).Row - 1
For I = 9 To Dl
If Range("C" & I) = "BQD" Then
Range("I" & I).FormulaLocal = "=CONCATENER(STXT(F" & I & ";CHERCHE(""/"";F" & I & ")+7;7);"" """ & ";SIERREUR(TEXTE(CNUM(GAUCHE(F" & I & ";TROUVE(""-"";F" & I & ")-1));""00000"");0);"" "";(G" & I & "+H" & I & "))"
Else
Range("I" & I).FormulaLocal = "=CONCATENER(D" & I & ";"" "";SIERREUR(TEXTE(CNUM(GAUCHE(F" & I & ";TROUVE(""-"";F" & I & ")-1));""00000"");0);"" "";(G" & I & "+H" & I & "))"
End If
Next I
For I = 9 To Dl
Range("J" & I).Formula = "=COUNTIF($i$9:$i$" & Dl & ",I" & I & ")"
Next I
ActiveSheet.Range("$A$8:$J$" & Dl).AutoFilter
ActiveSheet.Range("$A$8:$J$" & Dl).AutoFilter Field:=10, Criteria1:="=2", Operator:=xlOr, Criteria2:="="
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub