Microsoft 365 Gérer automatiquement vacances et jours fériés fiches horaire

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 !

pamonnier

XLDnaute Junior
Bonjour,

Je bloque sur la possibilité d'importer et d'intégrer mon tableau de vacances dans mes formules. Je vais essayer de lister ce que j'essaie de faire si on peut m'aider
Le but est d'automatiser la feuille pour les personnes n'ayant pas ou peu de connaissances excel

- Aller chercher le planning des vacances scolaire de la zone A (j'ai créé une nouvelle feuille mais à chaque fois que j'ouvre il me demande la confirmation de téléchargement des données via l'adresse web que j'ai utilisée)
-Donc supprimer la demande de confirmation de connexion à la BDD éduc nat et mettre à jours la BDD des vacs scolaires en arrière plan
- Aller chercher les jours fériés de l'années de la feuille

- Ces 2 données doivent pouvoir être intégrées dans ma formule qui va chercher quelle semaine nous sommes (paire/impaire) / si on est en vacances / si c'est un jour férié / importer les horaires fixes de la page paramètres "10 jours travaillés à renseigner / importer les horaires théoriques .

Voici ma belle formule dans laquelle il faut que je rajoute (modifie) pour intégrer les vacances / Jours fériés

=SIERREUR(SI(EST.IMPAIR(NO.SEMAINE.ISO($A6));(SIERREUR(RECHERCHEX($A6;Paramètres!$A$18:$A$98;Paramètres!B$18:B$98;(RECHERCHEX($A6;Vacances!$A$1:$A$298;Vacances!$B$1:$B$298;SI(RECHERCHEX($B6;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1)=0;"";RECHERCHEX($B6;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1));0;1)));0));(SI(EST.PAIR(NO.SEMAINE.ISO($A6));(SIERREUR(RECHERCHEX($A6;Vacances!$A$1:$A$298;Vacances!$B$1:$B$298;SI(RECHERCHEX($B6;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1)=0;"";RECHERCHEX($B6;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1));0;1);0));"")));"")

je voulais faire avec ça mais ça ne peut pas se faire sur un tableau complet
=SI(ET(F2>=B4;F2<=C4);"Vacances"; "NON")
Je vous partage le fichier en question.

@p56 si jamais ....

Merci d'avance
 

Pièces jointes

Dernière édition:
Solution
Ok pas de pb c'est facile, version du jour avec :

* calendrier vacances "élèves"

* un simple V sur le cadre des vacances avec clic=>intitulé des vacances

* "roulement" de 1 à 4 semaines, c'est même extrêmement simple :
- 4 grilles de 1 à 4 à remplir ou non (on laisse le choix)
- le code prendra en compte 1 2 3 ou 4 semaines en fonction de ce qui est rempli (exemple dans le fichier du jour 3 grilles complétées => roulement de 3 semaines)
Bonjour à tous

Je relance cette discussion suite au super travail de @p56

Pour info il me semble que Gouvernement a modifié mis à jour son API pour consulter les vacances scolaires ce qui entraine une erreur lors de l'actualisation des vacances de la feuille Excel via le VBA.

Via une requête de connexion Excel sur le data gouv j'arrive à retrouver les dates actualisées mais mes essais pour faire fonctionner le système de @p56 sur la nouvelle API dans le VBA me laisse sur une continuité d'échec.

Je vais regarder pour me pencher sur les API / VBA lors de mes prochaines vacances.

Est ce que pour le moment je suis dans le vrai pour modifier le code VBA pour adapter la nouvelle adresse API ??

Pour le moment
J'ai bien compris que l'URL est construite au fur et a mesure avec les info du VBA qui doit ressembler à ça

L'adresse de l'API de la feuille
Public Const URL = "https://data.education.gouv.fr/api/...et=fr-en-calendrier-scolaire&q=&sort=end_date"

Il y a des différences de Construction de l'url de l'API

Je regardais sur la nouvelle API pour l'intégrer dans le VBA
et les infos qui m'intéresse :
(&refine=zones%3AZone%20A&refine=location%3ABesan%C3%A7on&exclude=population%3AEnseignants)

Dans la tableau Excel
U1 la Zone
V1 l'Académie

Le code VBA
VB:
'Récupération des dates de vacances Zone A

Sub Recup_scolR(Optional x As Byte)
Dim Rcd As Object, Elm As Object, Fld As Object
Dim Adr As String, T As Variant, i As Integer

    With Sheets("Parametres")

        Adr = IIf(.Range("U1").Value = "", "", "&refine.zones=Zone+" & .Range("U1").Value)
        Adr = Adr & IIf(.Range("V1").Value = "", "", "&refine.location=" & .Range("V1").Value)
        Adr = Adr & "&exclude.population=Enseignants"
        Set Rcd = Obj_Rcdst(URL & Adr & "&rows=2000")
        i = 1
        ReDim T(1 To Rcd.nhits, 1 To 7)
        For Each Elm In VBA.CallByName(Rcd, "records", VbGet)
            Set Fld = VBA.CallByName(Elm, "fields", VbGet)
            T(i, 1) = VBA.CallByName(Fld, "description", VbGet)
            T(i, 2) = Fld.population
            T(i, 3) = Decode_Date(Fld.start_date)
            T(i, 4) = Decode_Date(Fld.end_date)
            T(i, 5) = VBA.CallByName(Fld, "location", VbGet)
            T(i, 6) = Fld.zones
            T(i, 7) = Fld.annee_scolaire
            i = i + 1
        Next Elm
        Set Fld = Nothing
        Set Elm = Nothing
        Set Rcd = Nothing
        .Range("W2").Resize(UBound(T, 1), UBound(T, 2)) = T
    End With
    
End Sub
 
- 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
0
Affichages
1 K
Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Retour