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

[VBA] Effacer contenu de cellules selon condition

  • Initiateur de la discussion Initiateur de la discussion DoublePoney
  • 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 !

D

DoublePoney

Guest
Bonjour à toutes et à tous,

Je suis tout nouveau sur ce forum et j'aurais besoin de vos lumières pour m'aider à résoudre un problème concernant une macro Excel que je n'arrive pas du tout à faire.

Le problème est le suivant :

J'ai un fichier contenant 5 colonnes avec dans les trois colonnes B, C et D des dates. En ce qui concerne les lignes, ce n'est pas fixe, chaque jour s'ajouteront d'autres lignes.
Je voudrais que le contenu des cellules dont les dates sont supérieures à 15 jours (à partir de la date courante) soit effacé.

Exemple, aujourd'hui nous sommes le 25 Avril, toutes les cellules contenant des dates antérieures au 10 Avril doivent être effacées.

Est-ce possible ?

Je vous remercie par avance.

Cordialement
 

Pièces jointes

Re : [VBA] Effacer contenu de cellules selon condition

Bonjour DoublePoney et bienvenu sur le forum

Une proposition avec ce que j'ai compris:
VB:
Sub test()
Dim i&, j&
With Sheets("Feuil1")
    For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
        For j = 2 To 4
            If CDate(.Cells(i, j).Value) < Date - 15 Then .Cells(i, j).ClearContents
        Next j
    Next i
End With
End Sub

Cordialement
 
Re : [VBA] Effacer contenu de cellules selon condition

Re-Bonjour 🙂

Tu as bien compris le problème, c'est exactement ce qu'il me fallait, merci à toi !

Je passe en résolu si je trouve le bouton ^^

Encore merci, bonne fin de journée 😉
 
Re : [VBA] Effacer contenu de cellules selon condition

Re
Puisque tu sembles avoir aimé 😀
La même en beaucoup plus rapide sur un grand nombre de lignes:
VB:
Sub test_2()
Dim i&, j&, T As Variant, Plg As Range

With Sheets("Feuil1")
    Set Plg = .Range(.Cells(2, 2), .Cells(.Rows.Count, 1).End(3)(1, 3))
End With

T = Plg
For i = LBound(T, 1) To UBound(T, 1)
    For j = LBound(T, 2) To UBound(T, 2)
        If CDate(T(i, j)) < Date - 15 Then T(i, j) = ""
    Next j
Next i
Plg = T

End Sub

Cordialement
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
255
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…