XL 2013 Mise en forme conditionnelle et insertion de lignes

adet ruireux

XLDnaute Nouveau
Bonjour à tous (et à toutes)
Je dispose d’un tableau Excel sur la plage A2 :Q10, la ligne 2 étant (bien entendu) occupée par des en-têtes de colonnes.
J’ai appliqué une mise en forme conditionnelle à toute la colonne J (en mettant S’applique à =$J :$J).
Mon problème survient quand j’insère une ligne à la place de la ligne 3 et que je lui applique la mise en forme de ce qui est devenu la ligne 4 :


1
2
3
4
5
6
7
8
9
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Rows("4:4").Select
Selection.Copy
Rows("3:3").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Une ligne supplémentaire de mise en forme est créée (et S’applique à =$J3 :$J3).
La mise en forme de la plage J4 :J11 s’applique maintenant à =$J$1:$J$2;$J$4:$J$1048576.
Je vais avoir à insérer des milliers de lignes et me demande si Excel sera capable d’ajouter autant de lignes dans les mises en forme.
Peut-être y a t'il moyen de modifier mon code afin de ne plus avoir ce problème.
Un grand merci d'avance.
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Ton code se résume à ceci :
VB:
Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("4:4").Copy
Rows("3:3").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
C'est le Paste:=xlPasteFormatsqui qui crée le problème que tu rencontres.

As-tu essayé de remplacer ton code simplement par ceci :
VB:
Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
 

adet ruireux

XLDnaute Nouveau
Bonjour,

Ton code se résume à ceci :
VB:
Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("4:4").Copy
Rows("3:3").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
C'est le Paste:=xlPasteFormatsqui qui crée le problème que tu rencontres.

As-tu essayé de remplacer ton code simplement par ceci :
VB:
Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Marcel32,

Merci pour ton intervention.
Si je modifie comme tu le proposes, je perds les couleurs que j'ai imposées à chaque colonne. La nouvelle ligne prend celle de la ligne d'en-tête.
De +, des lignes supplémentaires de mise en forme sont créées.
 

adet ruireux

XLDnaute Nouveau
Bonjour Adet ruineux, et bienvenu sur XLD,
Pas sur d'avoir tout compris, tentez peut être "S'applique à = $J:$J"
Le fait d'insérer des lignes ne changera pas la plage.
Bonjour Adet ruineux, et bienvenu sur XLD,
Pas sur d'avoir tout compris, tentez peut être "S'applique à = $J:$J"
Le fait d'insérer des lignes ne changera pas la plage.
Bonjour sylvanu,

Merci pour votre réponse.
Vous dites tentez peut être "S'applique à = $J:$J" et c'est ce que j'ai fait.....
 

TooFatBoy

XLDnaute Barbatruc
Ah bon. Au temps pour moi alors.
Mais c'est bizarre car chez moi ça fonctionne.

Sinon, tu masques la ligne n° 3 et tu n'utilises donc le tableau qu'à partir de la ligne 4 de la feuille. ;)

Si tu peux nous fournir un fichier anonymisé, ce sera peut-être mieux.
 

adet ruireux

XLDnaute Nouveau
Quand tu dis "MP", tu parles de la petite enveloppe en-haut à droite, avec le "1" qui clignote en rouge ?
Normalement le forum est là pour que l'aide soit publique.
C'est écrit dans la charte, si je me souviens bien. ;)

D'ailleurs, en MP on ne peut pas joindre de fichier.
Le voici.
Il faut cliquer sur le bouton "Enregistrer la demande" et cela complète la feuille "Données".
 

Pièces jointes

  • gestion.xlsx
    29 KB · Affichages: 8

Discussions similaires