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)
(La dernière partie du code est répéter 6 fois avec La Valeur de facturation qui change et le type de facturation)
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
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
Partager