Bjr,
Voici mon probleme
J'ai ecrit ce code ( et ca fonctionne )
Je lis la valeur des cellules de la colonne Q ( à partir de Q2) et je recherche s'il y a une occurence dans la colonne J
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 Sub Macro1() zz = Timer Range("Q2").Select Do temp = ActiveCell.Value fm = Left(temp, 1) With ActiveWorkbook.Worksheets(1).Columns("J:J").Cells Set c = .Find(what:=temp, LookIn:=xlValues _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False) If Not c Is Nothing Then Select Case fm Case 6 ActiveCell.Offset(0, -9).Value = "interne M" Case Else ActiveCell.Offset(0, -9).Value = "interne F" End Select Else ActiveCell.Offset(0, -9).Value = "externe" End If End With ActiveCell.Offset(1, 0).Activate Loop Until IsEmpty(ActiveCell) zz1 = Timer zz1 = zz1 - zz MsgBox (zz1) End Sub
Si oui, en fonction du premier caractere de la cellule active ( colonne Q) j'ecris interne F ou interne M,
Si non , j'ecris externe
et je boucle tant que que je ne suis pas au bout de la colonne Q
Concretement, c'est un fichier de com telephoniques et je regarde si mon VPN est rentable ( pourcentage de communications internes fixes ou mobiles par rapport au pourcentage de communications externes)
Alors mon probleme c'est le temps de traitement
j'en suis à 81 secondes pour 1000 lignes
Sachant que mon fichier mensuel excede les 40 000 lignes, je vous raconte pas le temps....
D'où ma nouvelle approche
1) trier la colonne Q
2) rechercher dans la colonne J les occurences et comme avant ecrire le resultat
mon probleme , c'est que une fois que j'ai trié la colonne Q, je ne vois pas comment aller du premier au dernier element identique de cette colonne Q....
Partager