Dim tableau et bordures

Bonjour à tous,

J'essaie de mettre en forme un tableau pour accélérer le traitement de quelques centaines de lignes,(onglet 'cascade'), avec 7 colonnes, et donc 6 en partant de 0.

Après avoir suivi le cours du site, çà bug ici:

sans titre

Aprés j'ai un souci avec les bordures qui ne se modifient pas quand je change de mois :

           'bordure bas fin de semaine
            For g = 3 To nbreJrs + 3
            If Weekday(Range("A" & g)) = 1 Then 'Si dimanche
            Range(Cells(g, 1), Cells(g, dercol)).Select
            'continu
            With Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
            'autres jours semaine
            ElseIf Weekday(Range("A" & g)) <> 1 Then
            'bas en pointillé
            Range(Cells(g, 1), Cells(g, dercol)).Select
            With Selection.Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
            With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlHairline
            End With
            End If
            Next g

merci pour vos lumiéres expertes

a+

fronck

Bonjour,

Loin d'être expert dans ce domaine...

ReDim tab_bd(derligCascade - 1, 6) > c'est 6, car il y a 7 colonnes.

For i = 0 To UBound(tab_bd) > la dernière ligne et non la dernière ligne de la dernière colonne.

ric

Bonjour,

Pour les bordures > en décembre, le code tombe en erreur, car dercol = 0

J'ai ajouté if dercol = 0 then dercol = 1 > ce sera à voir si ça convient.

            'jours fériés
            For g = 3 To nbreJrs + 3
                For h = 1 To 11     '11 jours fériés
                If Range("A" & g) = Sheets("data").Range("H" & h) Then
                Range(Cells(g, 2), Cells(g, dercol + 2)) = ""
                End If
                Next h
            Next g

           'bordure bas fin de semaine
            For g = 3 To nbreJrs + 3
            If Weekday(Range("A" & g)) = 1 Then 'Si dimanche
            Range(Cells(g, 1), Cells(g, dercol + 2)).Select
            'continu
            With Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
            'autres jours semaine
            ElseIf Weekday(Range("A" & g)) <> 1 Then
            'bas en pointillé
            If dercol = 0 Then dercol = 1    ' < ICI ......
            Range(Cells(g, 1), Cells(g, dercol)).Select

ric

Bonjour Ric,

j'ai résolu le probléme des mois sans données en mettant dercol à 1 au début.

C'est bon aussi pour le dimensionnement tableau en réécoutant la vidéo 20 du calendrier de Sébastien.

Pour les bordures gauches ou droites, y'a pas moyen

a+

fronck

Bonjour,

Un essai ... à placer juste avant le End Sub de la macro Sub generer_mois().

' bordures verticales
            Dim LV As Integer   ' lignes verticales
            For LV = 2 To dercol
            Range(Cells(3, LV), Cells(33, LV)).Select

            With Selection.Borders(xlEdgeRight)
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                End With
            Next LV
            Range("B3").Select ' << choisir la destination pour désélectionner la dernière colonne

ric

çà marche d'enfer

Rechercher des sujets similaires à "dim tableau bordures"