bordures a mettre épaisses

  • Initiateur de la discussion Initiateur de la discussion grisan29
  • 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 !

grisan29

XLDnaute Accro
bonjour a vous

comment puis modifier ce code
Code:
Sub bordure()
Dim L As Long
Dim lig As Integer
 With Sheets("commande")
  L = .Range("A65536").End(xlUp).Row
    If L < 12 Then lig = 12
  'Formatage du tableau
      
     .Cells(12, "A").Borders(xlEdgeLeft).LineStyle = xlContinuous
     .Range(.Cells(12, "I"), .Cells(L, "P")).Borders(xlEdgeLeft).LineStyle = xlContinuous
     .Range(.Cells(12, "I"), .Cells(L, "P")).Borders(xlEdgeLeft).LineStyle = xlContinuous
     .Range(.Cells(12, "A"), .Cells(L, "G")).Borders(xlEdgeTop).LineStyle = xlNone
     .Range(.Cells(12, "I"), .Cells(L, "J")).Borders(xlEdgeTop).LineStyle = xlNone
     .Range(.Cells(12, "A"), .Cells(L, "J")).Borders(xlEdgeBottom).LineStyle = xlContinuous
     .Range(.Cells(12, "I"), .Cells(L, "J")).Borders(xlEdgeBottom).LineStyle = xlContinuous
     .Range(.Cells(12, "D"), .Cells(L, "H")).Borders(xlInsideVertical).LineStyle = xlNone
     .Range(.Cells(12, "C"), .Cells(L, "K")).Borders(xlInsideVertical).LineStyle = xlContinuous
     .Range(.Cells(12, "I"), .Cells(L, "J")).VerticalAlignment = xlCenter
     .Range(.Cells(12, "D"), .Cells(L, "G")).VerticalAlignment = xlCenter
     .Range("A12:J12").Borders(xlEdgeTop).LineStyle = xlContinuous
     End With
 End Sub
afin de créer des bordures épaisses
j'ai essayer de mettre
weight.xlmedium
mais sans succés car il y a bug ce qui veux surement dire que je mis prends mal

Pascal
 
Re : bordures a mettre épaisses

Bonjour Sylvain

Merci de ta réponse mais déjà essayer et j'ai une erreur 1004 "impossible de définir la propriété Weight de la classe borders, d'ailleurs j'ai fait une erreur en mettant
Code:
.Weight .xlMedium
au lieu de
Code:
.Weight = xlMedium
sur le post

pascal
 
Dernière édition:
Re : bordures a mettre épaisses

Bonjour sylvain.piron, grisan29
Je comprend pas la ligne
VB:
If L < 12 Then lig = 12
En dehors de cela, une proposition qui utilise les "sous plages d'une plage" (Areas)

VB:
Sub bordure__2()
Dim L As Long
Dim Plg As Range, C As Range
With Sheets("commande")
    L = .Range("A65536").End(xlUp).Row
    If L < 12 Then L = 12
    Set Plg = Range("$A$12:C" & L & ",$D$12:$D" & L & ",$E$12:$E" & L & ",$F$12:$F" & L & ",$G$12:$G" & L & ",$H$12:$H" & L & ",$I$12:$I" & L & ",$J$12:$J" & L)
End With
For Each C In Plg.Areas
    With C
        .Borders(xlEdgeLeft).Weight = xlMedium
        .Borders(xlEdgeTop).Weight = xlMedium
        .Borders(xlEdgeBottom).Weight = xlMedium
        .Borders(xlEdgeRight).Weight = xlMedium
    End With
Next C
End Sub
Cordialement
 
Re : bordures a mettre épaisses

Re
Pour les amoureux de la boucle 😀
VB:
Sub bordure__3()
Dim L As Long, I As Integer
Dim Plg As Range, C As Range
With Sheets("commande")
    L = .Range("A65536").End(xlUp).Row
    If L < 12 Then L = 12
    Set Plg = Range("$A$12:C" & L & ",$D$12:$D" & L & ",$E$12:$E" & L & _
                ",$F$12:$F" & L & ",$G$12:$G" & L & ",$H$12:$H" & L & _
                ",$I$12:$I" & L & ",$J$12:$J" & L)
End With
For Each C In Plg.Areas
    With C
        For I = 7 To 10
            .Borders(I).Weight = xlMedium
        Next I
    End With
Next C
End Sub
Cordialement
 
Re : bordures a mettre épaisses

bonjour Efgé
merci pour ta solution bouclé qui fonctionne très bien ainsi que bordure_2 mais aucune ne bordure la feuille commande mais la feuil1 ou est posé le bouton
j'ai oublier de te dire que
Code:
 L = .Range("A65536").End(xlUp).Row
    If L < 12 Then lig = 12
est la limite en hauteur de la feuille pour les bordures

Pascal
 
Dernière édition:
Re : bordures a mettre épaisses

Bonjour grisan29, sylvain.piron, Efgé,

Le post #1 complique inutilement les plages, ceci est bien plus simple :

Code:
Sub bordure()
Dim L As Long, i As Byte
With Sheets("commande")
  L = Application.Max(.[A65536].End(xlUp).Row, 12)
  With .Range("A12:J" & L)
    For i = 7 To 10
      .Borders(i).Weight = xlMedium
    Next
    .Offset(, 2).Resize(, 8).Borders(xlInsideVertical).Weight = xlMedium
    Union(.Columns("D:G"), .Columns("I:J")).VerticalAlignment = xlCenter
  End With
  .Range("A" & L + 1 & ":J" & .Rows.Count).Clear 'RAZ sous le tableau
End With
End Sub
A+
 
Re : bordures a mettre épaisses

Re , Bonjour job
Pour ma proposition, il manque ,effectivement, un point :
VB:
Sub bordure__3()
Dim L As Long, I As Integer
Dim Plg As Range, C As Range
With Sheets("commande")
    L = .Range("A65536").End(xlUp).Row
    If L < 12 Then L = 12
    Set Plg = .Range("$A$12:C" & L & ",$D$12:$D" & L & ",$E$12:$E" & L & _
                ",$F$12:$F" & L & ",$G$12:$G" & L & ",$H$12:$H" & L & _
                ",$I$12:$I" & L & ",$J$12:$J" & L)
End With
For Each C In Plg.Areas
    With C
        For I = 7 To 10
            .Borders(I).Weight = xlMedium
        Next I
    End With
Next C
End Sub

Set Plg = .Range

Pour If L < 12 Then lig = 12 , Je voulais juste dire que ça ne correspond à rien.
Si L est inférieur à 12 alors Lig = 12
De plus Lig n'est jamais utilisé......

Cordialement
 
Dernière édition:
- 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
14
Affichages
265
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
589
Réponses
8
Affichages
1 K
Retour