VBA : USERFORM // copie de cellule condition date
Bonjour à tous,
Merci pour votre attention sur mon problème !
Alors rapidement : j’ai un peu d’expérience sur Excel, je suis très novice sur le VBA.
Mon objectif est de créer un planning de chantier pour des ouvriers. Chaque ouvrier est envoyé sur un chantier, avec une date de début et une date de fin.
Le tout est modélisé dans un planning ou :
Colonne A3:A20= prénom NOM de l’ouvrier
Ligne 1 : jour de la semaine
Ligne 2 : mois et année
La colonne B1 correspond donc au premier jour de Janvier, B2 affichera « janvier 2019 », et je souhaite qu’en B3 ils soit affiché le chantier (trigramme) sur lequel l’ouvrier en A3 est affecté.
Pour ne pas à avoir à faire des copié collé de chantier dans les cases, j’ai créé un formulaire d’ajout de chantier.
Il se compose de 4 combobox et d’un bouton d’exécution.
L’utilisateur entre le nom de l’ouvrier
La date de début
La date de fin
Le nom du chantier
Ça c’est fait.
Maintenant je souhaite que lorsque l'on clique sur « Staffer ! » le nom de la mission se colle dans toutes les cases de la ligne de l’ouvrier, comprise entre la date de début et la date de fin indiquée.
Ce que je peux traduire par ça :
si la cellule sur la ligne 2 est comprise entre "combobox2" et "comboBox3" alors copier la comboBox1 sur la cellule correspondant à la ligne où la colonne ne A = "combobox4".
Je n’ai aucune idée de la manière dont on peut traduire ça en VBA !
Pouvez vous m’aider s’il vous plaît ?
Merci.
JB
Bonjour,
Quelques images ne sont jamais une bonne idée pour recevoir de l'aide... !
Si ton USF est maitrisé correctement ça ne semble pas bien compliqué :
Si ton combo est trié de la même manière que la Liste des ouvriers, la propriété ListIndex de ton combo "Nom de l'ouvrier" te donne la ligne ou écrire...
iRow = ListIndex + 2Par différence avec la Date [B2] Tu peux déterminer facilement la colonne Début et la colonne Fin :
En petit nègre ça donne :
ColDeb = DateDeb - DateB2 + 2
ColFin= DateFin - DateB2 + 2
Ensuite...
For i = ColDeb to ColFin
Cells(iRow, i) = ComboChantier Value
NextYAPUKA jouer habilement avec CDate pour effectuer tous tes calculs de variables (car tes combos ne renvoient que du Texte, même si en apparence tu y lis une date...
A+
Merci beaucoup !!
Réponse très rapide, et en complément des cours sur votre site les choses s'éclairent peu à peu...
Merci !