Bonjour,
Alors voici ma macro Excel, elle lit un onglet et compare chaque ligne à un autre onglet. Si les deux lignes correspondent alors on recopie une description.
Le debug me donne l'erreur 1004
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 'de l'onglet Phy à Nouveau Sub Description3() Dim debut As Long, fin As Long 'Début du compteur de temps debut = GetTickCount() Dim ligneP, ligneN As Integer ligneP = 2 Dim ClassFirst, ClassSecond, ClassThird, ObjectName, DescriptionEN As String Dim trouve As Boolean 'On parcours toute la feuille au format Phy While IsEmpty(Worksheets("Phy").Range("B" + CStr(ligneP)).Value) = False 'On place le contenu de la ligne en cours dans les variables With Worksheets("Phy") ClassFirst = .Range("B" + CStr(ligneP)) ClassSecond = .Range("C" + CStr(ligneP)) ClassThird = .Range("D" + CStr(ligneP)) ObjectName = .Range("E" + CStr(ligneP)) DescriptionEN = .Range("K" + CStr(ligneP)) End With 'On cherche la ligne dans le nouveau format trouve = False ligneN = 2 With Worksheets("Nouveau") 'Premiere passe While trouve <> True And IsEmpty(.Range("D" + CStr(ligneN)).Value) = False 'On cherche la ligne correspondante If .Range("D" + CStr(ligneN)).Value = ObjectName Then If .Range("C" + CStr(ligneN)).Value = ClassThird Then If .Range("B" + CStr(ligneN)).Value = ClassSecond Then If .Range("A" + CStr(ligneN)).Value = ClassFirst Then 'Description EN ajouté ERREUR 1004 ICI .Range("F" + CStr(ligneN)).Value = DescriptionEN 'On a trouvé trouve = True .Range("G" + CStr(ligneN)).Value = "BOUM" Worksheets("Phy").Range("A" + CStr(ligneP)) = "BOUM" End If End If End If End If 'ligne suivante dans l'onglet nouveau ligneN = ligneN + 1 Wend End With 'ligne suivante dans l'onglet Phy ligneP = ligneP + 1 Wend 'Fin du compteur fin = GetTickCount() Debug.Print CStr(TimeSerial(0, 0, (((fin - debut) / 1000)))) MsgBox "Finito : " + CStr(TimeSerial(0, 0, (((fin - debut) / 1000)))) End Subau niveau de l'ajout de descriptionEN, en dessous du commentaire 'ERREUR 1004 ICI', ligne 41.
je suis un peu à court d'idées donc je voudrais vos avis de grands experts![]()
Partager