[RESOLU]MAJ combobox suite à saisie

nrdz83

XLDnaute Impliqué
Bonjour à tous,

voila dans un Userform1 j'ai une combo_TypeConfections qui est alimenté via ce code

Code:
Private Sub Userform_Initialize()
  DTPicker1.Value = Now
Me.Combo_TypeConfections.RowSource = "Données!Type_Confections" 'Alimente la combobox type de confections
Me.Combo_Destinations.RowSource = "Données!Destinations"  'Alimente la combobox Destinations
End Sub

Lorsque je veux ajouter des nouveaux éléments j'utilise l'Userform2 avec ce code
Code:
Private Sub CommandButton2_Click()
Dim DerLig As Long
  With Sheets("Données")

    DerLig = .Range("E" & Rows.Count).End(xlUp).Row + 1
    .Cells(DerLig, 5).Value = Application.Proper(TextBox1)

  Call mefcConfections ' met en forme la saisie

  Call ClasseTypeConfections 'Classe par ordre alphabétique les saisies
  
  
End With
  'Vide le textbox
  TextBox1 = ""
    
End Sub

Ce que je cherche c'est que la combo_TypeConfections se met à jour lorsqu'il y a de nouvelle saisie.

En cherchant un peu sur le nbet j'ai vu qu'il fallait faire Call Userform.initialize mais en vain je n'y arrive pas.

Pourrais-je avoir un peu d'aide pour résoudre ce problème?

Par avance je vous remercie.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : MAJ combobox suite à saisie

Bonjour,

mets ceci dans la procédure de ton combo, ce dans le module de l'userform :
Code:
UserForm_Initialize

tu peux aussi redéfinir la propriété "rowsource" du contrôle...

bonne journée
@+
 

nrdz83

XLDnaute Impliqué
Re : MAJ combobox suite à saisie

Bonjour pierrot93 et merci pour ton aide

j'ai mis le code ci-dessous à l'emplacement de ma combo, j'ai certainement dû le mettre au mauvais endroit car ça ne fonctionne pas.

Merci de m'aiguiller

Code:
Private Sub Combo_TypeConfections_Change()
'Pour mettre à jour les éléments de la combobox lors de l'ajout d'un élément dans la base de données
Call Userform_Initialize
Me.Combo_TypeConfections.RowSource = "Données!Type_Confections" 'Alimente la combobox type de confections

End Sub



2015-08-10_090148.jpg





Amitiés
 

mutzik

XLDnaute Barbatruc
Re : MAJ combobox suite à saisie

bonjour,

l'idéal dans ce domaine : (pour ce qui me concerne, comme je le fais toujours)
- je remplis mes combo, listes ... chacune dans une sub à part
- dans mon initialize, je fais appel à toutes ces sub
- à la mise à jour ou ajout/suppression d'une valeur dans une de ces combo ou list ou ... je fais appel à la sub concernée qui remplit à nouveau le contrôle dont les item ont changé

cela évite de faire tout le traitement de userform_initialize
 

nrdz83

XLDnaute Impliqué
Re : MAJ combobox suite à saisie

Bonjour mutzik

j'essaye tes conseils donc j'ai créé ce code

Code:
Private Sub MAJ_COMBO_TypeConfections()
Me.Combo_TypeConfections.RowSource = "Données!Type_Confections" 'Alimente la combobox type de confections
End Sub

dans Userform_initialize je fais donc

Code:
call MAJ_COMBO_TypeConfections

Pas de soucis ça alimente ma combobox, par contre c'est là que je bloque c'est lorsque je saisie des nouveaux éléments via mon userform2, si je met ce code
Code:
call MAJ_COMBO_TypeConfections

j'ai ce message d'erreur


2015-08-10_135652.jpg


Soit je met au mauvais endroit le code soit il est incomplet?

merci de m'aiguiller

amitiés
 

nrdz83

XLDnaute Impliqué
Re : MAJ combobox suite à saisie

Re bonjour pierrot93 désolé je n'avais pas vu ta réponse,

oui j'utilise une plage nommée "Type_Confections" avec ce code

pour mon rowsource
Code:
=DECALER(Données!$E$2;;;NBVAL(Données!$E:$E)-1)
 

Pierrot93

XLDnaute Barbatruc
Re : MAJ combobox suite à saisie

Re,

un code comme celui ci fonctionne chez moi...
Code:
Option Explicit
Private Sub UserForm_Initialize()
ComboBox1.RowSource = Range("Type_Confections").Address
End Sub
Private Sub UserForm_Click()
Cells(Rows.Count, 5).End(xlUp)(2) = 147
UserForm_Initialize
End Sub
 

nrdz83

XLDnaute Impliqué
Re : MAJ combobox suite à saisie

re bonjour à tous ça y est j'ai trouvé grace à votre aide à tous les deux voila ce que j'ai fais

ce code pour alimenter ma combobox (sans le private lol)
Code:
Sub Inicombo_TypeConfections()
Me.Combo_TypeConfections.RowSource = "Données!Type_Confections" 'Alimente la combobox type de confections
End Sub

le code rappelé dans userform_initialise
Code:
' Pour alimenter la combobox Type_confections
  Inicombo_TypeConfections

et enfin ce code dans mon Userform 2

Code:
Sub CommandButton2_Click()
Dim DerLig As Long
  With Sheets("Données")
    DerLig = .Range("E" & Rows.Count).End(xlUp).Row + 1
    .Cells(DerLig, 5).Value = Application.Proper(TextBox1)

  Call mefcTypeConfections ' met en forme la saisie

  Call ClasseTypeConfections 'Classe par ordre alphabétique les saisies
    
End With
  'Ferme l'userform
  Unload Me
  
 USF_Confections.Inicombo_TypeConfections
 
 
End Sub

Encore merci pour tout amitiés et bonne continuation à vous
 

Discussions similaires

Statistiques des forums

Discussions
311 710
Messages
2 081 781
Membres
101 817
dernier inscrit
carvajal