Pensinf4204
XLDnaute Nouveau
Bonjour,
j'ai un ficher excel avec des colonnes somme en A et N° de compte en B
j'ai créé un Userform avec une listbox qui récupére la liste des comptes sans doublons et je voudrais lorsque je clic sur un N° de compte dans cette listbox addition des sommes des lier au compte :EX 12 s'affiche dans le label1 que j'ai créé
le code que j'ai
Private mondico As Object ' Déclaration au niveau du module pour rendre mondico accessible dans toutes les sous-procédures
Private Sub UserForm_Initialize()
Dim f As Worksheet
Set f = Sheets("année 2023")
Set mondico = CreateObject("Scripting.Dictionary") ' Utilisation directe de la déclaration au niveau du module
Dim lastRow As Long
lastRow = f.Cells(f.Rows.Count, "A").End(xlUp).Row
Dim a As Variant
a = f.Range("f2:f" & lastRow).Value
Dim b As Variant
b = f.Range("d2:d" & lastRow).Value ' Supposons que les sommes sont dans la colonne d
Dim i As Long
For i = LBound(a) To UBound(a)
If a(i, 1) <> "" Then
If mondico.Exists(a(i, 1)) Then
mondico(a(i, 1)) = mondico(a(i, 1)) + b(i, 1) ' Ajoute la somme à la valeur existante
Else
mondico(a(i, 1)) = b(i, 1) ' Nouvelle entrée dans le dictionnaire avec la somme
End If
End If
Next i
' Remplit la liste (ListBox1) du formulaire utilisateur avec les clés du dictionnaire mondico
Me.ListBox1.Clear
For Each Key In mondico.keys
Me.ListBox1.AddItem Key
Next Key
End Sub
Private Sub ListBox1_Click()
Dim selectedKey As String
selectedKey = Me.ListBox1.Value
Dim selectedSum As Double
selectedSum = mondico(selectedKey)
Me.Label1.Caption = "Somme pour " & selectedKey & ": " & selectedSum
End Sub
mais le lable1 affiche le compte sélectionner et 0 en somme
Merci de votre aide
j'ai un ficher excel avec des colonnes somme en A et N° de compte en B
j'ai créé un Userform avec une listbox qui récupére la liste des comptes sans doublons et je voudrais lorsque je clic sur un N° de compte dans cette listbox addition des sommes des lier au compte :EX 12 s'affiche dans le label1 que j'ai créé
le code que j'ai
Private mondico As Object ' Déclaration au niveau du module pour rendre mondico accessible dans toutes les sous-procédures
Private Sub UserForm_Initialize()
Dim f As Worksheet
Set f = Sheets("année 2023")
Set mondico = CreateObject("Scripting.Dictionary") ' Utilisation directe de la déclaration au niveau du module
Dim lastRow As Long
lastRow = f.Cells(f.Rows.Count, "A").End(xlUp).Row
Dim a As Variant
a = f.Range("f2:f" & lastRow).Value
Dim b As Variant
b = f.Range("d2:d" & lastRow).Value ' Supposons que les sommes sont dans la colonne d
Dim i As Long
For i = LBound(a) To UBound(a)
If a(i, 1) <> "" Then
If mondico.Exists(a(i, 1)) Then
mondico(a(i, 1)) = mondico(a(i, 1)) + b(i, 1) ' Ajoute la somme à la valeur existante
Else
mondico(a(i, 1)) = b(i, 1) ' Nouvelle entrée dans le dictionnaire avec la somme
End If
End If
Next i
' Remplit la liste (ListBox1) du formulaire utilisateur avec les clés du dictionnaire mondico
Me.ListBox1.Clear
For Each Key In mondico.keys
Me.ListBox1.AddItem Key
Next Key
End Sub
Private Sub ListBox1_Click()
Dim selectedKey As String
selectedKey = Me.ListBox1.Value
Dim selectedSum As Double
selectedSum = mondico(selectedKey)
Me.Label1.Caption = "Somme pour " & selectedKey & ": " & selectedSum
End Sub
mais le lable1 affiche le compte sélectionner et 0 en somme
Merci de votre aide