Bonjour a tous,
Je souhaite inserer des lignes sous conditions ;
si la cellule G7 est vide, inserer une ligne en dessous en y copiant la plage A7:E7
Si la cellule G7 n'est pas vide, inserer 2 lignes en dessous en y copiant la plage A7:E7
Le tableau:
DATE CHQ REF DESCRIPTION INV'S PD BANKED NET OF VAT
xxxxx xxxx xxxxxxx x x Non vide
aaaaa aa a aaa a Vide
cc ccc c c c Non vide
Le resultat souhaite:
DATE CHQ REF DESCRIPTION INV'S PD BANKED NET OF VAT VAT
xxxxx xxxx xxxxxxx x x Non vide
xxxxx xxxx xxxxxxx x x
xxxxx xxxx xxxxxxx x x
aaaaa aa a aaa a Vide
aaaaa aa a aaa a
cc ccc c c c Non vide
cc ccc c c c
cc ccc c c c
Une des solutions que j'ai trouve pour realiser la commande: (pas terrible)
Inserer une ligne entre chaque sans condition particuliere
et ensuite faire une condition simple si la cellule n'est pas vide (je n'arrive pas a faire avec Else. et en plus je n'ai pas reussi a copier les cellules par la suite.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Range("A50").Select Do Until ActiveCell.Row = 1 'Insert blank row. ActiveCell.EntireRow.Insert Shift:=xlDown 'Move up one row. ActiveCell.Offset(-1, 0).Select Loop
Le but est d'inserer une ligne en dessous a la condition que la cellule de la ligne superieure colonne 7 n est pas vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim f As Integer For f = Cells(50, 1).End(xlUp).Row To 1 Step -1 If Cells(f, 7).Value <> "" Then Cells(f + 1, 1).EntireRow.Insert Next f
Le code fonctionne correctement mais je souhaite faire un copier coller de la plage A(x-1):E(x-1) dans la nouvelle ligne inserer.
Ensuite j'aurais juste a creer une condition qui rempli les plages encore vide par la oplage de la cellule superieure.
Le truc peut paraitre complexe pour vous. Perso, je debute et je galere pas mal. Alors, si quelqu'un reussit a completer mon code ou alors a en creer un pour obtenir le tableau souhaite ca serait vraiment cool.
Merci d'avance a vous tous.
Monteninho
Partager