Erreur code de modification

Bonjour à tout le forum,

je vous adresse mes meilleurs voeux pour cette nouvelle année et surtout une bonne santé à toutes et à tous.

Dans mon fichier ci-joint qui avait été créé par Mimimathy, que je Salue par cette occasion, il y a des erreurs.
Alors pour commencer lors de la validation des saisies du UserForm il me place le tout hors du tableau, lorsque celui-ci est vide.

Après, si par exemple je voudrai modifier une ligne choisie dans la listbox, il me corrige bien les modifications dans le tableau congés mais dans le tableau planning il ne fait pas les bonnes choses.

A la fin du code du listbox_click se trouve la ligne SupprPlanning, qui active le code pour supprimer les changements dans le planning. Mais je ne suis pas sûr si cela est bien placé et je ne suis pas sûr non plus si ce code fonctionne bien.

Je pense, si je puis dire cela, que le code SupprPlanning n’est pas correct.
Classeur essai.xlsm (99,7 Ko)

Alors je vous remercie d’avance pour votre aide avec ce problème.

Cordialement
Rubis

1 « J'aime »

Bonjour

Après plusieurs tests pour moi tout fonctionne correctement

Onglet « PLANNING SALARIES » vide :

Cette saisie réalisée :

Que je valide :

Onglet « PLANNING SALARIES » alimenté de celle-ci :

Je modifie le nom du salarié après avoir avoir sélectionné cet enregistrement dans la listebox pour lui affecter « Salarié B » au lieu de « Salarié A » après activation du bouton « MODIFIER » j’obtiens ceci onglet « PLANNING SALARIES » :

La modification a bien été effectué correctement

Je ne vois pas ce qui dysfonctionne

Merci de m’en dire plus

Bonjour,

Merci pour le retour.

Pour moi le premier point qui fonctionne pas chez moi, c’est, lorsque le tableau de l’onglet congés est vide et que je saisi le premier enregistrement, il me le place à la première ligne en dessous du tableau.

Le deuxième point qui ne fonctionne pas correctement;

Lorsque je saisi par exemple plusieurs enregistrements et que je modifie plusieurs de suite, il arrive qu’il ne change rien dans le tableau du planning ou alors comme à l"instant chez moi, il supprime carément des cases CP d’un salarié dans le tableau planning.

C’est à dire comme on peut voir sur les enregistrements du fichier ici joint, que j’ai modifié les jours du salarié C et quand j’ai validé il m’a effacé les cases CP du tableau planning du salarié E.

Alors je ne comprends pas. Est ce que la ligne SupprPlanning est bien à sa place dans le code de ListboxClick ?

Merci FFO
Classeur essai.xlsm (106,4 Ko)

Lorsque j’ai réalisé mes tests que je t’ai décris dans les copies d’écran l’onglet « CONGÉS » et l’onglet « PLANNING SALARIES » ont été au préalable vidés de toutes leurs données
Tu as pu constater le résultat que j’ai obtenu après saisie
I’onglet « PLANNING SALARIES » a été correctement complété ou modifié
Je ne vois pas où se situe les anomalies
Donnes moi exactement l’environnement et les manipulations que tu effectues avec quelles saisies car ce que moi je réalise ne traduit aucun dysfonctionnement

Re,

Si le tableau de l’onglet CONGES est vide et que tu saisi le premier enregistrement il le place à la première ligne en dessous du tableau.

Ensuite je crois qu’il y a une erreur avec l’appel du code SupprPlanning. Cet appel se trouve à la fin du code " Private Sub ListBox1_Click() ".
Et je pense que c’est ce code qui pose problème. Car a chque fois que je clique dans la listbox et que je ressort il m’efface des CP dans le tableau de l’onglet PLANNING SALARIES.

« Si le tableau de l’onglet CONGES est vide et que tu saisi le premier enregistrement il le place à la première ligne en dessous du tableau. »
C’est que j’ai réalisé sans avoir ce rėsultat les 2 onglets « CONGÉS » et "PLANNING SALARIES " ont été correctement alimenté
Je n’ai pas le même constat que toi

Pour le deuxième point je n’ai pas encore analysé étant focalisé sur l’alimentation des onglets par le formulaire de saisie

Je comprends pas ! chez moi dès que le tableau de l’onglet CONGES est vide le premier enregistrement il le place comme indiqué en dessous !!

va savoir !

Donnes moi le fichier en l’état lors de ta saisie avec les données du formulaire exactes que tu valides et qui engendre le désordre que je puisse à l’identique réaliser la même opération et de voir moi ce que j’obtiens dans les onglets

Le voici
Classeur essai.xlsm (105,2 Ko)

Et les données de saisie qu’elles sont elles ?
Il me les faut toutes telles que dans le formulaire tu les intègres dans chaque fenêtre de celui-ci afin d’être à l’identique
Je dois me retrouver dans la même situation pour tenter de constater le désordre que tu obtiens

c’est tout simple;

je choisi un salarié dans le combobox1
je sais dans le textbox5 le nombre de jours voulu
il affiche ensuite dans les textbox2 et 3 les dates de début et fin.
On peut aussi, si c’est une partie de journée ajouter dans les combobox2 et 3 les heures de début et fin.

Voila c’est tout.

Si je fais cela et que je valide il me place le tout en dessous du tableau28 de l’onglet CONGES.

Admettons que je fasse cela avec 2 ou 3 ou même 4 salariés et que ensuite je voudrai modifier les dates de certains salariés je clique alors dans la listbox pour choisir le salarié et au moment ou je clique sur modifier il ne change pas les dates dans le tableau de l’onglet PLANNING SALARIES.

Et si je retourne encore une fois dans la listbox pour choisir un autre salarié et que je décide de ne rien faire alors je clique sur quitter et à ce moment la je vois qu’il m’a supprimer les dates de ce dernier salarié.

C’est pour cela que je t’avais indiqué que l’appel du code SupprPlanning se situe à la fin du code du Listbox1_Click

Avec mes propres données faute d’avoir les tiennes je viens de tester ton tout dernier fichier transmis
J’ai intégré avec le formulaire de saisie le salarié « Salarié C » :

Voici ce que j’ai obtenu dans les 2 onglets :

Aucune anomalie

Même opération onglets préalablement vidés :

Aucune anomalie

Je ne peux mieux te répondre
Désolé

si, il y a une anomalie. ce que tu as validé se trouve en dessous du tableau de l’onglet CONGES !

on voit très bien que les données son placées en dessous ! non ?

Non ils sont sur la première ligne du tableau
L’instruction dans le code est claire concernant la recopie de la saisie :

Set Wtc = Sheets(« CONGES »)
Dl = Wtc.Range(« A » & Rows.Count).End(xlUp).Row + 1

Numéro de la ligne de la première cellule en partant du bas avec une donnée ou faisant partie d’un tableau cette instruction :

Wtc.Range(« A » & Rows.Count).End(xlUp).Row

au quelle on rajoute 1 :

Wtc.Range(« A » & Rows.Count).End(xlUp).Row + 1

Dans ton cas la ligne 2 que tu souhaites alimenter est la dernière d’un tableau donc n’est pas cibler par les lignes d’instructions citées

On peut contourner cette situation pour l’alimenter en rajoutant ces lignes de codes en suivant :

If Dl =3 And Wtc.Range("A2") = "" Then
Dl =2
End If

Tu trouveras cette adaptation avec le fichier ci-après

A toi de voir si cela te convient mieux

Pour cette difficulté :

"Ensuite je crois qu’il y a une erreur avec l’appel du code SupprPlanning. Cet appel se trouve à la fin du code " Private Sub ListBox1_Click() « .
Et je pense que c’est ce code qui pose problème. Car a chque fois que je clique dans la listbox et que je ressort il m’efface des CP dans le tableau de l’onglet PLANNING SALARIES. »

C’est un comportement tout à fait normal

La sélection d’un enregistrement dans la listebox est prévu pour modifier celui-ci
Qui dit modification dis annulation de ce qui est intégré pour réintégration avec données corrigées
C’est la philosophie d’une démarche de toute modification
Donc tout enregistrement appelé à être modifié vois ces enregistrements supprimés pour les retrouver corrigés
Il est donc tout à fait normal à la sélection dans la listebox d’un enregistrement que celui-ci disparaisse de l’onglet « PLANNING SALARIES »
C’est l’activation du bouton « MODIFIER » qui le réintègre avec ces nouveaux paramètres mis en place par l’utilisateur
Si on réalise une sélection d’un enregistrement sans apporter une quelconque correction de ses données il faut impérativement avant de fermer le formulaire activer le bouton « MODIFIER » pour qu’il demeure présent dans l’onglet « PLANNING SALARIES »

Voilà donc le fonctionnement du formulaire dans cette approche de sélection dans la listebox qui est à observer

Ton dernier fichier avec ma correction pour utiliser la ligne 3 onglet « CONGES » vidé

Classeur essai.xlsm (107,1 Ko)

Re,

Nickel FFO ! :+1:

par contre :

peut-on alors incorporer l’action ou l’appel du bouton MODIFIER dans le code des boutons ANNULER ou QUITTER afin de ne pas faire d’erreur ?

Merci pour ton retour
Ravi d’avoir correctement répondu à ton attente
Nouvelle version ci-jointe
Après sélection d’un enregistrement dans la listebox les boutons :

« QUITTER »
« ANNULER »
Croix noir du formulaire de fermeture

Sont enrichis d’un message alertant l’utilisateur sur l’appauvrissement de l’onglet « PLANNING SALARIES » de l’enregistrement concerné lui demandant compte tenu de cette situation si l’action en cours doit être ou non effectuée

Fais des tests et dis moi

Classeur essai.xlsm (101,2 Ko)

1 « J'aime »

Re,

je viens de faire une série de tests et cela fonctionne. Je transfère demain matin le tout dans le fichier réel et je testerai encore une fois avant de te donner la réponse. Mais je crois que cela devrait aller.
En tout cas Merci FFO pour le travail effectué sur cette demande. :+1: :+1:

Je te dis à demain en te souhaitant une bonne soirée.
A+

Merci pour cette réponse
Après tous tes tests sur ton fichier définitif si ils sont concluants tu voudras bien valider ma dernière proposition un petit plus bien sympathique
A regarder le cas de plusieurs sélections successives voir si il ne faut pas envisager un dispositif similaire
Bonne soirée

Bonjour,

Merci à toi FFO pour ce joli travail sur ce sujet. :+1: :+1:
Comme convenu je viens d’effectuer ce matin une assez longue série de tests sur le fichier réel et je n’ai constaté aucune anomalie ou autre pour le moment.

2 questions :

  1. Est-ce qu’on ne peut pas supprimer complètement le bouton ANNULER ou non ?

  2. ou alors si on enlève le bouton ANNULER, peut-on mettre un dispositif en place pour ce qui suit ;

si je sélectionne un salarié dans la listbox et que je voudrai sélectionner un autre, est-il possible alors qu’il bloque cette sélection et m’indique le message que tu as mis en place sur le bouton ANNULER ?

A+