Ajouter bordures automatique quand colle une plage dans une autre onglet

Bonjour cher forum,

Je trouve ma demande non orthodoxe, mais bon, je me lance.

À l'aide du mode production, du net et ce de forum, j'ai fait une macro pour arriver à un template. Le code n'est peut-être pas parfait, mais j'obtiens le résultat escompté.

Une des dernières chose à faire est de copier les données de A2:K Dlig et les rapporter dans l'onglet 2019 en A7. J'aimerais au moment de les coller qu'une macro s'active pour ajouter les bordures de la dite plage et en tenant compte aussi des colonnes L:N.

Comme je ne sais pas d'avance combien de ligne j'aurai d'un rapport à l'autre, je ne mets pas d'avance les bordures.

J'imagine qu'une partie de ce code peut aider, mais je ne sais pas comment l'exploiter.

With Range("A&").CurrentRegion 'plage des cellules adjacentes à A7

    'bordure de gauche
    With .Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure du dessus
    With .Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure du dessous
    With .Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure de droite
    With .Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure des interlignes
    With .Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure des inter colonnes
    With .Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With

End With

Comme toujours vous avez toute ma reconnaissance.

A+

Bonjour,

Ok, je crois avoir réussi.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A7")) Is Nothing Then

With Range("A7").CurrentRegion 'plage des cellules adjacentes à A7

    'bordure de gauche
    With .Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure du dessus
    With .Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure du dessous
    With .Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure de droite
    With .Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure des interlignes
    With .Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    'bordure des inter colonnes
    With .Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With

End With

End If

End Sub

Oui, ou :

[A7].CurrentRegion.Borders.Weight = xlThin

Mais si c'est ta macro qui copie-colle, pourquoi utiliser l'événement Change ?

Tu sais bien ce qui est collé, quand et où pour encadrer directement.

eric

Bonjour ériic,

à la place du

With Range("A7").CurrentRegion

?

Merci

Bonjour ériic,

Petite précision, ce n'est pas la macro qui copie et colle, et c'est le seul truc (l'événement change) que j'ai trouvé...

Je suis ouvert à toute amélioration.

Merci et A+

Bonjour,

ben l'amélioration c'est de réduire tes 35 lignes à 1 seule. Je n'arrive pas à mieux, désolé

eric

Bonjour ériiic,

Je n'arrive pas à comprendre ni quoi faire avec ce que vous me proposez avec cette ligne

[A7].CurrentRegion.Borders.Weight = xlThin

.

Merci

Bonjour,

ta macro devient :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A7")) Is Nothing Then [A7].CurrentRegion.Borders.Weight = xlThin
End Sub

à la place de toutes les lignes.

eric

Bonjour ériiic,

Trop génial, merci infiniment.

A+

Rechercher des sujets similaires à "ajouter bordures automatique quand colle plage onglet"