Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

  • Initiateur de la discussion Initiateur de la discussion nougitch
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nougitch

XLDnaute Occasionnel
Bonjour,

J'aimerais que la macro insère une bordure sous chacune des lignes d'une plage de cellules donnée.

J'ai essayé cela :

Code:
    ThisWorkbook.Sheets("Sheet1").Range("A2:G36").Select
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlHairline
        .ColorIndex = 1
    End With

Merci par avance.
 

Pièces jointes

Re : Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

Bonjour

code de l'enregistreur de macro

Sub Macro1()

With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Adapté à ton cas (remplacé Feuil1 par Sheet1 le cas échéant)
Code:
Sub Macro2()
With ThisWorkbook.Sheets("Feuil1").Range("A2:G36").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = 1
End With
 
With ThisWorkbook.Sheets("Feuil1").Range("A2:G36").Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = 1
End With
End Sub
 
Dernière édition:
Re : Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

Bonjour

une autre solution, si j'ai bien compris :

Code:
Sub test()
    With Range("A2:G36").Borders
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Range("A2:G36")
        .Borders(xlInsideVertical).LineStyle = xlNone
        .Borders(xlEdgeLeft).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
    End With
End Sub

bon après midi
@+
 
Re : Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

Re

Une autre méthode trouvée sur le net
Code:
Sub bordures()
'auteur macro originale: Greg Truby
'modifs staple
Dim myBorders() As Variant, item As Variant
myBorders = Array(xlEdgeBottom, xlInsideHorizontal)
For Each item In myBorders
With Selection.Borders(item)
    .LineStyle = xlContinuous
    .Weight = xlHairline
    .ColorIndex = 1
End With
Next item
End Sub
 
Re : Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

Bonjour à tous.

J'ai également un problème de bordure à vous soumettre, donc je vais faire remonter ce fil là, tant qu'à faire.

Mon problème est le suivant: j'ai 3 tableaux l'un au dessus de l'autre sur une feuille excel.

Dans ces tableaux, j'ai plusieurs styles de police (gras/pas gras), plusieurs styles de fond (grisé, pas grisé), et plusieurs types de ligne de démarcation.

Mon but est de générer un 4 eme tableau tout à la fin qui cumule les chiffres des tableaux précédents.
Jusque là, pas de problème, en bidouillant avec des + et des -, j'y arrive.
Là où cela devient plus marrant, c'est que je veux reproduire la même mise en forme que les 3 premiers tableaux pour le 4eme.
Donc:
pour la police: selection.font etc etc
pour l'intérieur: selection.interior.colorindex = TableauPrecedent.cellule.interior.colorindex

En gros, je parcours chaque cellule à la suite l'une de l'autre.
Ma boucle est comme ceci:
Code:
For IndexColonne = ? to ?
  For IndexLigne = ? to ?
    with cells(IndexLigne, IndexColonne)
      .value = ...
      .interior.colorindex = cells(IndexLigne - ?, IndexColonne).interior.colorindex
      .numberformat = cells(IndexLigne - ?, IndexColonne).numberformat
   end with
  Next Indexligne
Next IndexColonne

Je voudrais réappliquer le même principe pour les bordures, mais je n'y arrive pas.

Est-ce que quelqu'un pourrait m'aider svp ?

Merci d'avance,
Thomas
 
Re : Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

Bonjour


edit : Je disais pourtant la même chose que Pierrot93 (bonjour d'ailleurs)

Pourquoi ne pas utiliser les styles?

Tu crées 3 styles (Format/Style), un par tableau

Tu nommes tes 3 tableaux (Insertion/Noms)

et ensuite tu applique le style désiré par macro
Code:
Range("tableau1").Style = "Stab1"
Ou Stab1 est le nom d'un style personnalisé que tu auras créé.
 
Dernière édition:
Re : Appliquer une bordure à chaque ligne d'une plage de cellules sélectionnées

Bonjour Pierrot93, re le fil, le forum.

Merci à tous pour vos réponses. J'ai trouvé une astuce, la nuit portant conseil:

Code:
Private Sub CopierBordure(CelluleCible As Range, CelluleSource As Range)
CelluleCible.Borders(xlDiagonalDown).LineStyle = CelluleSource.Borders(xlDiagonalDown).LineStyle
CelluleCible.Borders(xlDiagonalUp).LineStyle = CelluleSource.Borders(xlDiagonalUp).LineStyle
    With CelluleCible.Borders(xlEdgeLeft)
        .LineStyle = CelluleSource.Borders(xlEdgeLeft).LineStyle
        .Weight = CelluleSource.Borders(xlEdgeLeft).Weight
        .ColorIndex = CelluleSource.Borders(xlEdgeLeft).ColorIndex
    End With
    With CelluleCible.Borders(xlEdgeTop)
        .LineStyle = CelluleSource.Borders(xlEdgeTop).LineStyle
        .Weight = CelluleSource.Borders(xlEdgeTop).Weight
        .ColorIndex = CelluleSource.Borders(xlEdgeTop).ColorIndex
    End With
    With CelluleCible.Borders(xlEdgeBottom)
        .LineStyle = CelluleSource.Borders(xlEdgeBottom).LineStyle
        .Weight = CelluleSource.Borders(xlEdgeBottom).Weight
        .ColorIndex = CelluleSource.Borders(xlEdgeBottom).ColorIndex
    End With
    With CelluleCible.Borders(xlEdgeRight)
        .LineStyle = CelluleSource.Borders(xlEdgeRight).LineStyle
        .Weight = CelluleSource.Borders(xlEdgeRight).Weight
        .ColorIndex = CelluleSource.Borders(xlEdgeRight).ColorIndex
    End With
End Sub

Je vais la tester tout de suite.

Encore merci à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
951
Retour