Planification automatique

Je te joins une nouvelle version améliorée avec un code de traitement quelque peu allégé concernant le traitement des colonnes compétences de l’onglet « PLANNING PROD »
Celui-ci est dynamique donc s’adapte à leur nombre à la fois dans cet onglet et dans celui de destination « PLANNING »
Plus rien à faire pour les colonnes supplémentaires si ce n’est onglet « PLANNING » de les rajouter par jour en les incluant dans la fusion des cellules ligne 1 sur le jour approprié
Les colonnes compétence pour ces 2 onglets doivent être dans le même ordre
En l’état seules les 3 premières colonnes onglet « PLANNING PROD » sont traités car les 2 supplémentaires sont non intégrés pour chaque jour dans l’onglet « PLANNING »
Ajoute les pour chacun des jours en fusionnant en ligne 1 celles-ci pour chacun d’eux et elles devraient être prisent en compte par le traitement ensuite avec pour seule actualisation la colonne des jours de la semaine variable colonnerecopie sur ces lignes de code :

If Format(Range(« A » & i), « DDDD ») = « lundi » Then
jour = Format(Range(« A » & i), « DDDD »)
colonnerecopie = « A »
End If

Je n’ai pas testé cette nouvelle structure n’étant pas en place dans cet onglet cible

Dis moi ce qu’il en est

PLANNING AUTO3.xlsm (51,2 Ko)

j’ai encore ajouté quelque fonctionnements.
Il manque encore quelque compétences pour être complèt, voir ces cellules rouges.
Absent = 2ième colonne de compétences
PLANNING AUTO3.xlsm (64,7 Ko)

Merci a vous deux pour vos propositions,je teste en fin d’après midi et reviens vers vous .
Merci beaucoup.
Franck.

Je viens de tester et c’est vraiment très bien ,j’ai réellement une vue synthétique de mes besoins et le manques sont également mis en évidence.
Dans l’immédiat cela me convient ,si j’arrive a faire évoluer l’onglet compétence ,seulement tu as verrouillé l’ensemble du tableau ,et je ne peux pas modifier la plage du TDB_Compétences pour pouvoir rajouter les manquants :
image
Si tu peux me le renvoyer sans MDP ce serait vraiment top .
Franck .

Je viens de tester avec les modifs de colonne dans l’onglet planning ,il y a un loup car je n’ai pas toute les données de copiées .
J’ai surligné l’evenement dans le tableau ,j’ai également un soucis avec une recherche v
PLANNING AUTO3(1).xlsm (51,3 Ko)
dans l’onglet"planning prod" ,je ne vois pas ce qui ne va pas !!
Franck .

Pourquoi dans le dernier fichier que je t’ai transmis les colonnes compétence de l’onglet « PLANNING PROD » sont à partir de la colonne « E » :

Et sur ce fichier qui ne fonctionne pas comme tu le souhaites ces mêmes colonnes même onglet débute en colonne « D » :

Cela ne pourra jamais correctement fonctionner si tu persistes à modifier les structures

Le pb en est certainement à l’origine

Il faut choisir et ne plus toucher : colonne « E » ou colonne « D »

Merci de statuer

De plus tu n’as pas réalisé ce que je t’ai indiqué pour l’ajout des colonnes compétences dans l’onglet « PLANNING » c’est à dire ceci :

Ajoute les pour chacun des jours en fusionnant en ligne 1 celles-ci pour chacun d’eux et elles devraient être prisent en compte par le traitement ensuite avec pour seule actualisation la colonne des jours de la semaine variable colonnerecopie sur ces lignes de code :

If Format(Range(« A » & i), « DDDD ») = « lundi » Then
jour = Format(Range(« A » & i), « DDDD »)
colonnerecopie = « A »
End If

Autre anomalie le code OC3B en cellule compétence3 ligne 2 onglet « PLANNING PROD » est absent de cette variable :

listecomp = « /CU1/CU2/CU3/CU4/CU6/CU7/OC1/OC2/CR1/CR2/CUN4/ »

Ainsi que sa colonne dans la variable :

listecol = « /E/H/K/N/Q/T/W/Z/AC/AF/AI/ »

Il ne peut donc être pris en compte dans la procédure

Je viens de vérifier le code ce n’est pas fait

Il brille aussi par son absence dans l’onglet « COMPETENCES »

Je viens de retester ton dernier fichier transmis apporté les corrections dans le code en fonction de la structure de l’onglet « PLANNING PROD » et de celle de l’onglet « PLANNING » suite aux nouvelles colonnes ajoutées pour chacun des jours le traitement fonctionne parfaitement

Les codes sur fond de couleur onglet « PLANNING PROD » à intégrer au lundi onglet « PLANNING » :

Les mêmes avec leur fond de couleur à l’identique dans l’onglet « PLANNING » intégré par le traitement sur ce même jour lundi :

Donc pour moi cette macro est opérationnelle

Seul code manquant OC3B car absent de l’onglet « COMPETENCES » et non paramétré dans les variables appropriées du code

Testes le fichier et dis moi

PLANNING AUTO3(1).xlsm (49,0 Ko)

J’ai rajouté les compétences manquantes et je ne comprend pas pourquoi il y a une coquille ,j’ai du oublier quelque chose !!!
Je te renvois le tableau tel que je l’ai testé .
Franck.
PLANNING AUTO3(1)(2).xlsm (50,9 Ko)

Il faut les rajouter dans l’onglet « COMPÉTENCES » premières colonnes de libre avec pour chaque ligne de nom leur cotation et dans le code rajouter ceux-ci dans la variable :

listecomp = « /CU1/CU2/CU3/CU4/CU6/CU7/OC1/OC2/CR1/CR2/CUN4/ »

Et leur colonne de l’onglet « Paramètres » dans la variable

listecol = « /E/H/K/N/Q/T/W/Z/AC/AF/AI/ »

Attention même position sur ces 2 listes pour chaque variable et leur colonne

Rajouter les lignes de code pour l’alimentation de l’onglet « Paramètres » des données de ces codes de l’onglet « COMPÉTENCES » à l’identique des lignes de codes déjà existantes pour ceux en place (début de la macro)

J’ai pourtant modifié ici:
Sheets(« Paramètres »).Range(« AJ1 », « AJ » & derligne).Value = Sheets(« COMPETENCES »).Range(« A1 », « A » & derligne).Value
Sheets(« Paramètres »).Range(« AK1 », « AK » & derligne).Value = Sheets(« COMPETENCES »).Range(« Y1 », « y » & derligne).Value
Sheets(« Paramètres »).Range(« AL1 », « AL » & derligne).Value = Sheets(« COMPETENCES »).Range(« Z1 », « Z » & derligne).Value
Sheets(« Paramètres »).Sort.SortFields.Clear
Sheets(« Paramètres »).Range(« AJ1:AL » & derligne).Sort key1:=Sheets(« Paramètres »).Range(« AL1 »), order1:=xlDescending, Header:=xlYes

Sheets(« Paramètres »).Range(« AM1 », « AM » & derligne).Value = Sheets(« COMPETENCES »).Range(« A1 », « A » & derligne).Value
Sheets(« Paramètres »).Range(« AN1 », « AN » & derligne).Value = Sheets(« COMPETENCES »).Range(« AA1 », « AA » & derligne).Value
Sheets(« Paramètres »).Range(« AO1 », « AO » & derligne).Value = Sheets(« COMPETENCES »).Range(« AB1 », « AB » & derligne).Value
Sheets(« Paramètres »).Sort.SortFields.Clear
Sheets(« Paramètres »).Range(« AM1:AO » & derligne).Sort key1:=Sheets(« Paramètres »).Range(« AO1 »), order1:=xlDescending, Header:=xlYes

listecomp = « /CU1/CU2/CU3/CU4/CU6/CU7/OC1/OC2/CR1/CR2/CUN4/OC3/OC3B »
listecol = « /E/H/K/N/Q/T/W/Z/AC/AF/AI/AL/AO »
Tel que tu le preconises .

Ces 2 lignes ne sont pas tout à fait correctes il manque en fin ce caractère : « / »
Ainsi :

listecomp = « /CU1/CU2/CU3/CU4/CU6/CU7/OC1/OC2/CR1/CR2/CUN4/OC3/OC3B/»
listecol = « /E/H/K/N/Q/T/W/Z/AC/AF/AI/AL/AO/»

Ici je mettrait une majuscule à la lettre « y »

Sheets(« COMPETENCES »).Range(« Y1 », « y » & derligne).Value

y » & derligne

Comme ceci

Y » & derligne

Sheets(« COMPETENCES »).Range(« Y1 », « Y » & derligne).Value

Sinon cela me semble correct

Lors du traitement ces nouvelles colonnes onglet « Paramètres » sont elles alimentées triées ordre décroissant indice de cotation avec le bon code compétences dans la bonne colonne decrite dans ces variables :

listecomp = « /CU1/CU2/CU3/CU4/CU6/CU7/OC1/OC2/CR1/CR2/CUN4/OC3/OC3B »
listecol = « /E/H/K/N/Q/T/W/Z/AC/AF/AI/AL/AO »

C’est à dire colonne « AL » colonne cotation pour le code compétence « OC3 » et « AO » colonne cotation pour le code compétence « OC3B »

Merci pour tes retours

j’ai encore simplifié le tableau des compétences. Maintenant vous avez les noms en colonne A, les absents pour chaque jour individuel, donc du lundi au vendredi dans les colonnes B:F et puis chaque compétence dans l’entête (ligne 1) et les valeurs en dessous.
C’est un tableau structuré, donc on ne sait pas modifier la plage dans cet écran des plages nommées. Il n’y a pas un MDP non plus. Il faut simplement se positioner dans la cellule T1 et y ajouter par exemple « Graine6 » et le tableau ajoutera lui-même sans intervention une colonne supplémentaire. Puis vous ajoutez les valeurs pour chaque personne. Pour une autre compétence, par exemple « CUTT6 », vous ajoutez cela dans U1, etc. Facile, non ?
PLANNING AUTO3.xlsm (64,9 Ko)

Ah FFO tu as un œil de lynx !!!
On devrait le vendredi soir ne plus rien faire sur excel (enfin je parle pour moi :rofl: :rofl:)
J’ai rectifié les erreurs et cela fonctionne sans aucun problème ,pour la recherchev qui ne fonctionnait pas correctement ,j’avais des doublons dans la BDD et qui n’avait pas tous les même données donc ma recherche s’arrêtait a la première ligne qui ,elle, ne contenait pas tous les éléments d’où mon interrogation .
J’ai grâce à toi et a Cow18 ,deux fichier qui font le même boulot mais je vais tout de même utiliser les deux car dans celui que tu m’as construit je pourrais y ajouter des annotations dans les cellules vides adjacentes .
Je te remercie encore mille fois et te souhaite un excellent week-end !!
Franck

Bonjour
J’ai regardé ton fichier je constate onglet « PLANNING PROD » ton paramérage avec sous fond vert le nouveau code « OC3B » code compétence3 du lundi et sous fond bleu le nouveau code « OC3 » compétence2 du jeudi et vendredi :

Après l’exécution du traitement onglet « PLANNING »

pour le lundi compétence3 le code « OC3B » est bien intégré :

pour le jeudi compétence2 le code « OC3 » est bien intégré :

pour le vendredi compétence2 le code « OC3 » est bien intégré :

En conclusion le traitement fonctionne parfaitement pour les nouveaux codes

Seul petit bémol l’augmentation des colonnes utilisées onglet « PLANNING » a mis à mal l’instruction de son nettoyage en tout début de macro sur cette ligne de code :

Sheets(« PLANNING »).Range(« A3 », « AI » & Sheets(« PLANNING »).Cells.SpecialCells(xlCellTypeLastCell).Row).ClearContents

Avant l’ajout des colonnes des nouvelles compétences (COMPETENCE 4 et COMPETENCE 5 pour chaque jour) la dernière était la colonne « AI »
Depuis cette extension la dernière colonne est devenue la colonne « BC »

il faut donc pour réussir le nettoyage approprié modifier cette ligne de code comme ceci :

Sheets(« PLANNING »).Range(« A3 », « BC » & Sheets(« PLANNING »).Cells.SpecialCells(xlCellTypeLastCell).Row).ClearContents

Cette correction n’ayant pas été réalisée les résultats se sont intégrés au de là du tableau dans des lignes très en dessous ce qui explique que tu n’ais su les lire pour ces nouveaux codes qui en fait étaient bien présent mais à un endroit où on ne les attendaient pas
Ceci explique ta déconvenue

J’ai donc corrigé cette ligne de code ce qu’il faudra ne pas oublier pour toutes modifications de cet onglet quant à sa structure

Ton fichier ci-joint adapté et opérationnel

Testes et dis moi

PLANNING AUTO3(2).xlsm (49,9 Ko)

Ah oui ,je ne m’en était pas rendu compte car j’utilise les mêmes données d’entrée dans planning prod depuis le début, donc je n’ai pas pu constater cette oubli !
Testé et approuvé !
Top ,
Franck .

Bonjour ,
merci pour cette nouvelle proposition hyper synthétique ,effectivement l’ajout des compétences est ultra simplifié ,c’est vraiment facile .
J’aurai une ultime requête (je ne comprend pas pourquoi je n’y arrive pas seul !!) j’aurai souhaité redimensionner le bouton de commande et le déplacer mais je n’y arrive pas !!
Sinon c’est un fantastique travail :clap: :clap:
Merci beaucoup du temps passé a m’aider !
Excel…lent week-end :rofl:
Franck .

Je voulais vous remercier pour votre patience,persévérance et du temps passé a essayer de comprendre mes attentes ,pas toujours bien expliquées et a ajuster un fichier que je ne cesse de modifier dans mon coin !!
Un grand merci à FFO,Cow18 et Jacquinot_WILL-FREAD.
Vous êtes une mine d’or de savoir excel !
MERCI ,
Franck .

Ravi d’y être parvenu avec l’aide de tous pour la compréhension
Une bonne équipe à ta disposition
Au plaisir

[quote=« af291, post:53, topic:14610 »]je pourrais y ajouter des annotations dans les cellules vides adjacentes .
[/quote]bonjour le fil,
je n’ai pas suivi ce topic dès le début, mais vous voulez aussi un autre layout, si nécessaire ?

Non ,
sur votre tableau ,je souhaite juste pouvoir modifier le bouton « planning » dans un premier temps et ,si possible ,pouvoir lister les personnes non affectées jour par jour et dans un troisième temps lister les postes manquants ,j’ai regroupé ces besoins dans l’onglet « SYNTHESE »
J’ai egalement besoin de rajouter des colonnes competence dans l’onglet « PLANNING PROD » pour pouvoir planifier les personnels lorsque la ligne fonctionne sur deux equipes ,la macro sera a modifier .
J’en demande peut-être trop mais qui ne tente rien !!
Je vous joint le fichier avec mes petites modifications .
Franck
PPF 2.xlsm (100,5 Ko)