recherche numéro de ligne (vba) [resolu]

moutchec

XLDnaute Occasionnel
bonjour à tous,
je cherche un code vba pour trouver le numéro de ligne du premier jour de la semaine en cours, soit en fonction de la date en colonne A, soit en fonction du premier numéro de la semaine courante en colonne B.
merci d'avance pour votre aide.
Moutchec.
 

Fichiers joints

Modeste geedee

XLDnaute Barbatruc
Bonsour mapomme, Chris401
bonjour à tous,
je cherche un code vba pour trouver le numéro de ligne du premier jour de la semaine en cours, soit en fonction de la date en colonne A, soit en fonction du premier numéro de la semaine courante en colonne B.
merci d'avance pour votre aide.
Moutchec.
:p en VBA dites-vous ???
VB:
Sub test()
MsgBox "Ligne : " & Evaluate("=MATCH(TODAY()-WEEKDAY(TODAY(),3),A:A,1)") _
& Chr(10) & Format(Evaluate("=TODAY()-WEEKDAY(TODAY(),3)"), "ddd d mmm yyyy"), vbInformation, "Début semaine en cours"

End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @moutchec, à tous,

Comme l'a fait remarqué @Modeste geedee, une solution VBA était recherchée.

Voici une solution en VBA qui devrait fonctionner:
  • si les dates sont dans le désordre
  • si plusieurs années sont présentes avec le même numéro de semaine
  • si la semaine concernée est à cheval sur deux années (contrairement à ma 1ère proposition)
On peut soit n’utiliser que du VBA soit utiliser la fonction PremJourSem(xplage As Range) directement sur une feuille de calcul.
Pour du VBA pur, le code se trouve dans le module de Feuil1 et le code de la fonction PremJourSem dans module1.

Le numéro retourné est le numéro de la première ligne contenant le premier jour de la semaine (dans le cas où plusieurs lignes contiendraient la bonne date)
 

Fichiers joints

Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Le numéro retourné est le numéro de la première ligne contenant le premier jour de la semaine (dans le cas où plusieurs lignes contiendrait la bonne date)
:cool: plus précisément (suprême finesse) :
Le numéro retourné est le numéro de la première ligne contenant la plus petite date appartenant à la semaine en cours
même si cette date n'est pas le Lundi (premier jour de la semaine)
upload_2018-12-11_1-7-36.png
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
bien vu , mapomme !
en effet dans mon exemple :
  • les dates doivent être triées croissantes
  • le numéro de semaine n'a aucune importance
  • la date cherchée doit exister dans la zone de recherche (premier jour=Lundi)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas