Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
332
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…