re,
ma procédure se place dans le code de la feuille concernée, c'est à dire, dans l'éditeur VBA, cliques 2 fois sur la feuille (à gauche) et sytematiquement, 'éditeur va te proposer un évènement "selection_change", ignore-le et colles mon code qui agira dès que tu modifiera une cellule de B4 à b..., le code découpé :
ci-dessous, l'évènement expliqué ci-dessus
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nb As Integer ' nb = le nombre de lignes max
là ce n'est qu'une déclaration, plus bas je mets la valeur
Dim c As Integer ' c = le n° de la ligne
ci-dessous, le code n'agira que si la cellule est en B et minimum 4eme ligne, target remplace la ligne active
If Target.Column = 2 And Target.Row > 3 Then
evite de répeter activesheet, mais dans ton cas => facultatif mais il faut enlever les "." avant "range" ou "cells"
nb = .Range("B" & .Rows.Count).End(xlUp).Row
nb = dernière cellule renseignée, la formule part du bas et remonte juqu'à trouver une cellule renseignée
le reste tu l'as compris ?
1 2 3 4 5 6 7 8
| For c = 4 To nb ' pour faire les cellules de la 4 au max
If .Cells(c, 2).Value <> "" And .Cells(c, 1).Value = "" Then ' cells(n°cellule, n°colonne) différent de vide
.Cells(c, 1).Value = Date
End If
Next c
End With
End If
End Sub |
Partager