Bonjour,
débutant en programmation excel VBA, j'ai créé un tableau excel sut toute l'année, ça veut dire avec 52 semaines, et maintenant sur chaque cellule de semaine, je souhaite mettre des lignes en pointillé pour, ainsi lorsque l'on modifie le tableau il suffira de lancer la macro pour remettre toutes les lignes entourant les cellules correctement. J'ai fait ce travail pour toutes les lignes mais je dois le faire pour toutes les colonnes, comme certaines cellules sont fusionnée je n'ai pas besoin de le faire pour 365 colonnes( 1 colonne par jour) et je le fais toutes les 2 colonnes. j'ai déjà mis les formules pour janvier mais c'est chronophage, c'est pourquoi je me demande s'il n'existe pas un moyen pour que ça se fasse automatiquement au sein d'un cadre limité, que je ne doive pas chaque fois introduire les limites des champs pour chaque semaine.

Ci-dessous un exemple de la macro pour les lignes et un autre pour les colonnes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub lignedessous() ' lignedessusdessous Macro
    Range("M4:Abn4").Select 'ligne    
        With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With    
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlDash
        .ColorIndex = 1
        .Weight = 1
    End With    
    Range("M6:Abn6").Select 'ligne
            With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlDash
        .ColorIndex = 1
        .Weight = 1
    End With
et ainsi de suite... pour les lignes horizontales , j'en ai 52 déjà

ci-dessous la même formule pour les lignes verticales qui sont bien plus nombreuses

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'bordure verrticales
 
        Range("o6:o53").Select 'bordure de colonne
        With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlDash
        .ColorIndex = 1
        .Weight = 1
End With
Range("p6:p53").Select 'bordure de colonne
        With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlDash
        .ColorIndex = 1
        .Weight = 1
End With

Merci d'avance pour vos conseils.