Aide pour la création d'un cycle planning

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.

119calendrier.zip (45.75 Ko)

Bonjour,

J'ai pas tout compris... (je suis peut-être aussi un peu longue à la détente! )

  • 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?

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.

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

en attente de ta confirmation

cdt

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

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.

tant mieux si ça répond à ta demande. Je reste disponible pour répondre à tes éventuelles questions sur le code.

A+

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.

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 !

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...

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 !

Merci beaucoup !

Je sais pas pourquoi j'ai mis & et pas And. Je réfléchis pas parfois. Merci de ton aide.

Bonjour a tous.

Je reviens encore une fois vers vous car j'ai (encore) un problème.

J'ai continué a travailler mon fichier pour les plannings. Il marche parfaitement a la maison. Seul default auquel je n'ai pas pensé est que chez moi j'ai Excel et qu'au boulot ils ont seulement LibreOffice. Du coup rien ne passe !! Quelqu'un aurait une solution pour mon nouveau problème ?

Je vous laisse mon fichier au cas ou.

Je vous remercie par avance.

19planning-2017.xlsm (232.75 Ko)

Bonjour,

Là le problème est qu'il te faut abandonner VBA pour établir une compatibilité...

Cordialement.

Rechercher des sujets similaires à "aide creation cycle planning"