PRBL valeur combobox

  • Initiateur de la discussion Initiateur de la discussion TITANIC
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

TITANIC

Guest
bonsoir le forum.
Bon ben j'ai pas tennu ma promesse de vous laisser tranquile 5 minutes ( me revoila avec mes petits soucis...)
j'ai un combobox qui renvoi des données 'date' faisant partie d'une plage nommée ( la plage est définie, mais lors de la mise à jour de la base de donnée,les valeurs à l'interrieur changent de place - tri - ou sont modifiées ou retirées ). Bref, ce combobox me renvoie la liste normalement, mais lorsque je sélectionne une des dates, celle ci s'affiche tout à coup en numéro de série, alors que la liste est déclarée au format date classique. Celà est catastrophique, notament pour la routine de tri qui suit ( données non triées ).
J'ai essayé d'inclure dans le code du combo:

combobox1.dateValue= #dd/mm/yyyy#

ainsi que d'autres essais avec la valeur NumberFormat, mais rien n'y fait !!
à noter: j'ai fait aussi un essai avec un élément de liste modifiable. Ca fonctionne, mais cette fois ci le format date est inversé, m'obligeant à saisir ( mm/dd/yyyyy )pour avoir un retour correct ( pas pratique..)
Quelqu'un reconnait il ce type de problème ??
Un grand merci pour toutes vos aides!
 
Merci pour ta réponse Startus.
Ou places tu le code ?
Je viens de le mettre dans mon module comme:


Private Sub ComboBox3_Change()
ComboBox1.DateValue = CDate(ComboBox3)
End Sub


Mais le débogueur n'apprécie pas !!!
Membre de méthode ou donnée introuvable...
 
Salut Dull.
c'est négatif, il 'inverse' toujours la date.
Du type;
je sélectionne une date dans la liste ( via le combo ), il affiche un n°de série, et passe au bon format date à la perte du focus ( à la limite on peut tolérer ça ), mais lorsque on valide la nouvelle date :
si j'ai sélectionné par ex 02/08/06, il valide alors 08/02/806 dans la liste ( c'est pas le top).
 
En fait la routine qui fonctionne le mieux est :

Private Sub ComboBox3_AfterUpdate()
ComboBox3.Value = CDate(ComboBox3)
End Sub

au niveau de la base de donnée, simplement l'info jour/mois est inversée

+ bien sur le souci d'affichage num série de la date modifiée.
Je trouve pas , c'est infernal !!
 
Je pense que j'ai un problème de boucle car;
le combo renvoi une donnée date ( il y a d'autres textbox et combos qui renvoient des données liée) et ensuite je modifie cette date pour la ré-injecter après modif dansla base de donnée. Il y a peut être un soucis 'lecture seule / édtion' au niveau de la routine ( mais je trouve pô )
 
re re,

Comprends vraiment pas ça devrait marcher fait une compilation des deux:
style

Code:
Private Sub ComboBox3_AfterupDate()
ComboBox3.Value = Format(CDate(ComboBox3.Value), 'dd/mm/yyyy')
End Sub

Dernier essai on sait jamais
 
Toujours rien!
je récapitule une dernière fois, et si ca marche je laisse tomber pour aujourd'ui.
Le contexte ;
a/une base de donnée ( plage nommée ) de 8 colonnes
b/ un userform destiné à la gestion ( 1/ entrer des données 2/ retourner des données pour modification ou retrait de la base.

Les codes:
A/ Combobox de rappel général ( titre ):

Private Sub ComboBox5_Change()
' rappel du titre FA
Dim L As Integer, i As Integer
L = Sheets('liste fa').Range('A32767').End(xlUp).Row
For i = 2 To L
If Sheets('liste fa').Range('a' & i) = UserForm1.ComboBox5.Value Then
UserForm1.ComboBox3.Value = Sheets('liste fa').Range('C' & i).Value
UserForm1.TextBox4.Value = Sheets('liste fa').Range('G' & i).Value
UserForm1.ComboBox1.Value = Sheets('liste fa').Range('D' & i).Value
UserForm1.TextBox2.Value = Sheets('liste fa').Range('F' & i).Value
UserForm1.TextBox12.Value = Sheets('liste fa').Range('B' & i).Value
UserForm1.TextBox13.Value = Sheets('liste fa').Range('E' & i).Value
End If
Next
End Sub

b/ combobox de modif de date: ( ton code )
Private Sub ComboBox3_AfterupDate()

ComboBox3.Value = Format(CDate(ComboBox3.Value), 'dd/mm/yyyy')
End Sub

C/ LE bouton qui valide la nouvelle donée:

Private Sub CommandButton9_Click()
' modification des données
Application.ScreenUpdating = False
Dim L As Integer, i As Integer
L = Sheets('liste fa').Range('A32767').End(xlUp).Row
For i = 2 To L
If Sheets('liste fa').Range('A' & i) = UserForm1.ComboBox5.Value Then
Sheets('liste fa').Range('B' & i) = UserForm1.TextBox12.Value
Sheets('liste fa').Range('C' & i) = UserForm1.ComboBox3.Value
Sheets('liste fa').Range('D' & i) = UserForm1.ComboBox1.Value
Sheets('liste fa').Range('E' & i) = UserForm1.TextBox13.Value
Sheets('liste fa').Range('F' & i) = UserForm1.TextBox2.Value
Sheets('liste fa').Range('G' & i) = UserForm1.TextBox4.Value

End If

Range('A2:H61').Select

Selection.Sort Key1:=Range('C2'), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers

Next
Unload UserForm1
Load UserForm1
UserForm1.Show
End Sub
)))))))))))))))))))))))))))))))))))))))))
merci en tous les cas , pour toutes tes interventions !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
40
Affichages
1 K
  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
158
Réponses
6
Affichages
501
Réponses
8
Affichages
573
Réponses
10
Affichages
705
Retour