Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Recherche formule pour planning journalier

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 !

sofysofe

XLDnaute Junior
Bonjour,

Vous comprendrez mieux en regardant le fichier joint.
J'aimerai, en Feuille 2, avoir une formule permettant de placer un x dans les cellules correspondant aux tranches horaires saisies en Feuille 1, par ra rapport à la ligne de titre B1:AY1.
Le résultat que j'aimerai atteindre se trouve en Feuille 2 afin d'éclaircir ma demande !
D'avance merci !
 

Pièces jointes

Bonsoir sofysofe, le forum,

Voici une solution VBA avec ces 2 macros dans Feuille 2 :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim source As Range, jour As Variant, col%, tablo, ncol%, i&, c As Range, j%, deb1, fin1, deb2, fin2, h
If Target.Address <> "$A$1" Then Exit Sub
Set source = Sheets("Feuille 1").[A3:T30]
jour = Application.Match([A1], Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"), 0)
If IsNumeric(jour) Then col = 2 + 3 * (jour - 1)
Application.ScreenUpdating = False
With [A1].CurrentRegion
    .Offset(1, 1).ClearContents 'RAZ
    If col = 0 Then Exit Sub 'si A1 est vide
    tablo = .Value
    ncol = .Columns.Count
    For i = 2 To .Rows.Count
        Set c = source.Columns(1).Find(.Cells(i, 1), , xlValues, xlWhole)
        If Not c Is Nothing Then
            deb1 = Round(c(1, col), 5): fin1 = Round(c(2, col), 5)
            deb2 = 0: fin2 = 0
            If Weekday(source(1, col), 2) < 7 Then deb2 = Round(c(1, col + 1), 5): fin2 = Round(c(2, col + 1), 5)
            For j = 2 To ncol
                h = Round(tablo(1, j), 5)
                If h >= deb1 And h <= fin1 Or h >= deb2 And h <= fin2 Then tablo(i, j) = "X"
            Next j
        End If
    Next i
    .Value = tablo 'restitution
End With
End Sub
Elles se déclenchent quand on modifie la cellule A1 ou qu'on active la feuille.

Vous pouvez tester le dimanche, j'ai mis des valeurs en Feuille 1.

Notez que j'arrondis les heures à la 5ème décimale, c'est nécessaire pour les comparaison d'heures à la minute près.

A+
 

Pièces jointes

Bonjour à toutes et tous,

@sofysofe : J'ai fait une formule (en attente de tes réponses) faisant le job mais j'ai un doute sur le résultat attendu.

Si Début 11:00 et Fin 11:15, d'après ton exemple, on a 2 X (un en dessous de 11 et un en dessous de 11:15), c'est bien ça ?
(et avec Début 11:00 et Fin 11:00 on a un X)

De plus, il faut avoir la date correspondante à l'affichage (je l'ai mis en A13)
 
Bonjour le forum,

Voici une solution par formules.

Il y a 8 noms définis jour col lig h xdeb1 xfin1 xdeb2 xfin2.

Formule en B2 à propager sur B2:AY10 :
Code:
=SIERREUR(REPT("X";OU(ET(h>=xdeb1;h<=xfin1);ET(h>=xdeb2;h<=xfin2)));"")
Avec la MFC sur cette même plage.

A+
 

Pièces jointes

Une remarque sur les heures.

Que ce soit en VBA ou par formule les fichiers que j'ai joints fonctionnent même si on n'arrondit pas les heures.

Mais il vaut mieux conserver les arrondis : un petit malin peut par exemple entrer en 'Feuille 2'!X1 la valeur 13:00:00,1

Sans les arrondis X2 ne se colore plus et X1 affiche seulement 13:00:00 donc impossible de voir la modification.
 
Bonjour à tous,
Voici encore une autre proposition à l'aide d'un tableau annexe (que l'on peut masquer) et qui calcule l'horaire de la journée désignée en D1.
Après il suffit de faire les comparaisons pour obtenir la pose des X.
Il a fallut utiliser la fonction TRONQUE pour arrondir à 7 décimales les minutes car il y avait des cas limite ou plus de décimales posait des problèmes à Excel.
Bonne continuation
Chris
 

Pièces jointes

- 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
5
Affichages
671
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…