[ RESOLU ] Détecter des jours dans des cellules sous format date "jjj"

Garth69

XLDnaute Occasionnel
Bonsoir all !
Comme chaque soir ... Ma p'tite question !

Je dois effectuer une détection du contenu de cellules ( Au dessus de ma plage sélectionnée ... ) avec le code ci dessous :
Code:
If Selection.Cells(Selection.Columns.Count).Offset(-2, 0) = "ven" Then
Mon code devrait donc me renvoyer vers un formulaire adhoc, s'il détectait "ven" ( vendredi ... )

Hors le problème est que les cellules sur lesquelles je lance ma détection sont des dates en jjj ( Affichées en lun, mar, mer etc ... ), mon code ne détecte pas les jours sous cette forme, mais en dates jj/mm/aa :p .
Du coup ma détection ne marche pô :( ...

Une solution ?
 
Dernière édition:

Garth69

XLDnaute Occasionnel
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

K ... J'essaie de préparer un fichier ( Celui sur lequel je travaille est trop volumineux ... ) .



Voili ... Voilou ...
 

Pièces jointes

  • Exemple.xlsm
    15.3 KB · Affichages: 88
  • Exemple.xlsm
    15.3 KB · Affichages: 83
  • Exemple.xlsm
    15.3 KB · Affichages: 89
Dernière édition:

Garth69

XLDnaute Occasionnel
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Dans mon fichier exemple je n'ai mis qu'une seule condition pour "ven" ...
Mais au final, il y'en aura 4 ( pour selon le jour détecté, choisir différents formulaires ... ), car mon projet porte sur un calendrier qui coure sur toute l'année ...
 

Garth69

XLDnaute Occasionnel
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Je dois être vraiment nul, ou cela ne répond pas à mon besoin ...
Car quelle que soit la modif du "paramètre" que j'apporte à ta formule, cela ne fonctionne pas !

Peut être n'as tu pas vu, mais j'ai glissé un fichier exemple en 3eme post ;) ...
 

Staple1600

XLDnaute Barbatruc
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Bonsoir à tous

Garth69
Essaies la macro ci-dessous et dis-moi si tu y vois un intérêt pour la suite de ta question ?
Code:
Sub a()
Dim p As Range, m$, s$, Leon_Reviens!
s = "Cellule active: " & vbCrLf: Set p = [N4]: p.Select
m = _
    IIf(Weekday(p, vbMonday) = 5, _
    "Le vendredi c'est raviolis!", _
    "La cellule seléctionnée n'est pas un vendredi")
MsgBox s & p.Address & vbCrLf & m, vbInformation, "Hommage à Léon"
Set p = [IV65536]
p.Select
m = _
    IIf(Weekday(p, vbMonday) = 5, _
    "Le vendredi c'est raviolis!", _
    "La cellule seléctionnée n'est pas un vendredi")
MsgBox s & p.Address & vbCrLf & m, vbInformation, "Hommage à Léon bis"
Leon_Reviens! = MsgBox("Une fois qu'on sait si la cellule est un vendredi, on réchauffe les raviolis ?", vbYesNoCancel)
[N4].Select
End Sub
EDITION: Bonsoir Jean-Marcel, désolé pour la collision ;)
 
Dernière édition:

Garth69

XLDnaute Occasionnel
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Ok ... Jean Marcel c'est exactement cela ... Merci beaucoup !
Et cela marche pour n'importe quel jour de la semaine, en modifiant "lenombre" ( Pour reprendre la formule de Victor21 :D ) ... Je viens d'essayer !

Mais je ne comprends toujours pas à quoi correspond "leparamètre" :p , en l'occurence "2" ...


@Staple1600 ... Je jetterai aussi un oeil a ton code ( beaucoup plus chargé ), pour essayer de bien cerner les différentes options offertes par weekday .
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Re

Garth69
La touche F1 est ton amie pour la vie (comme les 4Zamis l'étaient ;) zaussi)

Ci dessous extrait de l'aide de VBA
Weekday, fonction


Renvoie une valeur de type Variant (Integer) contenant un nombre entier qui représente le jour de la semaine.
Syntaxe
Weekday(date, [firstdayofweek])
La syntaxe de la fonction Weekday comprend les arguments nommés suivants :
Élément Description date Variant, expression numérique, expression de chaîne, ou toute combinaison qui peut représenter une date. Si l'argument date contient une variable de type Null, Null est renvoyé. Firstdayofweek Facultatif. Constante jour de la semaine. Si aucune valeur n'est précisée, vbSunday est la valeur par défaut.
Valeurs
L'argument firstdayofweek peut prendre les valeurs suivantes :
Constante Valeur Description
vbUseSystem
0 Utilise les paramètres de l'API NLS.
vbSunday 1 Dimanche (valeur par défaut)
vbMonday 2 Lundi
vbTuesday
3 Mardi
vbWednesday
4 Mercredi
vbThursday 5 Jeudi
vbFriday
6 Vendredi
vbSaturday 7 Samedi

PS: Ma macro précédente est à usage humoristique mais tout de même illustrative.
 
Dernière édition:

Garth69

XLDnaute Occasionnel
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Merci de cet éclairage ...

Don, si j'ai bien tout compris :
Code:
weekday(Selection.Cells(Selection.Columns.Count).O ffset(-2, 0),leparamètre)=lenombre then

leparamètre = firstdayofweek = Le choix du jour du début de semaine
Pas indispensable donc, si je choisis de conserver le jour de début de semaine par défaut , qui serait Dimanche ...


J'pas encore bien pris l'coup pour F1 ( et quand j'y pense, ca reste souvent incompréhensible pour mon niveau de pratique ... )
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Détecter des jours( lun, mar, me, jeu ... ) dans des cellules sous format date "

Re


C'est toi qui choises, Garth69 quand ta semaine commence.

Mais dans ma demeure, la semaine commence le lundi.
Le dimanche c'est la semaine dernière.

PS: Si ta pièce jointe était plus étoffée , on comprendrait mieux ce que tu cherches à faire, non ?
Ou est le formulaire dont tu parlais précédemment ?

[humour affligeant]
PS: Ma demeure demeure en France, et dans mon pays , Monsieur, la semaine n'a jamais commencé le dimanche, même en Sarkozie.
[/humour affligeant]

EDITION: Bonsoir Victor21, tu es bien d'accord, chez nous, la semaine commence le lundi.
 
Dernière édition:

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11