Recherche factures dans liste

Bonjour tout le monde

J'ai deux listes de 2 colonnes adjacentes chacune, chaque liste dans une feuille ,colonne A et B ;depuis les cellules A2 et B2

La colonne A contient les numéros de factures la colonne B contient leurs dates.

La macro recherche :

Si une Facture ou plus avec sa/leurs date/s , de la feuille :"Recherche" sont présentes dans la feuille "Base" alors la ligne en question sera supprimée seulement de la feuille :"Recherche", sinon elle reste avec sa date dans la feuille "Recherche" avec la mention "Facture a payer" dans la cellule adjacente de de la colonne "C".

Cette macro fait ce travail mais elle est lente !!

Un grand Merci a vous si vous pouvez modifier le code pour augmenter la vitesse d’exécution .

Bonjour,

Je ne sais pas si j'ai compris ... teste le code suivant:

Sub Comparer()
Application.ScreenUpdating = False

Dim Lig2 As Long, Derlig2 As Long
Dim tablo2()

tablo = Sheets("Base").Range("A2:B" & Sheets("Base").Cells(Rows.Count, 1).End(xlUp).Row)
ReDim tablo2(UBound(tablo) - 1)
For i = 0 To UBound(tablo) - 1
    tablo2(i) = tablo(i + 1, 1) & "#" & tablo(i + 1, 2)
Next i
With Sheets("Recherche")
Derlig2 = .Cells(Rows.Count, 1).End(xlUp).Row
For Lig2 = Derlig2 To 2 Step -1
    If IsNumeric(Application.Match(.Cells(Lig2, 1) & "#" & .Cells(Lig2, 2), tablo2, 0)) Then .Cells(Lig2, 1).Interior.ColorIndex = 3
    'If IsNumeric(Application.Match(.Cells(Lig2, 1) & "#" & .Cells(Lig2, 2), tablo2, 0)) Then .Cells(Lig2, 1).EntireRow.Delete
Next Lig2
End With
Application.ScreenUpdating = True
End Sub

Dans un premier temps, le n° de facture existant est coloré en rouge (pour vérifier, avant de supprimer). Si les résultats sont corrects, mets en commentaire la ligne qui teste l'existence de la facture et la colore et supprime l'apostrophe à la ligne suivante

Un grand Merci a U. Milité

ta macro fonctionne parfaitement

Ci joint le fichier en question ,il contient la nouvelle macro en module 1

et l'ancienne en module 2.

Bonjour

Si après le lancement de la recherche par la macro au module 1 il ya des Factures a payer dans la feuille "Recherche"

et que l'utilisateur veut voir une remarque dans la colonne "C" devant chaque facture non payée il faut mettre dans le code

(la macro) ces 2 lignes dans l'ordre suivant :

If Not IsNumeric(Application.Match(.Cells(Lig2, 1) & "#" & .Cells(Lig2, 2), tablo2, 0)) Then .Cells(Lig2, 3) = "Facture a payer"
If IsNumeric(Application.Match(.Cells(Lig2, 1) & "#" & .Cells(Lig2, 2), tablo2, 0)) Then .Cells(Lig2, 1).EntireRow.Delete

et non dans cet ordre (par ce que j'ai fait le test):

 If IsNumeric(Application.Match(.Cells(Lig2, 1) & "#" & .Cells(Lig2, 2), tablo2, 0)) Then .Cells(Lig2, 1).EntireRow.Delete
 If Not IsNumeric(Application.Match(.Cells(Lig2, 1) & "#" & .Cells(Lig2, 2), tablo2, 0)) Then .Cells(Lig2, 3) = "Facture a payer"

on aura dans la ligne 2 colonne "C" :"Facture a payer" même s'il n’y a rien!

Ci joint le fichier Excel ,la macro est dans le module 1, le bouton d’exécution est sur la feuille "Recherche"

Au revoir

Bonjour abdu,

Je ne comprends pas bien: il y a une question ?

Ceci étant, puisqu'on a supprimé les lignes des factures existantes, ... il ne reste donc plus que des "factures à payer", non ? Quel est dès lors l'intérêt d'ajouter cette mention pour chaque facture subsistant en feuille "Recherche" ?

Bonsoir U. Milité

Je ’écris ces lignes juste pour donner mon opinion.

Les factures que soumet l’utilisateur au test peuvent être ,soit payées ,impayées ou mélangées.

Si elles sont toutes payées , pas de problème l'utilisateur perçoit la liste vide; la macro a fait le boulot.

Si elles sont mélangées, les payées seront supprimées et si la liste est grande l’utilisateur peut soupçonner la macro

Si elles sont toutes non payées l’utilisateur peut soupçonné beaucoup la macro

Quelque fois en lançant des macros elles ne s’exécutent pas et VBA ne donne pas d'erreurs.

L'utilisateur aime toujours le visuel qui l'aide et le rassure.

C'est pourquoi j'ai ajouté dans le code une ligne qui écrit en rouge dans la colonne "C" : "Facture a payer"

Merci pour l'aide et l’intérêt que tu as donné au sujet.

A bientôt

Rechercher des sujets similaires à "recherche factures liste"