Microsoft 365 Supprimer des lignes selon deux critères

Dem8

XLDnaute Nouveau
Bonjour à tous,

Je reviens vers vous avec mon fichier de stockage d'échantillons que je cherche constamment à améliorer.
Cette fois-ci, l'idée est la suivante :

Physiquement :
Je conserve tous mes échantillons 1 an. A chaque fin de mois, je vide les armoires du mois suivant qui sont donc remplies avec les échantillons de l'année dernière. Par exemple, fin juin, je vais vider les armoires de juillet, qui contiennent les échantillons de juillet 2021, afin de pouvoir ranger les échantillons de juillet 2022.

Informatiquement :
J'aimerais qu'à l'ouverture de mon fichier, si nous sommes à la fin du mois, les lignes contenant les échantillons du mois suivant se suppriment.
La base de données ne contient pas de date, uniquement un numéro de mois dans la colonne E (1 pour janvier jusqu'à 12 pour décembre).

Comment je pensais m'y prendre :
- La colonne E contient donc le numéro de mois
- En J1, j'ai une formule qui me donne le numéro du mois en cours (actuellement, nous sommes en juin, donc 6)
- En J2, la formule me donne le premier jour du mois suivant (actuellement, 01-07-2022)
- En J3, j'ai le nombre de jours restants jusqu'au 1er jour du mois suivant (aujourd'hui, 19)

De manière rédigée, le code serait : si J3 < ou = à 15, alors : si colonne E contient valeur égale à J1+1, alors supprimer les lignes concernées. Sinon rien.

Mais comment dit-on ça en VBA ??? Est-ce que vous auriez des idées ? Est-ce que ma manière de procéder est bonne ?

Dans l'attente de vos retours,

Dem8
 

Pièces jointes

  • Stockage.xlsm
    22.6 KB · Affichages: 4

Phil69970

XLDnaute Barbatruc
Bonjour @Dem8

Je te propose ce fichier

On peux le faire de manière automatique va regarder les commentaire ici :
1655033667951.png


Si la solution te satisfait tu peux la valider.

*Merci de ton retour

@Phil69970
 

Pièces jointes

  • Stockage Suppression V1.xlsm
    21.7 KB · Affichages: 3

Dem8

XLDnaute Nouveau
Merci @Phil69970 , je l'avais fait de mon côté aussi, ce n'est pas la partie du code qui me posait problème.

Je viens de me rendre compte qu'il y a un cas dans lequel le code ne fonctionne pas : quand on est en décembre et qu'il faut supprimer les lignes de janvier. Est-ce que tu aurais une astuce ?
 

Dem8

XLDnaute Nouveau
Bonjour @Phil69970 ,

Je ne voulais pas te déranger davantage hier.
J'avais mal exprimé mon problème par rapport à décembre et janvier, mais c'est bon, la solution m'est venue tout à l'heure. Je la partage ici :


Le code VBA dit : si mois de l’échantillon = mois en cours + 1, alors la ligne se supprime

Exemple 1 : mois de l’échantillon : mars = 3 et nous sommes en février = 2 + 1 = 3. L’égalité est bonne, le code supprime la ligne de l’échantillon

Exemple 2 : mois de l’échantillon : janvier = 1 et nous sommes en décembre = 12 + 1 = 13. L’égalité n’est pas bonne, le code ne supprime pas la ligne

Du coup, pour contourner le problème, plutôt que de mettre dans la cellule J1 =MOIS(AUJOURDHUI()), j’ai mis: =SI(MOIS(AUJOURDHUI())=12;0;MOIS(AUJOURDHUI()))

Comme ça, si je reprends mon
exemple 2 : mois de l’échantillon : janvier = 1 et nous sommes en décembre = 0 + 1 = 1. L’égalité est bonne, le code supprime la ligne

Le sujet est définitivement clos, je te remercie pour ton aide :)
 

Discussions similaires

Réponses
5
Affichages
169
Réponses
1
Affichages
948

Statistiques des forums

Discussions
299 841
Messages
1 979 469
Membres
206 743
dernier inscrit
yaya20