Mise à jour Dictionary

jlbox

XLDnaute Nouveau
Bonjour à tous,

Dans un userform, j'ai une combobox dont la liste est alimenté par un dictionnaire.
Les données saisies dans le userform alimentent une colonne excel.
Cette colonne excel est la colonne qui alimente mon dictionnaire.
Mon problème est que lorsque je saisie une valeur qui ne fait pas partie du dictionnaire, cette valeur une fois validée dans le userform n'est pas intégré dans mon dictionnaire pour la saisie du prochain formulaire. Je pense qu'il faut saisir un code de mise à jour mais je ne sais pas lequel???

PS: Lorsque je quitte excel et que je ré-ouvre mon fichier l'élément ne figurant pas dans le dictionnaire "précédent" est bien présent.

Merci pour le coup de main.

Set mydict2 = CreateObject("Scripting.Dictionary")
Set f = Sheets("Communication_Record")
Tabl2 = Range(f.[J4], f.[J20000].End(xlUp))
For n2 = LBound(Tabl2) To UBound(Tabl2)
For m2 = LBound(Tabl2) To UBound(Tabl2)
If Tabl2(n2, 1) < Tabl2(m2, 1) Then
Temp2 = Tabl2(n2, 1)
Tabl2(n2, 1) = Tabl2(m2, 1)
Tabl2(m2, 1) = Temp2
End If
Next m2
Next n2
For n2 = LBound(Tabl2) To UBound(Tabl2)
mydict2.Item(Tabl2(n2, 1)) = Tabl2(n2, 1)
mydict2.Item(Tabl2(n2, 1)) = Format(Tabl2(n2, 1), "mmmm-yyyy")
Next n2
Me.CR010.List = mydict2.items
 

pierrejean

XLDnaute Barbatruc
Re : Mise à jour Dictionary

Bonjour jibox

A tester

juste apres la ligne de code qui permet de valider la valeur

Code:
mydict2.Item(lavaleur) = Format(lavaleur, "mmmm-yyyy")
Me.CR010.List = mydict2.items
lavaleur etant la valeur validée
 

jlbox

XLDnaute Nouveau
Re : Mise à jour Dictionary

Bonjour Pierrejean,

Merci pour ta suggestion malheureusement elle ne fonctionne pas.

Pour faciliter les recherches, ci-joint un fichier exemple avec le code utilisé jusqu'à présent.

Encore merci.
 

Pièces jointes

  • dictionary.xlsm
    41.1 KB · Affichages: 49
  • dictionary.xlsm
    41.1 KB · Affichages: 51
  • dictionary.xlsm
    41.1 KB · Affichages: 50

Si...

XLDnaute Barbatruc
Re : Mise à jour Dictionary

Salut

essaie en terminant par ces lignes
Code:
Private Sub ComRecButton1_Click()
    Dim iRow As Long
    Dim ws2 As Worksheet
    Set ws2 = Worksheets("Communication_Record")
    
    ...
   
    ws2.Cells(iRow, 1).Value = Me.CR001.Value
    ws2.Cells(iRow, 2).Value = StrConv(Me.CR002.Value, vbProperCase)

    Unload Me
    UserForm1_1_4.Show 0
End Sub

et en plaçant, CR001.SetFocus, dans l'initialize.
 

Discussions similaires

Réponses
7
Affichages
330
Réponses
12
Affichages
252

Statistiques des forums

Discussions
312 307
Messages
2 087 095
Membres
103 467
dernier inscrit
Pandiska