Aide Macro

scelera Messages postés 40 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je souhaiterai intégrer dans ma macro une formule qui me permettrait de mettre un trait vertical noir entre chaque colonne en fonction du nombre de cellule.

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Un exemple qui trace un trait vertical à droite de la plage

    Sub TraitVertical()
    Dim lideb As Long, lifin As Long, co As Long, plage As Range
    lideb = 5
    lifin = 8
    co = 3
    Set plage = Range(Cells(lideb, co), Cells(lifin, co))
    With plage.Borders(xlEdgeRight)
      .LineStyle = xlContinuous
      .Weight = xlThin
      .ColorIndex = xlAutomatic
    End With
    End Sub

    Cdlmnt
    0
    1. scelera Messages postés 40 Statut Membre
       
      Je l'ai exécuté cependant je n'ai qu'un trait à droite de la cellule C.
      Il me faudrait un trait à droite sur chaque cellule de A à R.

      Merci beaucoup.
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Essaies comme ceci

    Sub TraitVertical()
    Dim lideb As Long, lifin As Long, codeb, cofin, li As Long, co As Long
    lideb = 5
    lifin = 8
    codeb = 3
    cofin = 6
    For li = lideb To lifin
      For co = codeb To cofin
        With Cells(li, co).Borders(xlEdgeRight)
          .LineStyle = xlContinuous
          .Weight = xlThin
          .ColorIndex = xlAutomatic
        End With
      Next co
    Next li
    End Sub

    Cdlmnt
    0
    1. scelera Messages postés 40 Statut Membre
       
      Ha non ça ne marche toujours pas, désormais j'ai un trait vertical mais que sur la colonne B C et D.
      0
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      la procédure trace un trait vertical à droite de toutes les cellules de la plage qui va de la ligne 5 à la ligne 8 et de la colonne 3 (C) à la colonne 6 (G)
      à toi d'adapter les valeurs de lideb, lifin, codeb, cofin

      Cdlmnt
      0
    3. scelera Messages postés 40 Statut Membre
       
      Ha oui en effet. Merci j'ai rectifié. Mais il n'y a pas un moyen de mettre une valeur pour que la fin du tracage soit automatique ? Par exemple si un jour ma plage va jusqu'à la ligne 10 alors le trait s'arrête à la ligne 10 et si demain ma plage va jusqu'à la ligne 25 alors le trait s'arrête à la ligne 25. Un peu dans ce style là:( la c'est pour définir la zone d'impression automatiquement.)

      Dim lig As Long, col As Integer
      With ActiveSheet
      col = .UsedRange.Columns.Count
      lig = .UsedRange.Rows.Count
      .PageSetup.PrintArea = "$A$1:$" & Chr(col + 64) & "$" & lig
      End With
      0
    4. ccm81 Messages postés 11033 Statut Membre 2 434
       
      lifin = Cells(Rows.Count, codeb).End(xlUp).Row

      donne la dernière ligne non vide de la colonne codeb

      Cdlmnt
      0
    5. scelera Messages postés 40 Statut Membre
       
      Dim lideb As Long, lifin As Long, codeb, cofin, li As Long, co As Long
      lideb = 1
      lifin = Cells(Rows.Count, codeb).End(xlUp).Row
      codeb = (.)
      cofin = 18
      For li = lideb To lifin
      For co = codeb To cofin
      With Cells(li, co).Borders(xlEdgeRight)
      .LineStyle = xlContinuous
      .Weight = xlThin
      .ColorIndex = xlAutomatic
      End With
      Next co
      Next li
      0