Aide pour la création d'un cycle planning

Y compris Power BI, Power Query et toute autre question en lien avec Excel
a
angels2786
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 12 juillet 2017
Version d'Excel : 2016 FR (Mac)

Message par angels2786 » 12 juillet 2017, 23:36

Bonjour a tous.

Je travaille actuellement sur la création d'un cycle planning pour mon travail. Dans ma jeunesse j'ai un peu pratiqué Excel ainsi que le VBA mais cela commence a daté et je suis un peu rouillé.

J'ai beau chercher sur ce site et même sur internet je n'arrive pas a trouver la solution a mon problème. (Je suis peux être un peu long a la détente ...)

Voila le problème.
J'ai créer plusieurs cycle de planning (feuille "Cycle"). Ils ont tous un nom différent. Chaque professionnel tourne sur ces cycles.
Dans la première feuille ("semaine") je veux choisir pour chaque semaine de l'année le nom du cycle a utilisé (liste déroulante déjà créer). Une fois choisi je voudrais que le planning annuel se remplisse automatiquement pour tout les professionnels.

Pour me faire mieux comprendre je vous transmet mon fichier.
S'il y a besoin de plus d'explication je suis joignable.

Je pense que c'est un problème de conditions. Je connais les fonctions If, else, sélect ... mais je ne me souvient plus comment faire et je sais pas si c'est la meilleure méthode.

Merci d'avance pour votre aide.
Calendrier.xls
(171.5 Kio) Téléchargé 63 fois
A
Audebois
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 18 mai 2017
Version d'Excel : 2007 FR, 2010 FR

Message par Audebois » 13 juillet 2017, 10:17

Bonjour,

J'ai pas tout compris... :? (je suis peut-être aussi un peu longue à la détente! :lol: )
  • Dans l'onglet "Cycle", les chiffres de 1 à 6 pour chaque tableau NVac, ils correspondent à quoi? Aux educs 1 à 6 qu'on retrouve dans le planning annuel?
  • et les 7 plages horaires différentes, elles correspondent aux jours de la semaine?
  • dans le planning annuel, les N° cycle correspondent aux tableaux Nvac de "Cycle"?
  • Comment sont renseignés les N° cycle? Manuellement?
a
angels2786
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 12 juillet 2017
Version d'Excel : 2016 FR (Mac)

Message par angels2786 » 14 juillet 2017, 23:17

Bonjour.

Je vais essayer d'entre plus précis (c'est pas trop facile vu que je m'embrouille)

Les numéros 1 à 6 dans la feuille cycle sont les numéros de cycle à appliquer au numéro qu'il y a dans le planning annuel pour chaque professionnels.

Les 7 plages sont bien les jours de la semaine.

Les numéros de cycles dans annuel sont mis manuellement pour la première semaine de l'année et après elle sont calculées automatiquement (+1 par semaine et retour à 1 après 6).

Donc si je dois me résumer.
Je rentre dans la première feuille le nom du cycle choisi pour la semaine. Et dans annuel sa rempli (copie) automatiquement pour chaque pro ses horaires suivant le numéro qu'il lui a été attribués.

J'espère avoir donné plus d'info.

Merci par avance pour vos réponses.
A
Audebois
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 18 mai 2017
Version d'Excel : 2007 FR, 2010 FR

Message par Audebois » 17 juillet 2017, 09:20

du coup, en imaginant que la semaine 1 de l'onglet semaine ait le code semaine nVac3, comment serait remplit cette même semaine 1 dans l'onglet annuel? de ce que je comprends, chaque Educ voit sa semaine organisée en fonction du tableau Nvac3 de l'onglet Cycle, en fonction du n° de cycle attribué à chaque Educ... et ça donnerait ça :
exemple semaine 1.jpg
en attente de ta confirmation
cdt
A
Audebois
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 18 mai 2017
Version d'Excel : 2007 FR, 2010 FR

Message par Audebois » 17 juillet 2017, 12:46

j'ai tenté qqchose en fonction de ma compréhension de ta demande.
Regarde dans fichier joint.

La macro se lance en cliquant sur le bouton Remplir le planning annuel onglet Semaine.

une plage nommée a_effacer te permet de sélectionner en une fois toutes les cases du planning annuel à effacer (pour les tests).

cdt

PS : je joins également la version .xlsm, si jamais la macro ne fonctionne pas en .xls
calendrier_cycle_educ.xlsm
(74.55 Kio) Téléchargé 40 fois
calendrier_cycle_educ.xls
(223 Kio) Téléchargé 37 fois
a
angels2786
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 12 juillet 2017
Version d'Excel : 2016 FR (Mac)

Message par angels2786 » 17 juillet 2017, 17:28

Salut,

Désolé de ne pas répondre rapidement mais je suis à l'étranger.

Je viens de voir tes messages. Tu as parfaitement compris ce que je voulais faire.
J'ai regarder le fichier que tu m'as laissé. C'est tout bonnement génial. J'ai essayé de mon côté' mais c'était beaucoup plus complexe
J'ai pas tout compris de ton code. Je suis novice dans le vba. Je vais l'étudier pour le comprendre et être capable de le refaire par moi même.

Si je ne comprend pas quelque chose je me permettrai de revenir vers toi pour quelques explication.

Merci encore.
A
Audebois
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 18 mai 2017
Version d'Excel : 2007 FR, 2010 FR

Message par Audebois » 17 juillet 2017, 22:27

tant mieux si ça répond à ta demande. Je reste disponible pour répondre à tes éventuelles questions sur le code.
A+
a
angels2786
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 12 juillet 2017
Version d'Excel : 2016 FR (Mac)

Message par angels2786 » 31 juillet 2017, 22:58

Bonjour,

J'ai encore une fois besoin d'aide.
Je cherche a réaliser une macro pour calculer le nombre d'heure suivant les horaires (jour par jour et mois par mois)
Ma macro marche mais a la fin marque "Erreur d'exécution 6, Dépassement de capacité".

pour faire plus simple voila mon code :
Sub brouillon1()

Dim z As Range 'Cellule horaire
Dim y As Range 'Cellule heure
Dim i As Byte 'ligne
Dim o As Byte 'colonne horaire
Dim p As Byte 'colonne heure

Sheets("Educ1_Indiv").Activate

o = 3
p = 4

While o < 11 & p < 12

For i = 3 To 33 Step 1

    Set z = Sheets("Educ1_Indiv").Cells(i, o)
    Set y = Sheets("Educ1_Indiv").Cells(i, p)

    Select Case z
                Case Is = "R.H", "C.A", "F", "CHOS", "VACANCES", "RECH"
                    y = ""
                Case Is = "7H - 10H", "7H30 - 10H30", "8H - 11H", "8H30 - 11H30", "9H - 12H", "9H30 - 12H30", "10H - 13H", "10H30 - 13H30", "11H - 14H", "11H30 - 14H30", "12H - 15H", "12H30 - 15H30", "13H - 16H", "13H30 - 16H30", "14H - 17H", "14H30 - 17H30", "15H - 18H", "15H30 - 18H30", "16H - 19H", "16H30 - 19H30", "17H - 20H", "17H30 - 20H30", "18H - 21H", "18H30 - 21H30", "19H - 22H", "19H30 - 22H30"
                    y = "3"
                Case Is = "7H - 10H30", "7H30 - 11H", "8H - 11H30", "8H30 - 12H", "9H - 12H30", "9H30 - 13H", "10H - 13H30", "10H30 - 14H'", "11H - 14H30", "11H30 - 15H", "12H - 15H30", "12H30 - 16H", "13H - 16H30", "13H30 - 17H", "14H - 17H30", "14H30 - 18H", "15H - 18H30", "15H30 - 19H", "16H - 19H30", "16H30 - 20H", "17H - 20H30", "17H30 - 21H", "18H - 21H30", "18H30 - 22H", "19H - 22H30"
                     y = "3.5"
                Case Is = "7H - 11H", "7H30 - 11H30", "8H - 12H", "8H30 - 12H30", "9H - 13H", "9H30 - 13H30", "10H - 14H", "10H30 - 14H30'", "11H - 15H", "11H30 - 15H30", "12H - 16H", "12H30 - 16H30", "13H - 17H", "13H30 - 17H30", "14H - 18H", "14H30 - 18H30", "15H - 19H", "15H30 - 19H30", "16H - 20H", "16H30 - 20H30", "17H - 21H", "17H30 - 21H30", "18H - 22H", "18H30 - 22H30"
                     y = "4"
                Case Is = "7H - 11H30", "7H30 - 12H", "8H - 12H30", "8H30 - 13H", "9H - 13H30", "9H30 - 14H", "10H - 14H30", "10H30 - 15H'", "11H - 15H30", "11H30 - 16H", "12H - 16H30", "12H30 - 17H", "13H - 17H30", "13H30 - 18H", "14H - 18H30", "14H30 - 19H", "15H - 19H30", "15H30 - 20H", "16H - 20H30", "16H30 - 21H", "17H - 21H30", "17H30 - 22H", "18H - 22H30"
                     y = "4.5"
                Case Is = "7H - 12H", "7H30 - 12H30", "8H - 13H", "8H30 - 13H30", "9H - 14H", "9H30 - 14H30", "10H - 15H", "10H30 - 15H30'", "11H - 16H", "11H30 - 16H30", "12H - 17H", "12H30 - 17H30", "13H - 18H", "13H30 - 18H30", "14H - 19H", "14H30 - 19H30", "15H - 20H", "15H30 - 20H30", "16H - 21H", "16H30 - 21H30", "17H - 22H", "17H30 - 22H30"
                     y = "5"
                Case Is = "7H - 12H30", "7H30 - 13H", "8H - 13H30", "8H30 - 14H", "9H - 14H30", "9H30 - 15H", "10H - 15H30", "10H30 - 16H'", "11H - 16H30", "11H30 - 17H", "12H - 17H30", "12H30 - 18H", "13H - 18H30", "13H30 - 19H", "14H - 19H30", "14H30 - 20H", "15H - 20H30", "15H30 - 21H", "16H - 21H30", "16H30 - 22H", "17H - 22H30"
                     y = "5.5"
                Case Is = "7H - 13H", "7H30 - 13H30", "8H - 14H", "8H30 - 14H30", "9H - 15H", "9H30 - 15H30", "10H - 16H", "10H30 - 16H30'", "11H - 17H", "11H30 - 17H30", "12H - 18H", "12H30 - 18H30", "13H - 19H", "13H30 - 19H30", "14H - 20H", "14H30 - 20H30", "15H - 21H", "15H30 - 21H30", "16H - 22H", "16H30 - 22H30"
                     y = "6"
                Case Is = "7H - 13H30", "7H30 - 14H", "8H - 14H30", "8H30 - 15H", "9H - 15H30", "9H30 - 16H", "10H - 16H30", "10H30 - 17H'", "11H - 17H30", "11H30 - 18H", "12H - 18H30", "12H30 - 19H", "13H - 19H30", "13H30 - 20H", "14H - 20H30", "14H30 - 21H", "15H - 21H30", "15H30 - 22H", "16H - 22H30"
                     y = "6.5"
                Case Is = "7H - 14H", "7H30 - 14H30", "8H - 15H", "8H30 - 15H30", "9H - 16H", "9H30 - 16H30", "10H - 17H", "10H30 - 17H30'", "11H - 18H", "11H30 - 18H30", "12H - 19H", "12H30 - 19H30", "13H - 20H", "13H30 - 20H30", "14H - 21H", "14H30 - 21H30", "15H - 22H", "15H30 - 22H30"
                     y = "7"
                Case Is = "7H - 14H30", "7H30 - 15H", "8H - 15H30", "8H30 - 16H", "9H - 16H30", "9H30 - 17H", "10H - 17H30", "10H30 - 18H'", "11H - 18H30", "11H30 - 19H", "12H - 19H30", "12H30 - 20H", "13H - 20H30", "13H30 - 21H", "14H - 21H30", "14H30 - 22H", "15H - 22H30"
                     y = "7.5"
                Case Is = "7H - 15H", "7H30 - 15H30", "8H - 16H", "8H30 - 16H30", "9H - 17H", "9H30 - 17H30", "10H - 18H", "10H30 - 18H30'", "11H - 19H", "11H30 - 19H30", "12H - 20H", "12H30 - 20H30", "13H - 21H", "13H30 - 21H30", "14H - 22H", "14H30 - 22H30"
                     y = "8"
                Case Is = "7H - 15H30", "7H30 - 16H", "8H - 16H30", "8H30 - 17H", "9H - 17H30", "9H30 - 18H", "10H - 18H30", "10H30 - 19H'", "11H - 19H30", "11H30 - 20H", "12H - 20H30", "12H30 - 21H", "13H - 21H30", "13H30 - 22H", "14H - 22H30"
                     y = "8.5"
                Case Is = "7H - 16H", "7H30 - 16H30", "8H - 17H", "8H30 - 17H30", "9H - 18H", "9H30 - 18H30", "10H - 19H", "10H30 - 19H30'", "11H - 20H", "11H30 - 20H30", "12H - 21H", "12H30 - 21H30", "13H - 22H", "13H30 - 22H30"
                     y = "9"
                Case Is = "7H - 16H30", "7H30 - 17H", "8H - 17H30", "8H30 - 18H", "9H - 18H30", "9H30 - 19H", "10H - 19H30", "10H30 - 20H'", "11H - 20H30", "11H30 - 21H", "12H - 21H30", "12H30 - 22H", "13H - 22H30"
                     y = "9.5"
                Case Is = "7H - 17H", "7H30 - 17H30", "8H - 18H", "8H30 - 18H30", "9H - 19H", "9H30 - 19H30", "10H - 20H", "10H30 - 20H30'", "11H - 21H", "11H30 - 21H30", "12H - 22H", "12H30 - 22H30"
                     y = "10"
                Case Is = "7H - 17H30", "7H30 - 18H", "8H - 18H30", "8H30 - 19H", "9H - 19H30", "9H30 - 20H", "10H - 20H30", "10H30 - 21H'", "11H - 21H30", "11H30 - 22H", "12H - 22H30"
                     y = "10.5"
                Case Is = "7H - 18H", "7H30 - 18H30", "8H - 19H", "8H30 - 19H30", "9H - 20H", "9H30 - 20H30", "10H - 21H", "10H30 - 21H30'", "11H - 22H", "11H30 - 22H30"
                     y = "11"
                Case Is = "7H - 18H30", "7H30 - 19H", "8H - 19H30", "8H30 - 20H", "9H - 20H30", "9H30 - 21H", "10H - 21H30", "10H30 - 22H'", "11H - 22H30"
                     y = "11.5"
                Case Is = "7H - 19H", "7H30 - 19H30", "8H - 20H", "8H30 - 20H30", "9H - 21H", "9H30 - 21H30", "10H - 22H", "10H30 - 22H30"
                     y = "12"
    End Select
Next

o = o + 4

p = p + 4

Wend

End Sub
Sur la fenêtre d'erreur quand je clique sur "Déboguer" la ligne "p = p + 4" est surligné
J'espère que vous pourrez m'aider.
Merci d'avance.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'203
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 31 juillet 2017, 23:38

Bonjour,
Ma macro marche mais a la fin marque "Erreur d'exécution 6, Dépassement de capacité".
C'est donc qu'elle ne marche pas ! :lol:

Elle donnera sans doute des résultats imprévus sans cette erreur... car l'erreur survient lorsque en ajoutant 4, p dépasse 255 ! Et comme je vois que p devrait rester inférieur à 12... :D

Mais justement qui a inventé cette syntaxe ?
While o < 11 & p < 12
& est un opérateur de concaténation ! Ce qui va donner au démarrage (initialisation de o à 3 et p à 4 : 3 < 114 < 12
3 < 114 est VRAI (La concaténation 11 & 4 produit du texte, reconverti automatiquement en nombre), VRAI étant égal à -1, -1 < 12 sera VRAI... La condition demeurera VRAI au fil des incrémentations de o et p, jusqu'à l'erreur de dépassement !

L'opérateur logique est And !
a
angels2786
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 12 juillet 2017
Version d'Excel : 2016 FR (Mac)

Message par angels2786 » 31 juillet 2017, 23:41

Merci beaucoup !
Je sais pas pourquoi j'ai mis & et pas And. Je réfléchis pas parfois. Merci de ton aide.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message