Bonjour à tous,
J'ai mis en place un code qui devrait me permettre d'extraire d'un tableau Excel toutes les factures qui ont plus de 4 jours de traitement.
Le délai normal à respecter est dans la colonne S de la feuille "Arrivéefactures"
et le temps passé dans la colonne T de la même feuille.
La 1ère saisie est faite en ligne 3 de la feuille
A l'ouverture du fichier, un message (MsgBox) me previent que des factures ont dépassées le délai en cliquant sur "Yes", copie dans une feuille la liste des factures en question, cette feuille se nomme "Hors délais".
Mais voilà, toute la liste est recopiée.
Pouvez-vous m'aider à y voir plus clair s'il vous plait ?
Merci par avance
Voici le code en question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Dim msg As String Dim insuf As Boolean Dim tablo As Variant Dim vRep As Integer insuf = False Sheets("Hors délais").Cells.ClearContents tablo = Worksheets("Arrivéefactures").Range("T1:T" & Split(Worksheets("Arrivéefactures").UsedRange.Address, "$")(4)).Value For i = 3 To UBound(tablo) If tablo(i, 1) < Worksheets("Arrivéefactures").Range("S" & i) Then insuf = True Exit For End If Next If insuf Then vRep = MsgBox("Ces factures ne sont toujours pas traitées", vbYesNo, "Avertissement") If vRep = vbNo Then Exit Sub End If If vRep = vbYes Then Sheets("Hors délais").Visible = True Sheets("Hors délais").Activate Sheets("Hors délais").Select Selection.ClearContents Sheets("Hors délais").Select Range("A1").Select Sheets("Arrivéefactures").Range("A2:R" & Worksheets("Arrivéefactures").UsedRange.Rows.Count).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Select").Range("A1:A2"), CopyToRange:=Range("A1"), Unique:=False Sheets("Hors délais").Select Else Load FrmBonj FrmBonj.Show End If
Partager