XL 2013 Problème de mise automatique de bordures

Christophe78129

XLDnaute Nouveau
Bonjour,



J’ai un souci avec une macro pour mettre automatiquement des bordures aux cellules de B à F si la cellule B est non vide. J’affiche la feuille « Affectation » par un bouton à partir de la feuille « Accueil ».

Sur la feuille « Affectation », j’ai utilisé le code suivant :

Code:
Private Sub Worksheet_Activate()
Range("B5").Select
End Sub

Option Explicit

Private Sub Worksheet_Change()
Dim Derlig As Long
Derlig = Range("B" & Rows.Count).End(xlUp).Row
Range("B" & Derlig , "F" & Derlig).Borders.Value = 1
End Sub

Je joins le fichier de travail
Si quelqu’un à une solution.

Merci d’avance
 

Pièces jointes

  • Travail 2.xlsm
    83.9 KB · Affichages: 2
Solution
Bonjour,

Il ne me semble que tu aies choisi le bon évènement ...

S'il ne s'agit que de corriger ce code ... et uniquement ce code

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    'Mise de bordures sur dernière ligne
    Dim Derlig As Long
    Derlig = Range("B" & Rows.Count).End(xlUp).Row
    Range("B5:F" & Derlig).Borders.Value = 1
End Sub

James007

XLDnaute Barbatruc
Bonjour,

Il ne me semble que tu aies choisi le bon évènement ...

S'il ne s'agit que de corriger ce code ... et uniquement ce code

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    'Mise de bordures sur dernière ligne
    Dim Derlig As Long
    Derlig = Range("B" & Rows.Count).End(xlUp).Row
    Range("B5:F" & Derlig).Borders.Value = 1
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
il y a un trou dans votre raisonnement
et le retour alors lors de suppression de donnée de la dernière ligne
et le fait d'effacer une ligne entre 2 pleines on doit faire quoi
a analyser ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
        If Not IsEmpty(Target) Then
            Target.Resize(, 5).Borders.Value = 1
        Else
            If IsEmpty(Target.Offset(1)) Then Target.Resize(, 5).Borders.Value = 0
        End If
    End If
End Sub

je dirais aussi que la condition "B" n'est pas suffisante mais bon je ne connais pas le contexte
testez effacer la cellule "B" de la dernière ligne
testez effacer une ligne entre 2 pleine
;)
 

Discussions similaires

Réponses
7
Affichages
312

Statistiques des forums

Discussions
312 104
Messages
2 085 339
Membres
102 865
dernier inscrit
FreyaSalander