XL 2016 Affiner codage pour un meilleur fonctionnement.

pompaero

XLDnaute Impliqué
Bonjour le forum,

Après avoir bien avancé sur un projet de planning que je tente de faire seul (un peu d'aide tout de même sur ce forum) et avant de le finaliser totalement, j'aimerai un coup pouce afin de vérifier, voir améliorer quelques procédures pour accélérer l'enregistrement.
Avant, il y a 2 ou 3 points à résoudre que je n'arrive pas à faire, Pourriez-vous m'aider la dessus ?
Dans Bouton "Valider" :
1) l'alerte de la Listbox1 non sélectionné ne fonctionne pas (alors que la listbox2 fonctionne).
2) la vérification de données dans la BDD ne fonctionne pas non plus (juste après le point 1 dans le code du bouton)
3) En gardant le même principe de fonctionnement du formulaire, j'aimerai, si possible, pourvoir enlever les Unload Me puis UF_Planif.Show après chaque enregistrement afin d'éviter la fermeture puis réouverture du formulaire à chaque manipulation.
Est-ce possible ?
Puis ensuite nous verrons pour la vitesse d’exécution des procédures.
Merci à vous.

Cdt
pompaero
 

Pièces jointes

  • Test Planning.xlsm
    465 KB · Affichages: 29

pompaero

XLDnaute Impliqué
Bonjour Bebere,

Oui ça y ressemble. Je rame depuis 2 jours la dessus, je ne sais pourquoi !!!!!
Je vais essayer de manière à que Listbox1 fonctionne, c'est bien mon objectif.
Je vais me calmer un peu et regarde à ça.
Merci de ton aide.
pompaero
 

pompaero

XLDnaute Impliqué
Bonjour Bebere,

Bon, depuis 2 jrs, j'ai beau essayer, essayer et essayer je n'y arrive pas.... Grrrrrrrrrrrrrrrrrrrr
J'ai pris modèle sur le fichier précédent mais rien y fait, Comme tu verras, j'ai tenté d'ajouter le num de la ligne au change de CbxRech.
J'ai repris exemple sur le code modifier en y ajoutant
VB:
L = Me.ListBox1.List(Me.ListBox1.ListIndex, 6)
chose qu'il n'y avais pas avant.
ET après je ne vois plus quoi faire de mon côté.

pompaero
 

Pièces jointes

  • TestCompteurV2.xlsm
    43.4 KB · Affichages: 3

Bebere

XLDnaute Barbatruc
bonjour
Pompaero
ligne à corriger dans CBxRech_Change
VB:
      .List(.ListCount - 1, 5) = J 'Ws.Range(Row & J) '<--- NE MARCHE PAS !!!!!
ensuite dans CmdOk_Click
Code:
                L = Me.ListBox1.List(Me.ListBox1.ListIndex, 5)

il y a tjrs une colonne,tu confonds le nbre de colonnes et les index des colonnes
ex nbre de colonnes 3,index de 0 à 2
 

ChTi160

XLDnaute Barbatruc
Bonjour pompaero
Bonjour Bebere ,le Forum
le fichier Modifié (mais bon !)
j'ai remplacé un -1 (Largeur de la colonne qui contient la référence a la Ligne Source ) par 0
pourquoi ne pas mettre la mise en forme de la ListBox1 dans le
VB:
Private Sub UserForm_Initialize()
  Set Ws = Sheets("CompteurInitial")
With Me
  With .ListBox1 'Ici
       .ColumnCount = 6
       .ColumnWidths = "100;60;40;40;30;0" 'Ici 0 au lieu de -1
  End With
    ChargeCBxAgentActif
    ChargeCBxRechCompteur
       .TextBox1.SetFocus
End With
End Sub
une fois pour toute.
et donc le
VB:
Private Sub CBxRech_Change()
Dim J As Long
  With Me
   With .ListBox1
        .Clear 'On efface la Listbox
    For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
If Ws.Range("C" & J) = Val(CBxRech) Then 'colonne C
      .AddItem Ws.Range("A" & J)
      .List(.ListCount - 1, 1) = Ws.Range("B" & J)
      .List(.ListCount - 1, 2) = Ws.Range("C" & J)
      .List(.ListCount - 1, 3) = Ws.Range("D" & J)
      .List(.ListCount - 1, 4) = Ws.Range("E" & J)
      .List(.ListCount - 1, 5) = J
End If
    Next J
  End With
      .CmdOk.Caption = "MODIFIER"
End With
End Sub
jean marie
 

Pièces jointes

  • TestCompteurV2-Chti160.xlsm
    40.6 KB · Affichages: 3

pompaero

XLDnaute Impliqué
Bonsoir Chti160, Bebere,
Le forum,
Grand merci Mrs les pros...
je pense qu'en prenant le code du formulaire précédent, il se serait faciliter la vie
C'est vrai, j'ai voulu faire le grand pour essayer de faire seul mais encore loupé :(
Oui effectivement j'ai mélangé les colonnes tableau et index.
Sinon, le principe de Chti160 me convient, donc je l'ai gardé et mis en place.
Me reste plus à créer une alerte pour éviter les doublons et serai au bout du projet.
Encore merci à vous pour cette aide si précieuse. bonne soirée.
pompaero
 

pompaero

XLDnaute Impliqué
Bonjour,

Désolé je reviens la charge..
Après recherche pour effectuer l'alerte des doublons, je suis parti sur l'idée avec Application Countifs.
Dans le bouton Cm_Ok "Valider" j'ai tenté un code (vu en exemple sur le net qui fonctionne) mais au lieu d'afficher le MsgBox cela multiplie les lignes à enregistrer.
j'ai essayé de changer de place le Next de c code mais rien y fait.
Est-il possible de savoir si je vais dans le bon sens ou suis-je à côté de la plaque ??
Merci

pompaero
 

Pièces jointes

  • TestCompteurV3-Chti160.xlsm
    48.1 KB · Affichages: 7

ChTi160

XLDnaute Barbatruc
Bonjour pompaero
Bonjour le Fil ,le Forum
pourrais tu expliquer (eh oui ! )
la démarche qu'il faut faire pour ajouter ou modifier les données qui amené a la vérification si doublon ?
merci
j’espère être clair lol
jean marie
 

pompaero

XLDnaute Impliqué
Bonjour Chti160,
Désolé,
Mon idée est d'éviter d'avoir un double sur l'ensemble des colonnes A, B, D, E, si doublon garder la ligne de la base et ne pas prendre en compte le ou les item concerné du formulaire.
Parce que les compteurs hr et cp peuvent être multiple pour les agents en CDD, et la base me sert afin de calculer automatiquement dans un tableau leur heures mensuellement et annuellement.
J'espère être logique sur ce point, Lol
pompaero
 

ChTi160

XLDnaute Barbatruc
Re
je pense que moi je ne suis pas Clair
car ça j'avais compris Lol
Mon idée est d'éviter d'avoir un double sur l'ensemble des colonnes A, B, D, E, si doublon garder la ligne de la base et ne pas prendre en compte le ou les item concerné du formulaire.
je voulais dire comment tu procède avec ton Userform(toi tu dois le savoir) mais pas évident pour moi.
En plus , tu as , je crois , ta ListBox en MultiSelect , comment avec un TextBox par valeur Annee, Heure ,Cp etc etc
Tu procèdes , pour la Comparaison à moins que tout le monde a le Même compteur etc etc
merci!
jean marie
 

pompaero

XLDnaute Impliqué
Re,
excuse,
oui listbox2 est multiselect
On sélectionne un ou plusieurs agents dans listbox2 qui on le même Datepériode, Heure, Cp, on valide, puis recommence si nécessaire pour un ou des agents restant qui on soit datepériode ou heure ou cp differents.
jusqu'à temps que tout la liste (listbox2) soit renseigné.
pompaero
 

Discussions similaires

Réponses
4
Affichages
209
Réponses
46
Affichages
3 K
Réponses
26
Affichages
857
Réponses
26
Affichages
1 K

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 129
dernier inscrit
Atruc81500