Bonjour,
J'ai actuellement un problème d'ordre général sur ce sujet :

J'ai un fichier mensuel, qui donne la conso de chaque ligne téléphonique (1000 lignes tel)

Ce fichier est assez lourd et représente 24 colonnes sur 10000 Lignes.

Le but est de vérifier les tarifs erronés sur les derniers mois.
Sur l'une des colonnes se trouve le type de facturation et je doit en vérifier 6 (sur tout le fichier il y a peu près 15 type de facturation)

Dans ma première idée.
Je faisais un tri auto, puis sélection Type facturation A.
Puis la suite de la macro sélectionnait la colonne du premier mois et commençait à vérifier si le tarif du type de facturation A était bien appliqué à toute les lignes de cette colonne.
A chaque erreur il copiait la ligne dans un autre fichier

(Tout ceci marche actuellement)

Mais premier problème est qu'il y a plusieurs colonnes et que donc il est possible qu'il ait plusieurs erreurs dans la même ligne mais la macro ne le vois pas et copie deux fois la ligne dans le rapport d'erreur.
Donc j'aimerais bien éviter les doublons.

Autre problème, la macro est très lourde et enchaîne boucle sur boucle (cf code juste dessous)
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
33
34
35
36
37
38
39
40
41
42
43
 
 
'Déclaration de la variable i et j
 
         Dim i As Integer
         Dim j As Integer
         Dim A As Variant
         Dim B As Variant
         Dim C As Variant
         Dim D As Variant
         Dim E As Variant
         Dim F As Variant
         Dim h As Integer
         Dim k As Integer
 
 
 
         Sheets("Base").Select
 
         A = Range("B2").Value
         B = Range("B3").Value
         C = Range("B4").Value
         D = Range("B5").Value
         E = Range("B6").Value
         F = Range("B7").Value
 
 
 
For i = 3 To 15000
         Windows("Facture_ligne_mobile.xls").Activate
            If Range("D" & i).Value = "Type Facturation A" Then
               If Range("H" & i).Value <> A Then
                     Rows(i).Copy
                     Windows("verif_mobile.xls").Activate
                     Sheets("Rapport").Select
                         For j = 3 To 15000
                             If Range("A" & j).Value = Range("X65000").Value Then Range("A" & j).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                             :=False, Transpose:=False: Exit For
                         Next j
            End If
            End If
 
    Next i
(La dernière partie du code est répéter 6 fois avec La Valeur de facturation qui change et le type de facturation)


J'aimerais que la macro, fasse
-vérification colonne H,I et J avec :
-Type de Facturation A puis B puis C puis D puis E (Tri)
-Paramètre le tarif A A puis B puis C puis D puis E
Et quand il détecte une erreur il finit la vérification de la ligne complète (3 colonnes) puis s'il y a une erreur ou plusieurs de copier cette ligne dans un autre fichier.

Merci d'avance pour vôtre aide