Adaptation projet en VBA

Bonjour le forum et tous mes voeux pour cette année qui commence

Le fichier que je joint me sert à affecter 3 personnes par machine: 1 alimenteur et 2 décaseurs( un alimenteur est un décaseur avec une formation ) et ce sur deux moitié de journée( VAC1 et VAC2)

Je le réalise en utilisant des formules( je suis nul en VBA) qui s'activent en sélectionnant en colonne B(VAC1) ou H (VAC2) un numéro dans le menu déroulant: et choisissent 1 alimenteur ( colonne D pour VAC1, J pour VAC2)(qui évolue en fonction du nombre de machines dont j'ai besoin) et 2 décaseurs (E pour VAC1,K pour VAC2)

Mon soucis viens du fait que les équipes changent au fur et à mesure que j'affecte des les numéros

Mon souhait serait que si par exemple j'active la machine 5 avant la machine 1 l'équipe de la machine 5 ne change pas et ainsi de suite..

Si cela pouvait se faire en double clic sur la référence de la machine (colonne A MTIPF N°1 etc et en colonne G)

Merci d'avoir eu la patience de me lire

A vôtre entière disposition pour complément d'information

Cordialement

Edit Dan : Modifé titre du sujet. Merci de lire la charte du forum --> https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html

9trame-pause.xlsm (181.13 Ko)

Bonjour etsije

Peux-tu préciser un peu le fonctionnement de ton fichier...

Bonjour Andréa, le forum

Merci d'avoir prit le temps de te pencher sur mon cas

Dans un premier temps un fichier est collé dans l'onglet "import" puis modifié( ajout et déplacement d'agents)

Afin de palier aux cellules fusionnées en colonne A je fait un copié-collé avec liaison de B6-R65 en AC6( la taille de

En colonne AB une première formule renomme les valeurs de la colonne AC en "bis" "ter" "terbis" selon le nombre de cellules fusionnées afin de pouvoir utiliser les fonctions de recherche

De là je passe en onglet "equipage PF" et de AQ2 à AQ20 je cherche les valeurs des cellules avec la formule =SIERREUR(RECHERCHEV($F$1;import!$AB$6:$AT$65;LIGNE(3:3);FAUX);0) pour la valeur "VAC1 MPF TG2 ECO AGT"

de AQ21 à AQ39 =SIERREUR(RECHERCHEV($F$1&"bis";import!$AB$6:$AT$65;LIGNE(3:3);FAUX);0) pour recherche valeur F1"VAC1 MPF TG2 ECO AGTbis"

de AQ40 à AQ58 =SIERREUR(RECHERCHEV($F$1&"ter";import!$AB$6:$AT$65;LIGNE(3:3);FAUX);0) pour recherche valeur F1"VAC1 MPF TG2 ECO AGTter"

de AQ59 à AQ77 =SIERREUR(RECHERCHEV($F$1&"terbis";import!$AB$6:$AT$65;LIGNE(3:3);FAUX);0)pour recherche valeur F1 "VAC1 MPF TG2 ECO AGTterbis"

et de AQ77 à AQ152 je répète la même chose afin de différencier en colonne AR2 AR77 les agents qui font (14.00 -17.00) de ceux qui font (14.30 -17.00) et qui donne uniquement le nom et prénom avec la formule ci dessous

=SIERREUR(SI(DROITE(AQ2;14)="(14.00 -17.00)";GAUCHE(AQ2;NBCAR(AQ2)-14);SI(OU(ESTNA(RECHERCHEV(AQ2;$AB$2:$AE$250;2;FAUX));RECHERCHEV(AQ2;$AB$2:$AE$250;2;FAUX)="n");"";SI(NBCAR(AQ2)<6;"";AQ2)));"")

la fonction recherchev détermine les différentes particularités d'un agent( commence à 14.00 "o" ou "n" parce que les agents rajoutés en "import" n'ont pas tous la précision de leur horaire)

En colonne AP je me sers de la formule

=SIERREUR(SI(AR2="";"";SI(NB.SI($AS1:AS$2;"o")>$B$44;"n";RECHERCHEV(AR2;$AB$2:$AD$240;3;FAUX)));"n")

afin de différencier les aliments dont j'ai besoin ( NB.SI($AS1:AS$2;"o")>$B$44 la cellule B44 calcul le nombre de machines activées )

j'en arrive à colonne D de l'onglet "equipage pf"

=SIERREUR(INDEX($AR$2:$AR$159;PETITE.VALEUR(SI($AP$2:$AP$159="o";LIGNE($AP$2:$AP$159)-1;"");LIGNE(1:1)));"") en matricielle me donne les alimenteurs disponibles et dont j'ai besoin qui évolue au plus j'active de machine( choix colonne B par menu déroulant)

même chose en colonne E pour les décaseurs la différence étant ="n"

C'est très lourd et tordu mais à mon niveau je suis fière lol

Donc l'objectif étant de calculer 1 alimenteur et 2 décaseurs par machine(MTIPF N°_)

en C2,C5,C8,C11,C14,C17,C20,C23,C26 je cherche les alimenteurs ( du premier au dernier disponible) en en C3:C4 ,C6:C7, C9:C10,C12:C13,C15:C16,C18:C19,C21:C22,C24:C25,C27:C28 les décaseurs (du premier au dernier disponible)

Merci d'avoir prit le temps de lire jusqu'au bout

j'oubliais, le samedi la valeur F1 se modifie et donc les valeurs "import" sont différentes

Je joint un fichier qui ne tiens pas compte de cette particularité

Cordialement

6trame-pause.xlsm (178.05 Ko)
Rechercher des sujets similaires à "adaptation projet vba"