petit problème visuel sur retour infos checkbox

mikepers

XLDnaute Occasionnel
bonjour Le forum, Tous mes voeux.
Un petit souci sur un projet VBA, une base de donnée qui tourne assez bien. ayant plusieurs solutions possibles lorsque l'on renseigne les données, j'ai plusieurs checkbox qui selon les choix sont enabled ou disabled ( pour éviter des erreurs. Des choses assez simples du type :

If CheckBox1.Value = True Then
Image2.Visible = True
CheckBox3.Enabled = True
CheckBox2.Enabled = False
CheckBox8.Enabled = False


End If
If CheckBox1.Value = False Then
Image2.Visible = False
CheckBox3.Value = False
CheckBox2.Enabled = True
CheckBox8.Enabled = True

End If
tout fonctionne très bien dans la saisie base de donnée. par contre lorsque je récupère les données via une listbox, le retour d'info visuel est complètement aléatoire, alors que le code semble correct certaines checkbox devant renvoyer la valeur "enabled=false" restent enabled dans l'userform, ou l'inverse, comme si la listbox renvoyait bien les bonnes valeurs boleenes stockées dans la base ( pas d'erreur à ce niveau ) mais en ce qui concerne " enabled-disabled", visuellement c'est carément le bazard sur l'userform... lorsque je décoche manuellement et que je re-coche, la le code fonctionne. C'est comme si à la lecture de la listbox le code enabled-diabled des checkbox n'était pas bien lu.
je vous joint le code de la listbox. Peut être y a t'il un problème de focus je ne sais pas.. Sur d'autres bases de données je n'ai pas ce type de problème. J'ai probablement une erreur que je ne vois pas. PS suis sous Office 2010. Bien à vous !

Private Sub ListBox2_Change()
'retour info listbox
Application.ScreenUpdating = False
Sheets("table").Visible = True
Sheets("table").Select

Dim L As Integer, i As Integer
L = Range("A32767").End(xlUp).Row
For i = 2 To L
If Range("A" & i) = ListBox2.Value Then

TextBox1.Value = Range("A" & i).Value ' TITRE
TextBox2.Value = Range("B" & i).Value ' retour distributeur
TextBox3.Value = Range("C" & i).Value ' retour date arrivée jour
TextBox4.Value = Range("H" & i).Value 'retour prise en charge OP arrivée
TextBox5.Value = Range("I" & i).Value 'retour date départ JOUR
TextBox6.Value = Range("M" & i).Value 'retour prise en charge OP départ
TextBox7.Value = Range("N" & i).Value ' retour notes
TextBox9.Value = Range("O" & i).Value ' retour date arrivée mois
TextBox10.Value = Range("P" & i).Value ' retour date arrivée année
TextBox11.Value = Range("R" & i).Value 'retour date départ ANNEE
TextBox12.Value = Range("Q" & i).Value 'retour date départ MOIS
TextBox14.Value = Range("X" & i).Value ' Générique

CheckBox1.Value = Range("D" & i).Value 'retour livreur arrivee
CheckBox2.Value = Range("E" & i).Value 'retour postal arrivee
CheckBox3.Value = Range("F" & i).Value 'retour BL arrivée
CheckBox4.Value = Range("G" & i).Value 'retour enveloppe arrivée
CheckBox5.Value = Range("J" & i).Value 'retour départ livreur
CheckBox6.Value = Range("K" & i).Value 'retour départ postal
CheckBox7.Value = Range("L" & i).Value 'retour bon de reprise
CheckBox8.Value = Range("S" & i).Value 'demat

ComboBox2.Value = Range("T" & i).Value 'TYPE DE DEMAT


End If


If ListBox2.Value = "" Then
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox11.Value = ""
TextBox12.Value = ""
TextBox14.Value = ""
TextBox1.Enabled = True
TextBox2.Enabled = True
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
ComboBox2.Value = ""


End If

Next


Sheets("open").Select
Sheets("table").Visible = False
Application.ScreenUpdating = True

End Sub
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Dans les tests utilisez If CheckBox1.Value Then au lieu de If CheckBox1.Value = True Then
et If Not CheckBox1.Value Then au lieu de If CheckBox1.Value = False Then

Parce que
True = True c'est True, et
False = True c'est False, par conséquent
CheckBox1.Value = True c'est CheckBox1.Value tout seul.
D'autant de plus que les Boolean ont leur propres opérateurs de comparaison. Si ça avait un sens il faudrait en principe If CheckBox1.Value Eqv True Then
En tout cas inutile de faire If CheckBox1.Value = True = True = True = True = True = True Then
Ça marche mais ça n'apporte rien et c'est complètement absurde.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonsoir mikepers
Bonsoir le Fil ,le Forum
le fichier avec dans le Userform1 ,des OptionButton plutôt que des Checkbox .
cela évite plein de code Inutile .
Pas tout compris dans la démarche lol
les deux controls Frames : Arrivée et Départ sont ils utilisé en même temps , si non comment ?
j"ai remarque que tu utilises beaucoup La Propriété RowSource des controls pas très pratique et réducteur dans l'utilisation des Données de ces Controls.
pourquoi n'utilises tu pas ,par exemple . Un Controls Calendrier , plutôt que de rentrer les dates de cette façon (pas évident de gérer les saisies)
Bonne fin de Soirée
Amicalement
Jean marie
 

Pièces jointes

  • gestion_dcp Chti160-1.xlsm
    95.5 KB · Affichages: 27
Dernière édition:

mikepers

XLDnaute Occasionnel
la logique d'utilisation :
- un DCP ( c'est un film cinéma au format pro ) peut arriver soit par livreur ( disque dur physique ), soit par la poste ( disque dur physique ), soit il arrive par téléchargement ( dématérialisé ). 3 options d'arrivée donc. s'il arrive par livreur, il a en plus l'option avec ou sans bon de livraison. S'il arrive par la poste, il a en plus l'option d'une enveloppe de retour jointe ou non. S'il arrive en dématérialisé, il n’aura pas de gestion de sortie et sera juste écrasé des serveurs. pour les arrivée physique, il Y a une gestion de sortie ( idem soit livreur ou postal ). Un fois l'exploitation du film terminée, on écrase de la base de donnée mais on logge certaines infos.
 

ChTi160

XLDnaute Barbatruc
Re
ai je bien compris
tu complètes des deux Parties "Arrivée" et "Départ" en même temps ?
si tu entres un nouveau film tu remplies la partie "Départ" en fonction de l'Options d'arrivée ?
la Date de Départ a t'elle un rapport avec celle d'arrivée ? Ex : x jours plus tard .
y a t'il une liste des personnes susceptibles de réceptionner les Films ? si Oui combien ?
Si on remplis la date d'arrivée via un calendrier , pourrait on mettre cette Date telle quelle dans la base de Données ex : 03/01/2018
peux tu utiliser les DtPicker ? (c'est un Control qui affiche un Calendrier)
je n'ai pas encore tout compris dans le Fonctionnement Lol
merci §
Bonne fin de Journée
Amicalement
Jean marie
 

Pièces jointes

  • gestion_dcp Chti160-1-2.xlsm
    103.1 KB · Affichages: 23

mikepers

XLDnaute Occasionnel
hello
en fait il s'agit juste d'une gestion de stock (entrée-sortie)
simplement lorsqu'on efface de la base de donnée on log des infos pour pouvoir revenir sur un historique.
- si arrivée en dématérialisé : envoi de serveur à serveur, fera partie de la base donnée mais pas de départ physique à gérer)
- si arrivée en physique : gestion de sortie à gérer ( livreur ou postal ).
en fait si un film arrive en physique : il est ingesté ( copié ) dans des serveurs, prêt à la projection. Le disque dur original est alors conservé puis repris par la suite par un livreur ( ou départ postal ) qui le renverra chez le distributeur . le but est de mettre à disposition d'une équipe un outil pour mettre à jour et suivre les types d'arrivée des films, gérer leur éventuel départ, puis loger des infos de pour pouvoir consulter un historique.
bien à vous
ps
"la Date de Départ a t'elle un rapport avec celle d'arrivée ? Ex : x jours plus tard ." oui effectivement : la date de départ ne peut être inférieure à celle d'arrivée -)
"peux tu utiliser les DtPicker ? (c'est un Control qui affiche un Calendrier)" - hélas non pour l'instant, mon service informatique n'est pas très chaud...je les relance quand même...
 

ChTi160

XLDnaute Barbatruc
Re Michel
Quand tu pourras (Rentré) lol
Bon je récapitule tu utilises
soit l'ARRIVEE
soit le DEPART
j'ai fait un fichier ou j'ai inclus un Calendrier de ma fabrication .
tu peux entrer les dates dans les deux TextBox Dates (Arrivée et Départ)
Ne pourrais ton pas avoir accès a l'une ou l'autre de ces deux rubriques ("ARRIVEE" "DEPART")
via un Multipage qui aurait par exemple 3 feuilles Une feuille ACCUEIL ,une ARRIVEE et l'autre DEPART
Dans l'attente
Bonne fin fin de soirée
Amicalement
jean marie
 

Pièces jointes

  • GESTION FILMs Chti160.xlsm
    172.9 KB · Affichages: 24

ChTi160

XLDnaute Barbatruc
Bonsoir mikepers
Bonsoir Le Fil ,Le Forum

Peux tu me dire si tu as une liste des personnes habilitées à réceptionner ou Finaliser les opérations ? ce qui permettrait de mettre un Combobox (liste), pour sélectionner la personne .
Bonne fin de journée
Amicalement
Jean marie
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T