Suppression plage de cellule sous conditions de date

Bonjour

Cela fait 5 ans que je n'ai pas utilisé VBA et j'avoue avoir perdu tous mes reflexes.

C'est pourquoi je vous sollicite.

voilà mon problème :

Je dois effacer une plage de données, sans effacer les formules et les mises en formes conditionnelles et liste déroulantes.

Une fois la date du jour dépassé la plage de cellule doit être effacées.

j'ai fait ce code mais il supprime toute la ligne.

Sub Suppression_Lignes_superieur_Date() For i = 12 To 2 Step -1 ‘de la ligne 2 à la ligne 12’ If Cells(i, 11) <> "" And Cells(i, 4) > Cells(2 ;12) Then Rows(i).EntireRow.Delete Next End Sub

j'ai mis un exemple dans le fichier

merci beaucoup pour l'importance que vous accorderez à ma requête.

bien à vous.

41test.xlsx (9.14 Ko)

bonjour

fais simple : n'efface jamais de lignes !

plus jamais, dans ce fichier comme dans TOUS les autres que tu fais et feras.

masque les lignes si besoin

toute gestion de données fonctionne comme cela.

pas de VBA, pas de complications. ça fonctionnera durant des dizaines d'années. Le fichier sera long, mais c'est normal et sans importance.

Bonjour

Je pense que tu devrais regarder le fichier que tu as envoyé et en joindre un légérement plus complet

Cordialement.

Ceci étant, normal que tu supprimes les lignes avec

EntireRow.Delete

Cordialement

Bonjour,

Merci pour vos réponses.

En effet, il ne s'agit pas du bon fichier.

Voici en pièce jointe le fichier suivant avec les explications et un exemple de ce que j'aimerais.

Merci d'avance

Cordialement

63test.xlsx (12.65 Ko)

Bonjour,

Il y a ambiguïté ! Tu parles de supprimer, dans ce cas la ligne disparaît, elle n'existe plus ! Tu ne peux donc vouloir simultanément qu'elle demeure, avec ses formules...

Si tu veux conserver la ligne et qu'elle n'affiche plus rien de C à I, d'abord, tu ne touches pas aux formules : en D et E elles n'afficheront rien si C est vide, en F tu mets la formule sous condition comme pour D et E et elle se comportera pareillement.

Pour conserver la ligne, tu ne supprimes pas, tu effaces, et tu n'effaces que la colonne C ainsi que les 3 colonnes G à I, et ta ligne n'affichera plus rien de C à I.

Pour une réalisation automatique de l'opération, tu dois faire appel à un code VBA s'exécutant à l'ouverture du fichier pour vérifier les dates en colonne D et effacer les cellules indiquées de la ligne lorsque la date est dépassée par la date du jour...

Private Sub Workbook_Open()
    Dim hui As Date, dln%, i%
    hui = Date
    With Worksheets("Feuil1")
        dln = .Range("D" & .Rows.Count).End(xlUp).Row
        Application.ScreenUpdating = False
        For i = 3 To dln
            If .Cells(i, 4) <> "" And hui > .Cells(i, 4) Then
                .Cells(i, 3).ClearContents
                .Cells(i, 7).Resize(, 3).ClearContents
            End If
        Next i
    End With
End Sub

Procédure à placer dans le module ThisWorkbook.

Cordialement.

Bonjour Mferrand,

C'est parfait! c'est exactement ce qu'il fallait.

Merci à vous .

bonne journée

Tant mieux !

Et bonne continuation...

Rechercher des sujets similaires à "suppression plage conditions date"