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

XL 2019 Dans mon tableau comment effacer ligne par ligne sauf les entêtes

Nicolaroute

XLDnaute Nouveau
Bonjour à tous et toutes,
Aujourd'hui, voici mon problème: je n'arrive pas à trouver le code VBA pour empêcher mon bouton " Effacer" en cas d'erreur de saisie,
justement d'effacer l'entête de mon tableau D15: J15. Mon Tableau avec les entêtes comprises de "D15 à J33"
Voici mon code :
Dim DernLigne As Long

DernLigne = Range("D33:J33").End(xlUp).Row

'If activecells is in Range("D15" & DernLigne & ":J15" & DernLigne).Select Then Exit Sub ' la c'est pas bon!!!

If MsgBox("Confirmez-vous l'effacement de ce nouveau Tissu ?", vbYesNo, " Ligne Effacée") = vbYes Then

Range("D" & DernLigne & ":J" & DernLigne).Select
Selection.ClearContents
Selection.Borders.Value = 0
With Selection.Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
MsgBox "La Ligne a été effacée !"
End If
Range("D" & DernLigne).Select


Je vous remercie de votre aide.
 
Solution
Bonjour Nicolas,

Je te laisse essayer ce code VBA (non testé) :
VB:
Sub Essai()
  If MsgBox("Confirmez-vous l'effacement de ce nouveau Tissu ?", 4, " Ligne Effacée") <> 6 Then Exit Sub
  Dim DernLigne&: DernLigne = Cells(Rows.Count, 4).End(3).Row
  If DernLigne = 1 Then Exit Sub 'évite d'effacer la ligne d'en-têtes ! (si elle est bien en ligne 1)
  Application.ScreenUpdating = 0
  With Cells(DernLigne, 4).Resize(, 7)
    .ClearContents: .Borders.LineStyle = -4142
    With Selection.Interior
      .PatternColorIndex = -4105: .ThemeColor = 1
      .TintAndShade = 0: .PatternTintAndShade = 0
    End With
  End With
  Cells(DernLigne, 4).Select: Application.ScreenUpdating = -1
  MsgBox "La Ligne a été effacée !"
End Sub
soan

soan

XLDnaute Barbatruc
Inactif
Bonjour Nicolas,

Je te laisse essayer ce code VBA (non testé) :
VB:
Sub Essai()
  If MsgBox("Confirmez-vous l'effacement de ce nouveau Tissu ?", 4, " Ligne Effacée") <> 6 Then Exit Sub
  Dim DernLigne&: DernLigne = Cells(Rows.Count, 4).End(3).Row
  If DernLigne = 1 Then Exit Sub 'évite d'effacer la ligne d'en-têtes ! (si elle est bien en ligne 1)
  Application.ScreenUpdating = 0
  With Cells(DernLigne, 4).Resize(, 7)
    .ClearContents: .Borders.LineStyle = -4142
    With Selection.Interior
      .PatternColorIndex = -4105: .ThemeColor = 1
      .TintAndShade = 0: .PatternTintAndShade = 0
    End With
  End With
  Cells(DernLigne, 4).Select: Application.ScreenUpdating = -1
  MsgBox "La Ligne a été effacée !"
End Sub
soan
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…