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
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