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.
A voir également:

2 réponses

ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
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
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
ccm81 Messages postés 11033 Statut Membre 2 433
 
lifin = Cells(Rows.Count, codeb).End(xlUp).Row

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

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