XL 2019 numérotation automatique avec 2 conditions

pat66

XLDnaute Impliqué
Bonjour Le forum,

je souhaiterai pouvoir afficher dans une cellule, un numéro défini qui tient compte de 2 conditions (mois en cours et vérification de la cellule de droite si vide

Je joints un exemple pour être bien compris

Merci d'avance

Pat66
 

Pièces jointes

  • Classeur2.xlsm
    37.6 KB · Affichages: 21

pat66

XLDnaute Impliqué
re,
rectification

j'ai activé Sheets("recherche").Range("C4") = "", cela écrit bien dans la cellule C4, mais nous sommes en mars et il écrit comme si on était en avril, apparemment il ne tient pas compte que nous sommes en mars, vous avez une idée ? merci
 

pat66

XLDnaute Impliqué
ok, j'ai testé et complété le dossier 201403, mais C4 reste vide alors qu'il devrait afficher le numéro 210404 et même et j'ai aussi testé en vidant les 210402 et 210403, C4 reste sur 210403 alors qu'il doit afficher 210402

merci
 
Dernière édition:

juvaxe

XLDnaute Occasionnel
J'ai fait un nouvel essai, j'obtiens le résultat "escompté".

-> Nous sommes au mois d'avril, c'est donc la cellule D13 de la feuille Avril qui est prise en référence

Lorsque je mets "toto" dans cette cellule la cellule C4 de la feuille "recherche" est à blanc à l'ouverture du classeur; lorsque j'efface le contenu de cette cellule D13 par touche "suppr", la cellule C4 contient le contenu de la cellule C13 à la prochaine ouverture du classeur soit 210403.

Le problème n'est-il pas que la surveillance de la cellule cible n'est faite qu'à l'ouverture du classeur non pas de se faire en temps réel (live) dès qu'une modification est faite ?

Cdt
 

pat66

XLDnaute Impliqué
non je suis désolé cela ne correspond pas à ce dont j'ai besoin

oui votre macro s’exécute avec open mais on peut toujours la modifier avec "worbook change"

j'ai essayé en vidant les cellules D9 et D13 de la feuille "avril" et après ouverture du classeur C4 indique toujours 210403 alors que C4 devrait indiquer 210402
 
Dernière édition:

juvaxe

XLDnaute Occasionnel
Je n'avais pas complètement compris ...

Chaque mois, il faut donc reprendre le contrôle à partir de la première cellule, c'est à dire D5, D9, D13 et ainsi de suite jusqu'à la fin de l'année. J'avais compris que seule la nouvelle cellule correspondant au nouveau mois était concernée ...

Mais, dans la mesure où il y a plusieurs cellules qui peuvent donner lieu à anomalie, quel numéro de dossier faut-il faire ressortir en C4 de "recherche" ?
 

juvaxe

XLDnaute Occasionnel
Je complète ma réponse; oui effectivement on peut activer la macro lorsqu'il y aura une modification dans une feuille. Il faudra bien préciser ce que tu veux.

Est-ce un classeur sur lequel il y aura beaucoup d'activité ?
 

juvaxe

XLDnaute Occasionnel
Bonsoir

Je suis encore à étudier le classeur...

J'ai des difficultés en en faire ressortir une logique; l'idéal serait de construire une logique qui parte du mois de Janvier pour pouvoir dérouler les mois à partir du début de l'année.

Si on regarde le tableau, il y a 4 lignes d'écart entre deux dossiers. En remontant , il apparaît que Janvier et Février démarrent tous les deux à la cellule D5 alors qu'ensuite on change de dossier; logiquement Janvier devrait démarrer à la cellule D1

N'y a-t-il pas lieu, avant d'essayer de coder quelque chose de normaliser le tableau.

J'ai relu avec attention les règles à retenir. J'avoue clairement que je ne comprend pas la logique, normal car je ne sais pas ce dont il s'agit, cependant j'espère pouvoir réaliser quelque chose qui réponde à ton besoin.

Que se passera-t-il le 1er janvier 2022 ?

Bonne réception
 

pat66

XLDnaute Impliqué
bonjour le forum
bonjour juvaxe

désolé j'ai eu un problème avec mon pc, alors oui il y aura pas mal d'activités
il y a effectivement 4 lignes d'écart entre 2 numéros de dossier et c'est pour çà que j'ai aussi des difficultés à trouver la solution

La macro doit tenir compte de 2 conditions pour écrire dans C4 de la feuille "recherche"
1- elle doit sélectionner l'onglet du mois en cours
2- dans l'onglet du mois en cours, elle cherche la première cellule vide D5 ou D9 ou D13 etc.. et dès qu'elle la trouve, écrit dans C4, le numéro à gauche correspondant C5 ou C9 ou C13, etc....

exemple :
nous sommes en avril:
1- la macro cherche la feuille avril
2- sur la feuille avril, elle cherche la première cellule vide à partir de D5, D9, D13, D7, D21 etc, et cela sur toute la colonne D
3 - la macro affiche dans C4 de la feuille "recherche", le numéro de dossier qui est dans C5 ou C9 ou C13, etc....qui correspond à la première cellule vide de la colonne D5, D9, D13, D7, D21

et si c'est trop compliqué, il faudra envisager une autre solution, mais j'ai besoin de ces 4 lignes

en tout cas, un grand merci pour ton aide

Pat66
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour pat66, juvaxe, le forum,

Voyez le fichier joint et ces 2 macros dans le code de la feuille "recherche" :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
With Sheets(CStr([C2])).UsedRange
    .Columns(3).Name = "P" 'plage nommée
    .Columns(4).Name = "Q" 'plage nommée
    [C4] = .Cells(Application.Match(1, [(P<>"")*(Q="")], 0), 3)
End With
If Err Then [C4] = "" 'RAZ
Application.EnableEvents = True 'réactive les évènements
End Sub
Entrez le mois en C2, le résultat s'affiche en C4.

Les macros se déclenchent quand on active la feuille ou qu'on modifie une cellule quelconque.

A+
 

Pièces jointes

  • Classeur2(1).xlsm
    47.3 KB · Affichages: 7

Discussions similaires

Réponses
13
Affichages
633

Statistiques des forums

Discussions
315 111
Messages
2 116 340
Membres
112 721
dernier inscrit
Ulricn