W
Willy
Guest
Bonsoir à tous,
Je vais essayer d'être clair ( pas facile quand on débute !)
J'ai une feuille qui contient un arrière plan.
j'ai un petit tableau de B10 à I20.
( Ce que j'appelle un petit tableau c'est que chaque cellule de B10 à I20 à le fond coloré en blanc et chaque cellule contient une bordure).
J'ai une procédure qui me permet si besoin d'insérer une ligne à ce tableau, c'est à dire effectue une copie de la ligne précédente avec la mise en forme mais également les formules incrémentées.
Si j'insère une ligne à partir de la dernière ligne, aucun pb l'opération est effectuée correctement me semble t'il.
Par contre ca m... au niveau des formules si j'insère une ligne n'importe ou dans le tableau. celle-ci n'est pas incrémentée mais simplement copiée.
Comment effectuer une insertion de ligne avec mise en forme et formules correctement n'importe ou dans le classeur ?
Voici la procédure que j'utilise :
Sub NouvelleLigneEnBas()
'Lève la protection de la feuille
ActiveSheet.Unprotect Password:="SCENE"
'Place le curseur à la dernière cellule vide
Range("B10").Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
Wend
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
Next i
ActiveCell.Range("A2").Select
'Remet la protection de la feuille
ActiveSheet.Protect Password:="SCENE", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Toutes vos idées seront les bienvenues.
Le but que je recherche c'est d'avoir un tableau qui ne contienne que le nombre de ligne écrite pour ne pas avoir à imprimer des lignes vierges.
Peut être serait t'il plus judicieux d'avoir un tableau qui contienne 200 lignes vierges et de supprimer les lignes vierges avant l'impression ?
Pour ma part je trouve cette solution trop rigide, car si j'ai besoin de créer la ligne 201, je me retrouve dans le même problème.
Quand pensez vous ?
Merci de votre aide,
Willy
Je vais essayer d'être clair ( pas facile quand on débute !)
J'ai une feuille qui contient un arrière plan.
j'ai un petit tableau de B10 à I20.
( Ce que j'appelle un petit tableau c'est que chaque cellule de B10 à I20 à le fond coloré en blanc et chaque cellule contient une bordure).
J'ai une procédure qui me permet si besoin d'insérer une ligne à ce tableau, c'est à dire effectue une copie de la ligne précédente avec la mise en forme mais également les formules incrémentées.
Si j'insère une ligne à partir de la dernière ligne, aucun pb l'opération est effectuée correctement me semble t'il.
Par contre ca m... au niveau des formules si j'insère une ligne n'importe ou dans le tableau. celle-ci n'est pas incrémentée mais simplement copiée.
Comment effectuer une insertion de ligne avec mise en forme et formules correctement n'importe ou dans le classeur ?
Voici la procédure que j'utilise :
Sub NouvelleLigneEnBas()
'Lève la protection de la feuille
ActiveSheet.Unprotect Password:="SCENE"
'Place le curseur à la dernière cellule vide
Range("B10").Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
Wend
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
Next i
ActiveCell.Range("A2").Select
'Remet la protection de la feuille
ActiveSheet.Protect Password:="SCENE", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Toutes vos idées seront les bienvenues.
Le but que je recherche c'est d'avoir un tableau qui ne contienne que le nombre de ligne écrite pour ne pas avoir à imprimer des lignes vierges.
Peut être serait t'il plus judicieux d'avoir un tableau qui contienne 200 lignes vierges et de supprimer les lignes vierges avant l'impression ?
Pour ma part je trouve cette solution trop rigide, car si j'ai besoin de créer la ligne 201, je me retrouve dans le même problème.
Quand pensez vous ?
Merci de votre aide,
Willy