5 votes

Impossible de préserver le format des bordures sur range.insert

Existe-t-il un moyen d'insérer une nouvelle ligne tout en conservant le format de la bordure ? Je suis en mesure d'insérer tout en conservant tous les formats, à l'exception des bordures. La macro que je suis en train de créer demandera à l'utilisateur de saisir une valeur (strXX) et de la rechercher dans une liste. Si elle n'existe pas, la procédure suivante est exécutée.

iRow = WorksheetFunction.Match(strXX, Columns("A")) + 1
Intersect(Range("Z:TT"), Rows(iRow)).Insert _
XlInsertShiftDirection.xlShiftDown, CopyOrigin:=Excel.XlInsertFormatOrigin.xlFormatFromLeftOrAbove

Y a-t-il quelque chose que je doive modifier en ce qui concerne la Origine de la copie ? Il semble y avoir des méthodes disponibles via les fonctions de collage, mais je n'ai pas trouvé de méthode similaire pour l'insertion.

Toute aide est grandement appréciée... Merci !

Mise à jour (8/15) : Depuis cet article, j'ai reformaté ma feuille de calcul et j'ai pu contourner le problème. Je suis toujours très intéressé par les commentaires, car la configuration originale ne permettait pas de copier la bordure. Ce problème refera certainement surface à une date ultérieure. Vous trouverez ci-dessous des informations complémentaires.

Deux feuilles seront mises à jour. La première fonctionne bien car elle préserve le formatage des cellules (aucune bordure n'est nécessaire). Voir ci-dessous. enter image description here

Le problème décrit dans ce message concerne la deuxième feuille. La ligne est insérée et toutes les mises en forme sont préservées, à l'exception des bordures (paramètre standard "Bordures extérieures"). Voir ci-dessous. enter image description here

1voto

AndrewT Points 333

Il suffit d'utiliser le code suggéré dans les commentaires, quelque chose comme ceci

With cell.Borders(xlEdgeTop)
   .LineStyle = xlContinuous
   .ColorIndex = 0
   .TintAndShade = 0
   .Weight = xlThin
End With
With cell.Borders(xlEdgeBottom)
   .LineStyle = xlContinuous
   .ColorIndex = 0
   .TintAndShade = 0
   .Weight = xlThin
End With
With cell.Borders(xlEdgeRight)
   .LineStyle = xlContinuous
   .ColorIndex = 0
   .TintAndShade = 0
   .Weight = xlThin
End With
With cell.Borders(xlEdgeLeft)
   .LineStyle = xlContinuous
   .ColorIndex = 0
   .TintAndShade = 0
   .Weight = xlThin
End With

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X