Bonsoir,
Dans ton exemple (feuille de départ)
Si j'insère une ligne avant la ligne 1 , je remarque que chaque groupe de 4 lignes représente une future structure.
iLastRow = Range("A65535" ).End(xlUp).Row
iNbStructures = iLastRow / 4 (pour l'instant avec la ligne ajoutée iLastRow = 8)
Ok ?
On va donc attaquer une boucle basée sur cet exemple (en italique des commentaires)
For j = iLastRow To 4 Step (moins quelque chose...) j = 8
Rows(j -3).Insert cuisine est passé ligne 9
Rows(j -3).Insert couloir est passé ligne 9 mais j = toujours 8
Nous allons maintenant baptiser la ligne 6 :
Range("A" & j - 2).Value = "STRUCTURE " & iNbStructures
La prochaine structure sera décrémentée de 1 donc :
iNbStructures = iNbStructures -1
Pour passer de j = 8 à j = 4 le step est de - 4 on peut donc fixer le step et achever la boucle
Next
Celle-ci devrait s'arrêter logiquement après avoir baptisé la Structure 1
Il ne reste plus qu'à insérer les 3 dernières lignes et les baptiser...
Il n'y aura pas de structure de contrôle if... end if.
Ce qui donne :
Code :
- Sub Test2()
- Rows(1).Insert
- iLastRow = Range("A65535" ).End(xlUp).Row
- iNbStructures = iLastRow / 4
- For j = iLastRow To 4 Step - 4
- Rows(j -3).Insert
- Rows(j -3).Insert
- Range("A" & j - 2).Value = "STRUCTURE " & iNbStructures
- iNbStructures = iNbStructures -1
- Next
- End Sub
|
Ok ?
Il ne te reste plus qu'à rajouter les 3 dernières lignes.
A+