XL 2013 (RESOLU) Effacement Automatique de Cellules en Fonction de la Formule de B13

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chaelie2015

XLDnaute Accro
Bonsoir Form

Je souhaite automatiser la suppression du contenu des cellules G13 et L13 lorsque la cellule B13 renvoie un vide. De même, cette règle s'applique aux autres cellules B15, B17, B19, B21, B23, B25, et B27..
ci joint le fichier teste
A+
 

Pièces jointes

Dernière édition:
Solution
Là, c'est plus compliqué car il faut connaitre les valeurs avant et après pour savoir s'il y a eu des modifs.
Un essai en PJ avec :
Dans Thisworkbook pour mémoriser les valeurs à l'ouverture du fichier :
VB:
Private Sub Workbook_Open()
    MémorisePlage
End Sub
Dans Worksheet_Change la vérif des cellules en rajoutant simplement :
Code:
VérifPlage
En macro :
Code:
Public Plage
Sub MémorisePlage()
    Plage = Sheets("Accueil").Range("B13:B40")
End Sub
Sub VérifPlage()
    Application.EnableEvents = False
    Calculate
    For L = 13 To 40 Step 2
        If Cells(L, "B") <> Plage(L - 12, 1) Then
            Cells(L, "G") = "": Cells(L, "L") = ""
            Plage(L - 12, 1) = Cells(L, "B")
        End If
    Next L...
Bonsoir Chaelie,
Un essai en PJ avec cette macro. Je l'ai limité à la ligne 40. A modifier si nécessaire
VB:
'*******************************************************************************************************************
    Application.EnableEvents = False
    For L = 13 To 40 Step 2
        If Cells(L, "B") = "" Then Cells(L, "G") = "": Cells(L, "L") = ""
    Next L
    Application.EnableEvents = True
'*******************************************************************************************************************
 

Pièces jointes

Là, c'est plus compliqué car il faut connaitre les valeurs avant et après pour savoir s'il y a eu des modifs.
Un essai en PJ avec :
Dans Thisworkbook pour mémoriser les valeurs à l'ouverture du fichier :
VB:
Private Sub Workbook_Open()
    MémorisePlage
End Sub
Dans Worksheet_Change la vérif des cellules en rajoutant simplement :
Code:
VérifPlage
En macro :
Code:
Public Plage
Sub MémorisePlage()
    Plage = Sheets("Accueil").Range("B13:B40")
End Sub
Sub VérifPlage()
    Application.EnableEvents = False
    Calculate
    For L = 13 To 40 Step 2
        If Cells(L, "B") <> Plage(L - 12, 1) Then
            Cells(L, "G") = "": Cells(L, "L") = ""
            Plage(L - 12, 1) = Cells(L, "B")
        End If
    Next L
    Application.EnableEvents = True
End Sub
On vérifie si en cellule on a pareil que dans la plage mémorisée, si c'est pas le cas on efface G et L et on remet à jour la plage pour le prochain coup. ( j'ai limité la plage à B13:B40, à adapter )
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour