Microsoft 365 Supprimer des lignes selon deux critères

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

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

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 ?
 
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 🙂
 
- 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

Réponses
35
Affichages
420
Réponses
12
Affichages
432
Retour