Bonjour messieurs dames,
je me lance pour mon premier post. Je me considère comme débutante + passionnée qui cherche à apprendre...
Dans un classeur excel j' ai une colonne (F6:F755) ou je renseigne des dates, ces dates changes avec le temps. J'ai besoin de mémoriser la première date qui a été saisie. J'ai donc fait cela...
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F6").Value <> Range("B6") And Range("B6") = "" Then
Range("B6") = Range("F6").Value
End If
If Range("F7").Value <> Range("B7") And Range("B7") = "" Then
Range("B7") = Range("F7").Value
End If
...
...
End Sub
En gros, si F6 est différent de B6 et que B6 est vide alors B6 = F6 (peu être pas l'idéal mais ça fonctionne). Compte tenu du nombre important de ligne, j'ai voulue essayer de creer une boucle mais en vain...
voila un des codes essayés.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Application.ScreenUpdating = False
For Each cell In Range("B6:B755")
If cell <> cell.Offset(0, 4).Value And cell <> "" Then
cell = cell.Offset(0, 4).Value
End If
Next
End Sub
le but est de mémoriser les valeur de la plage (F6:F755) dans les cellules (B6:B755) mais ça ne fonctionne pas.
le top serait que si une case (F6:F755) à été rempli puis le contenu supprimé, la valeur mémorisé en colonne B soit supprimé également
si quelqu'un est disposé à m'aider (même avec une logique autre)
merci par avance
Maude
je me lance pour mon premier post. Je me considère comme débutante + passionnée qui cherche à apprendre...
Dans un classeur excel j' ai une colonne (F6:F755) ou je renseigne des dates, ces dates changes avec le temps. J'ai besoin de mémoriser la première date qui a été saisie. J'ai donc fait cela...
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F6").Value <> Range("B6") And Range("B6") = "" Then
Range("B6") = Range("F6").Value
End If
If Range("F7").Value <> Range("B7") And Range("B7") = "" Then
Range("B7") = Range("F7").Value
End If
...
...
End Sub
En gros, si F6 est différent de B6 et que B6 est vide alors B6 = F6 (peu être pas l'idéal mais ça fonctionne). Compte tenu du nombre important de ligne, j'ai voulue essayer de creer une boucle mais en vain...
voila un des codes essayés.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Application.ScreenUpdating = False
For Each cell In Range("B6:B755")
If cell <> cell.Offset(0, 4).Value And cell <> "" Then
cell = cell.Offset(0, 4).Value
End If
Next
End Sub
le but est de mémoriser les valeur de la plage (F6:F755) dans les cellules (B6:B755) mais ça ne fonctionne pas.
le top serait que si une case (F6:F755) à été rempli puis le contenu supprimé, la valeur mémorisé en colonne B soit supprimé également
si quelqu'un est disposé à m'aider (même avec une logique autre)
merci par avance
Maude
Dernière édition: