Bonjour,
Je reviens sur le forum pour de nouveaux travaux à vous faire partager. J'ai actuellement un fichier excel avec plusieurs codes sur une même ligne de marque. Je voudrais créer autant de ligne qu'il n'y a de codes en gardant la marque associé au code.
Je vous joins mon fichier excel.
J'ai débuté un script VBA, cependant j'ai déjà une erreur "Next sans For" au niveau du "Next i". Je ne comprend pas car c'est le Next de mon premier For.
Voici mon script:
Pensez-vous que la démarche est la bonne? Que puis-je améliorer? Comment me décoincer avec ce message d'erreur?
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 Option Explicit Sub Organiser() Dim Dossier As String Dim Fichier As String Dim Appareil As String Dim Marque As String Dim i As Integer Dim j As Integer Dim DerniereLigne As Integer Dim nbCodes As Integer Dim nbNewligne As Integer nbNewligne = 1 Dim TabCode() As String Dim k As Integer Sheets(2).Cells.ClearContents Application.ScreenUpdating = False With Sheets(1) .Activate 'Détermination du nombre de lignes DerniereLigne = Range("A65536").End(xlUp).Row 'Lecture + Mise en mémoire For i = 1 To DerniereLigne Dossier = .Cells(i, 1) Fichier = .Cells(i, 2) Appareil = .Cells(i, 3) Marque = .Cells(i, 4) nbCodes = compteCodes(i) For j = 0 To nbCodes - 1 TabCode(j) = .Cells(i, j + 5) Next j With Sheets(2) .Activate For k = 1 To nbCodes .Cells(k + nbNewligne, 1) = Dossier .Cells(k + nbNewligne, 2) = Fichier .Cells(k + nbNewligne, 3) = Appareil .Cells(k + nbNewligne, 4) = Marque .Cells(k + nbNewligne, 5) = TabCode(k) Next k nbNewligne = nbNewligne + nbCodes Next i End Sub Function compteCodes(ligne As Integer) Dim j As Integer j = 5 With Sheets(1) .Activate While .Cells(ligne, j).Value <> "" j = j + 1 Wend End Function
Merci d'avance.
Cordialement, idate.
Partager