Bonjour,
Dans un tableau:
- je parcours toutes les lignes les unes après les autres (for indiceLigne = 1 to valeurCible)
- en fonction du contenu de la cellule (ligne, G), je dois ou non rajouter un certain nombre de lignes (if cells(indiceLigne)<>0 then Rows(indiceLigne + 1).Resize(valeur).Insert Shift:=xlDown)
- lorsque j'ai rajouté des lignes, j'incrémente d'autant la valeur de mon indiceLigne et de la valeurCible (indiceLigne = indiceLigne+valeur et valeurCible = vleurCible+valeur)
malheureusement, lorsque je teste ma macro, la boucle for se termine dès lors que l'indiceLigne est supérieur à la valeur initiale de valeurCible.
Voici le code:
Lorsque je vérifie les variables locales, je ne détecte aucune 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 Private Function RealLastLine(sheetArea As Range) As Long If WorksheetFunction.CountA(sheetArea) = 0 Then RealLastLine = 1: Exit Function RealLastLine = sheetArea.Find("*", , , , , xlPrevious).Row End Function Sub SplitArticles() Sheets("Feuil2").Select rowEnd = RealLastLine(Sheets("Feuil2").Cells) For rowVar = 5 To rowEnd partName = Split(Cells(rowVar, 7), " - ") nbOption = UBound(partName) If nbOption <> 0 Then Rows(rowVar + 1).Resize(nbOption).Insert Shift:=xlDown rowVar = rowVar + nbOption rowEnd = rowEnd + nbOption End If Next End Sub
Le tableau de la "Feuil2" contient en colonne 7 (G) des données du type : item1 - item2 - item3... comme suit :
et la macro est censée rajouter après la ligne autant de ligne supplémentaire que de séparation " - ".
A B C D E F G text text text text text text item1 - item2 - item3 - item4 text text text text text text item1 text text text text text text item1 - item2 text text text text text text item1 - item2 - item3
Je suppose que la solution est assez trivial, mais une fois de plus je butte.
Merci pour votre aide
- crissc -
Partager