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

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

  • Charlie - Masquer effacer V0 .xlsm
    21.6 KB · Affichages: 2
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...

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Charlie - Masquer effacer V0 .xlsm
    22.1 KB · Affichages: 1

chaelie2015

XLDnaute Accro
Bonsoir sylvanu

C'est parfait, merci pour la réponse sylvanu.

Après des simulations, je souhaite effacer le contenu des cellules (G et L) en cas de modification des cellules B.
A+
 

Pièces jointes

  • Charlie - Masquer effacer V1 sylvanu .xlsm
    21.4 KB · Affichages: 0

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Charlie - Masquer effacer V1 .xlsm
    24.1 KB · Affichages: 1

Discussions similaires

Réponses
26
Affichages
1 K

Statistiques des forums

Discussions
312 207
Messages
2 086 248
Membres
103 164
dernier inscrit
axelheili2