Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
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
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…