Bonjour tout le monde.
Dans mon Sub, une boucle ne se fait pas, celle qui identifie/somme/supprime les lignes présentant le même d'intitulé. Voici le dit code :
Mon but est qu'une fois les parties précédentes du sub effectuées (récupération et mise en forme de données, pas de souci là-dessus), j'identifie les lignes qui ont le même intitulé en colonne A (doublon > 1) et qui est différent de "TOTAL", je copie la ligne cible de la boucle (cellule en ligne=dbl et colonne=1) et le l'insère "dbl+doublon" lignes plus bas (offset(doublon,0)). Ensuite, je fais la somme de la colonne E qui correspond au critère (somme de la colonne E si même intitulé en colonne A) et je supprime les anciennes lignes qui partageais ce même intitulé.
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 Dim colonne as worksheet colonne = Workbooks("lancement macro CDS PASTEUR - Mmmm yy.xlsm").Worksheets(1) With colonne Dim dbl As Integer, doublon As Integer dbl = 20 doublon = colonne.Application.WorksheetFunction.CountIf(Columns("A:A"), Cells(dbl, 1).Value) For dbl = 20 To Cells(Rows.Count, 1).End(xlUp).Row - 1 If doublon > 1 And Cells(dbl, 1).Value <> "TOTAL" Then 's'il y a plus d'une case A qui porte le même intitulé et qu'en plus ce n'est une case ayant pour intitulé TOTAL .Rows(dbl).EntireRow.Select 'sélection de la ligne qui subit le test Selection.Copy 'copie de cette ligne entière Selection.Offset(doublon, 0).Insert 'insertion de la copie de ligne au nombre de répétitions en-dessous, car la colonne A est classée par ordre alphabétique .Cells(dbl + doublon, 5).Value = .Application.WorksheetFunction.SumIf(Columns("A:A"), Cells(dbl, 1).Value, Columns("E:E")) 'quantité de la nouvelle ligne = somme des quantités .Range(Cells(dbl, 1), Cells(dbl + doublon - 1, 1)).EntireRow.Delete 'suppression des autres lignes doublons End If Next dbl End With
Or, la boucle ne semble ne pas s'effectuer ; en effet, lors de mes tests, des lignes continuent de partager le même intitulé et il n'y a même pas de création de nouvelle ligne (exemple : Methoxyfurane liquide). Ai-je été assez explicite ?
Ainsi, pouvez-vous m'éclairer sur la raison svp ? D'avance, je vous en remercie.
Partager