Userform et tableau

"Si oui, une idée à développer :
- Dans votre userform 2 on ajoute une liste des noms selon colonne A et une case à cocher en regard de chaque nom.

- vous cochez les noms qui sont en grève

- une fois terminé, le bouton Ajouter, ira ajouter la nouvelle colonne avec la date et mettra en couleur le nom qui est coché"

vous avez lu dans mes pensées !!

dans l'userform2 j'ai fait l'option supprimé en cas d'erreur afin de modifier les agents grévistes ou non.

pour compléter : je n'ai pas encore rentré une donnée très importante : la quote-part/agent du total des TH qui me servira à repartir équitablement le coût de la grève journalière/agent. A l'origine c'est une formule excel que je dois transformer en code vba 😞.

dans l'userform2 j'ai fait l'option supprimé en cas d'erreur afin de modifier les agents grévistes ou non.

Ah je pensais que c'était pour supprimer une colonne de date mal ajoutée.

je n'ai pas encore rentré une donnée très importante : la quote-part/agent du total des TH qui me servira à repartir équitablement le coût de la grève journalière/agent. A l'origine c'est une formule excel que je dois transformer en code vba

N'allez pas trop vite avec vos formules. Je pense que le principal est de d'abord bien compléter les feuilles via les Usf
Puis ce n'est pas nécessaire d'avoir chaque fois un code pour vos formules. Surtout qu'un formule vous pourrez toujours la modifier plus facilement que d'aller par un code VBA.


Si vous voulez, je vais préparer quelque chose avec cette liste (type Listview) dans l'USF2. Je vous montrerai une fois terminé. ok pour vous ?
Combien de noms pouvez-vous avoir en colonne A. Dans votre ancien fichier il y en avait 19

bonsoir,

oui OK pour moi userform2.

il peur y avoir jusqu'à 25 agents dans une équipe.

pour le bouton supprimer:

il était prévu à l'origine pour supprimer une colonne en entière mais après réflexion il faut que je puisse corriger une erreur....

salut j'ai pas trop eu le temps de travailler dessu aujourd'hui mais pourquoi pas un truc qui ressemble à ca pour l'userform2

image

Je vois que vous avancez mais attention que pour les format d'USF si vous faites de votre coté et moi du mien, on ne va jamais y arriver.

Bien qu'il est vrai que j'ai avancé alors que vous n'aviez pas répondu à ma question dans mon précédent post.
Voici le format d'USF dont je vous ai parlé

presse papier01

Cela fonctionnerait comme ceci :
- à l'ouverture, cela affiche ce que vous avez en colonne A et B de la feuil2 (exemple dans la vue ci-dessus)
- une fois la date et le quart complété, vous cochez les noms concernés dans votre journée
- le click sur Ajouter aurait les actions suivantes :
1. Ajout d'une colonne pour la date en feuil2
2. Ajout d'une couleur orange dans la cellule concernée par le nom et la colonne ajoutée. (
NB : J'ai repris l'orange comme c'était le cas dans votre 1er fichier)
La somme de la ligne serait calculée dans une colonne à droite de votre tableau et ce, en fonction de la couleur orange via un code FUNCTION Sommesicouleur
Cela donnerait ceci :

image

Donnez votre avis avant d'avancer plus loin.
Je vous posterai le fichier bien entendu après quelques contrôles que je dois encore finaliser afin de partir sur ce fichier pour avancer dans votre projet.

C'est différent de ce que vous me montrez mais si vous devez rajouter un nom il sera chargé dans la liste. Dans votre cas, vous devriez rajouter une textbox , des cases à cocher et revoir le code. Mé bon, au final c'est à vous de voir

Bonjour à tous

Juste une remarque.

Il me semblait que le modèle objet des listobjects n'est apparu dans VBA qu'avec 2010 mai je vois 2007 dans le profil de brice2b

@Brice2b : peux-tu confirmer ta version Excel ? Merci.

Bonjour 78Chris,

Oui je savais cela mais c'est la version d'excel dans son profil qui n'est pas correcte.
Il utilise une version plus récente au vu des fichiers et vues qu'il a postés précédemment.

bonjour Dan et Chris,

désolé pour la réponse tardive mais beaucoup de boulot ce weekend ...

je n'ai pas avancé tant que ça, j'ai surtout fait de la mise en forme.

la présentation de l'userform2 est vraiment bien je voulais faire quelque chose de ressemblant mais je n'y était pas arrivé.

je n'arrivé pas a rajouter une colonne avant une colonne totale !

Désolé Chris effectivement mon excel est un excel 2021

Bonjour

je n'ai pas avancé tant que ça, j'ai surtout fait de la mise en forme.
La présentation de l'userform2 est vraiment bien je voulais faire quelque chose de ressemblant mais je n'y était pas arrivé.

attention que si je vous poste le fichier avec ce que j'ai réalisé, il faudra repartir de celui-là pour avancer plus loin

salut ,

oui je pense que vous êtes beaucoup plus avancé et en plus votre userform2 est beaucoup plus pratique que ce que j'ai pu essayer de realiser

En effectuant un contrôle lors de l'ajout de colonne, je me demandais où doit se placer la nouvelle colonne. Est-ce au début ou à la fin du tableau ?

Autre point, est-ce que vous devez aussi avoir la possibilité de vide le tableau en feuil2 ?

bonsoir Dan, comment allez-vous ?

ce sont 2 bonnes questions.

pour la colonne je pense que la fin du tableau me semble plus logique.

pour la 2ème je n'y avais pas vraiment pensé, puisque je vide les 2 tableaux en même temps avec le bouton en feuille 1 mais ça me fait pensé que j'ai pas vérifié si avec mon userform1 je peux modifier un agent ...

bonne soirée

bonjour

pour la colonne je pense que la fin du tableau me semble plus logique.

Ok

pour la 2ème je n'y avais pas vraiment pensé, puisque je vide les 2 tableaux en même temps avec le bouton en feuille 1 mais ça me fait pensé que j'ai pas vérifié si avec mon userform1 je peux modifier un agent ...

Il suffit de prévoir une modification. A voir plus tard. Pour l'instant je ne suis que sur l'USF 2 pour réussir à mettre tout sur un seul tableau

Pour conserver l'esprit de votre fichier d'origine j'ai ajouté une formule en ligne 2 qui récupère l'indemnité prévue dans la feuille DATA
Le tableau en feuil se présenterait comme ceci

image

Le montant en ligne vient d'une formule
La période est donnée par le code lors de l'ajout de colonne
Le total en fonction de couleur orange est donné par un code qui exécuté lors de l'ajout de colonne

Après en utilisation on peut masquer les lignes 2 et 3

Votre avis ?

bonsoir,

le masquage des ligne 2/3 n'ai pas nécessaire je pense, à voir...

sinon vous avez bien compris l'esprit de l'ancien fichier, c'est tout à fait ça pour le total de fin de ligne.

et c'est le même principe pour un total de fin de colonne.

bonne fin de soirée et merci

Bonjour,

Voici le fichier en retour avec les modifications suivantes dans l'Userfom 2 :
- ajout un objet liste qui reprend les données des colonnes A et B de la feuil2
- Pour ajouter, vous devez compléter la date, le quart et cocher les noms concernés dans la liste

- le bouton ajout

--> ajoute une colonne avec la date et le montant horaire de base de l'indemnité (feuille DATA)
--> ajoute la couleur orange suivant les noms cochés dans la liste. Donc si pas de noms cochés, aucune couleur orange ne sera mise
--> Réactualise la liste, la textbox, la combo1 et la combo2 pour ajouter la nouvelle date (pour le bouton bouton supprimer)

- le bouton Supprimer :
--> permet de supprimer la colonne choisie dans la combobox2
--> réactualise la combobox et la liste suite à suppression

- le bouton fermer
Pour décharger l'usf. La fermeture par la croix en haut à droite est désactivée

NB :
- Le module 1 reprend le code d'ouverture USF1 et le code
- Le module 2 concerne le calcul suivant couleur Orange
- Le module 3 reprend des codes que j'ai désactivés et ne sont pas utiles pour l'instant ou seront supprimés plus tard

J'espère que cela vous convient mais faites quelques tests sur cette USF2
Je n'ai pas encore regardé l'USF1.

Attention à bien repartir de ce fichier uniquement

16greve013-1.xlsm (58.67 Ko)

salut dan,

après un test vite fait, je constate quelque bug, certain que j'ai pu vite corrigé car il n'etait que des fautes de frappe je pense dans le code .

mais certains sur lesquelles je ne m'y suis pas penché encore

image

quand je rajoute un jour de gréve et que je coche un agent il prend automatiquement en plus l'agent qui etait en gréve le jour d'avant

exemple le 29/11 seul était en gréve l'agent 1 le 30?11 seul était coché l'agent2 ...

le bouton raz qui est en feuil1n'efface plus le tableau en feuil2

et il ne fait pas les calculs ?

sinon c'est exactement ce qu'il faut

je constate quelque bug, certain que j'ai pu vite corrigé car il n'etait que des fautes de frappe je pense dans le code .

Quels bug ?


quand je rajoute un jour de gréve et que je coche un agent il prend automatiquement en plus l'agent qui etait en gréve le jour d'avant
exemple le 29/11 seul était en gréve l'agent 1 le 30?11 seul était coché l'agent2 ...

Effectivement je n'avais pas vérifié ce point. Désolé ...

Allez dans le code Private Sub CommandButton1_Click() et faites ceci

1. Juste en dessous de la ligne col = .ListColumns.Count - 1, ajoutez cette ligne

.ListColumns(col).DataBodyRange.Interior.Color = xlNone

2. Plus bas, désactivez les 4 lignes juste en dessous de la mention "Ajout formule", donc depuis le With jusqu'au End with (vous pouvez même les supprimer car j'avais préparé ces lignes pour ajouter la formule par copier coller. Mais ce n'est ^plus nécessaire)


le bouton raz qui est en feuil1n'efface plus le tableau en feuil2

je vous ai écrit que je n'avais pas touché à l'USF1... donc ce point reste à faire une fois que tout fonctionne pour l'USF2


Edit : Pour les calculs, dans le code , Private Sub CommandButton1_Click(), remplacez cette ligne

Feuil2.Cells(.HeaderRowRange.Row + 1, col).FormulaR1C1 = "=calcul_cout_greve(R2C,RC2)" 'formule de calul cout

Il faut mettre un 2 derrière le C de RC

NB : sur votre feuille on voit deux boutons l'un sur l'autre, pourquoi ?

salut dan ,

wahou réponse super rapide, je suis pas chez moi je ferai les modifications un peu plus tard et je vous dirai ce qu'il en est.

pour le petits bug, effectivement si vous n'avez pas utilisé l'userform1 vous n'avez pas pu le voir.

en ajoutant un agent depuis l'userform1 j'avais un code erreur (je ne sais plus lequel, il y a avait juste une erreur de frappe dans le code ( il y avait tabl3 au lieu de tabl4 ) . Rien de grave puisque je l'ai vu 😁.

j'ai oublié aussi quand je supprime un jour de grève depuis userform2 le type de quart et le chef ne suivent pas (pas de décalage vers la gauche, j'ai pas testé comment ça réagit si je rajoute une journée...

il y a avait juste une erreur de frappe dans le code ( il y avait tabl3 au lieu de tabl4 )

Ah juste c'est que j'ai modifié dans le gestionnaire de formule le nom de tableau. Mais je regarderai plus tard quand je serai sur l'usf1


Il faut aussi modifier encore une chose dans le code Private Sub CommandButton1_Click()
Au début du code, allez à la ligne --> If CDate(TextBox1.Value) =....... et remplacez-là par celle-ci

If CDate(TextBox1.Value) & "/" & Left(ComboBox1.Value, 2) = Mid(Cells(4, i), 1, Len(Cells(4, i)) - 3) & "/" & Left(Cells(3, i), 2) Then MsgBox "Cette date existe déjà", vbInformation, "Erreur Date": Exit Sub

j'ai oublié aussi quand je supprime un jour de grève depuis userform2 le type de quart et le chef ne suivent pas (pas de décalage vers la gauche, j'ai pas testé comment ça réagit si je rajoute une journée..

Ok. Dans le code de suppression (Private Sub CommandButton3_Click()), remplacez les deux instructions Clearcontents par ceci

.Delete Shift:=xlToLeft
Rechercher des sujets similaires à "userform tableau"