Effacer une cellule en fonction d'une autre

Bonsoir à tous,

j'ai un code qui marche sous condition

1ere condition :

si l'une des cellules dans la colonne B est rempli = date sur la colonne D automatiquement

exemple B1 = SODFA , Sur D1 = Date d'aujourd'hui

2eme condition :

Si j'efface le contenu de la cellule B1 = le contenu de la cellule D1 s'efface automatiquement

jusque la tout marche très bien

Mais quand je veux effacer plusieurs cellule dans la colonne B en même temps je trouve devant moi une erreur

exemple : quand je veut effacer B1,B2,B3,B4,B5 mémé temps = erreur

comment puise régler ce problème ?

merci d'avance

172classeur1.xlsm (21.94 Ko)

Bonjour,

effectue la macro sur chaque cellule de l'intersection ...

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("B6:B76")) Is Nothing Then Exit Sub

 For Each cel In Intersect(Target, Range("B6:B76"))
    cel.Offset(0, 2).Value = Date
    If cel.Value = "" Then cel.Offset(0, 2).ClearContents
 Next

End Sub

bonjour

salut Steelson

mon avis : ne JAMAIS effacer de données. Car on perd la traçabilité et l'historique

ta méthode est imitée de la feuille de papier avec crayon qu'on efface, comme en 1970.

faire une feuille en colonnes simples

  • date (format jj/mm/aa ou aaaa obligatoire)
  • par
  • pour
  • espèces
  • chèque
  • total

et une colonne "Terminé" où tu saisis X quand la ligne est terminée

tu peux filtrer selon cette dernière colonne pour voir les encours, ou l'historique

tu feras un TCD pour voir les lignes par mois

il n'y a aucune formule, ni aucun VBA

amitiés

Bonjour,

Bonjour Steelson,

Une autre proposition !...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
Const RNG As String = "B6:B76"

    If Not Intersect(Target, Me.Range(RNG)) Is Nothing Then
        Application.EnableEvents = False
        If Target.Count = 1 Then
            Target.Offset(, 2).Value = IIf(IsEmpty(Target), "", Date)
        Else
            For Each Cell In Target
                Cell.Offset(, 2).Value = IIf(IsEmpty(Cell), "", Date)
            Next Cell
        End If
        Application.EnableEvents = True
    End If

End Sub
Rechercher des sujets similaires à "effacer fonction"