PB mémoriser cellules à l'aide d'une boucle VBA (résolu)

maude

XLDnaute Nouveau
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
 
Dernière édition:

maude

XLDnaute Nouveau
Re : PB mémoriser cellules à l'aide d'une boucle VBA

bonjour mutzik

merci pour ta réponse rapide...

mais ça ne fonctionne toujour pas
je met un fichier test en PJ au cas ou
++
 

Pièces jointes

  • fichier test.xlsm
    218.5 KB · Affichages: 35
  • fichier test.xlsm
    218.5 KB · Affichages: 36
  • fichier test.xlsm
    218.5 KB · Affichages: 44

Paf

XLDnaute Barbatruc
Re : PB mémoriser cellules à l'aide d'une boucle VBA

Bonjour à tous

si F6 est différent de B6 et que B6 est vide alors B6 = F6
Code:
If cell <> cell.Offset(0, 4).Value And cell <> "" Then

dans le premier cas il faut Bx vide et dans le deuxième il faut Bx <> "" ????

s'il faut bien que B6 soit vide, modifier And cell <> "" en And cell = ""

et si B6 doit prendre la valeur de F6 il faut conserver cell = cell.Offset(0, 4).Value

A+
 

maude

XLDnaute Nouveau
Re : PB mémoriser cellules à l'aide d'une boucle VBA

Bonjour Paf,

il faut que B6 soit vide pour assurer que seul la première valeur peu etre "mémorisé" (si je ne met pas cette condition, la valeur de B6 prendra la valeur de F6 à chaque chgt de F6)
Du coup, si B6 est différent de F6 et que B6 est vide, alors il n'y a qu'une seule possibilité pour qu'il y est une valeur dans B6, ç'est que ce soit la première qui est été inscrite en F6... j'ai bon ???

du coup, j'ai essayé tes modifs et ça ne fonctionne pas...
merci beaucoup de ton aide
++
 

maude

XLDnaute Nouveau
Re : PB mémoriser cellules à l'aide d'une boucle VBA

ça marche vraiment...merci beaucoup...

juste un détail, comment supprimer la valeur en B si la valeur correspondante en F est supprimée ?

en tout cas merci beaucoup pour votre aide

++
 

Paf

XLDnaute Barbatruc
Re : PB mémoriser cellules à l'aide d'une boucle VBA

Re

a priori

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim cell As Range
 Application.ScreenUpdating = False
 Application.EnableEvents = False  ' désactive le déclenchement évènementiel
 For Each cell In Range("B6:B755")
    If cell <> cell.Offset(0, 4).Value And cell = "" Then
        cell.Value = cell.Offset(0, 4).Value
    End If
    If cell.Offset(0, 4).Value = "" Then
        cell = ""
    End If
 Next
 Application.EnableEvents = True
 Application.ScreenUpdating = True
End Sub

A+
 

maude

XLDnaute Nouveau
Re : PB mémoriser cellules à l'aide d'une boucle VBA

Alors là...je m'incline...
tu as juste fais en 5 min ce que j'ai pas réussi en 2 jours.

ton code fonctionne à merveille.

merci vraiment beaucoup à toi Paf (rigolo comme nom)

ps: il y a un truc à faire pour dire que le sujet est clos (genre "résolu") ?

++ messieurs
 

Discussions similaires

Réponses
1
Affichages
221
Réponses
1
Affichages
282

Statistiques des forums

Discussions
312 756
Messages
2 091 758
Membres
105 062
dernier inscrit
Ret78