Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion maude
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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+
 
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
++
 
Re : PB mémoriser cellules à l'aide d'une boucle VBA

Re,


Je ne comprend pas ce qui ne fonctionne pas ?

les modifs proposées répondent au besoin , après tests sur le classeur joint

Bonne suite
 
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

++
 
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
446
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…