XL pour MAC Remplissage créneaux planning à partir d'une liste de dates et horaires

chasacorder

XLDnaute Nouveau
Bonjour à tous,

Je suis une petite nouvelle et sur ce forum ainsi que sur excel ! Ravie de vous rencontrer !

Je cherche à réaliser un planning type calendrier à envoyer à mes enseignants.
Pour de la visibilité pour eux et de la praticité pour moi, j'aimerais que les cases se remplissent automatiquement avec le nom des groupes à partir d'une liste de dates et d'horaires de leurs interventions.

Pouvez-vous m'aider ?

Merci d'avance,
Bien à vous !
Cha
 

Pièces jointes

  • Calendrier Scolaire Anglais 2022-2023.xlsx
    81.4 KB · Affichages: 16

fanfan38

XLDnaute Barbatruc
la macro avec les explications
VB:
Sub affiche()
'déclaration des variables
  Dim i As Long, lig As Long, col As Integer, sh As Worksheet
  'supprime l'affichage ecran (plus rapide)
  Application.ScreenUpdating = False
  Set sh = Sheets("Planning")'affectation de la feuille planning à la variable sh
  'effacement des données de la feuille planning
  sh.Range("C4:F34").ClearContents: sh.Range("I4:L34").ClearContents: sh.Range("O4:R34").ClearContents
  sh.Range("U4:X34").ClearContents: sh.Range("AA4:AD34").ClearContents: sh.Range("AG4:AJ34").ClearContents
  sh.Range("C38:F68").ClearContents: sh.Range("I38:L68").ClearContents: sh.Range("O38:R68").ClearContents
  sh.Range("U38:X68").ClearContents: sh.Range("AA38:AD68").ClearContents: sh.Range("AG38:AJ68").ClearContents
  With Sheets("Evenements") 'avec la feuille evenement (on met un point devant les range et les cells de cette feuille)
   For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne
    Select Case Month(.Range("A" & i).Value) 'selection des mois des dates
      Case Is = 9 'si mois=9 (septembre)
        col = 3: lig = 3 + Day(.Range("A" & i).Value)
        'la colonne est egale à 3 et la ligne=3+ le jour de la date
      Case Is = 10
        col = 9: lig = 3 + Day(.Range("A" & i).Value)
      Case Is = 11
        col = 15: lig = 3 + Day(.Range("A" & i).Value)
      Case Is = 12
        col = 21: lig = 3 + Day(.Range("A" & i).Value)
      Case Is = 1
        col = 27: lig = 3 + Day(.Range("A" & i).Value)
      Case Is = 2
        col = 33: lig = 3 + Day(.Range("A" & i).Value)
      Case Is = 3
        col = 3: lig = 37 + Day(.Range("A" & i).Value)
      Case Is = 4
        col = 9: lig = 37 + Day(.Range("A" & i).Value)
      Case Is = 5
        col = 15: lig = 37 + Day(.Range("A" & i).Value)
      Case Is = 6
        col = 21: lig = 37 + Day(.Range("A" & i).Value)
      Case Is = 7
        col = 27: lig = 37 + Day(.Range("A" & i).Value)
      Case Is = 7
        col = 33: lig = 37 + Day(.Range("A" & i).Value)
    End Select
    Select Case .Range("B" & i).Value 'en fonction de l'heure de debut
      Case Is = "10:45"'la colonne est décalée
        col = col + 1
      Case Is = "13:30"
        col = col + 2
      Case Is = "15:15"
        col = col + 3
    End Select
    'la classe correspondante est mise dans la cellule correspondant à la ligne et à la colonne
    sh.Cells(lig, col).Value = .Range("D" & i).Value
   Next 'suite de la boucle (for next)
  End With 'fin de l'utilisation de la feuille evenement
  Application.ScreenUpdating = True 'relance de l(affichage)
  MsgBox ("Mise à jour effectuée")
  sh.Select 'selection de la feuille planning
End Sub
Pour la formation
excel-pratique.com/fr/vba
ou http://boisgontierj.free.fr/index2.htm
A+ François
 

chasacorder

XLDnaute Nouveau
Waouh merci, de la lecture et de l'apprentissage !

Est-ce que je peux abuser encore un peu ?

J'avais trouvé le tableau sur ce forum sauveur de vie pro ^^.
Je n'arrive pas à modifier les couleurs des weekends, jours fériés etc...

Est-ce possible de donner une couleur de cellule pour chaque groupe qui sera appliquée automatiquement ?

J'ai ajouté une colonne 17h-18h, est ce que c'est suffisant pour la macro ?

Encore merci, mes profs vont être contents et du coup, mes élèves aussi ^^

Bonne fin d'après-midi !
Cha
 

Pièces jointes

  • Calendrier Scolaire Anglais 2022-2023.xlsm
    84.1 KB · Affichages: 4

chasacorder

XLDnaute Nouveau
Encore merci !

Quand j'ajoute des nouvelles dates dans la feuille événements et que je clique sur le bouton pour mettre à jour, j'ai le message d'erreur :
Erreur d'execution 1004 : Cette action ne peut pas être appliquée à une cellule fusionnée.

Qu'est-ce que je fais de travers ?
 

Pièces jointes

  • Calendrier Scolaire Anglais 2022-2023 (1) (1).xlsm
    86.1 KB · Affichages: 1

fanfan38

XLDnaute Barbatruc
Bonjour
C'est corrigé...
Par contre les dates doivent être au format date (et non texte)...
Regarde en T13 privilégier l'alignement sur plusieurs colonnes plutôt que les cellules fusionnées...
(sélectionner les cellules, clic droit , format de cellule, alignement...)

A+ François
 

Pièces jointes

  • Calendrier Scolaire Anglais 2022-2023 (1) (1).xlsm
    88.5 KB · Affichages: 3

chasacorder

XLDnaute Nouveau
Super, merci !

Ok, c'est bien noté !

Quand je passe de mon tableau (ci-joint), je n'arrive pas à modifier le format en date, pourtant je passe bien par format de cellule puis date mais elles restent en texte...
 

Pièces jointes

  • EXEMPLE.xlsm
    12.4 KB · Affichages: 2

chasacorder

XLDnaute Nouveau
Ne m'en parle pas... Mais si je demande un deuxième ordi à l'employeur, pas sur qu'il apprécie... o_O

Le problème c'est que j'exporte de mon logiciel de cours les créneaux horaires, il me les sort sur un fichier "exemple" par enseignant... Du coup, je passe par google sheets pour réussir à changer le format des dates.

Là sur mon dernier ajout, excel ne m'affiche qu'un créneau horaire par jour...

Je veux bien les jours s'il te plait !

Merci François
 

Pièces jointes

  • Calendrier Scolaire Anglais 2022-2023 (1) (1) (1).xlsm
    89.3 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
315 118
Messages
2 116 418
Membres
112 744
dernier inscrit
pat38070