Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate listfacture() As Integer Private listdessommes() As String Private counter As Integer Private sumcheques As Integer Private nfacture As Integer Private Function ConvertToBinary(ByVal number As Long) As String Dim acc As String acc = "" While number > 0 acc = acc & number Mod 2 number = number \ 2 Wend ConvertToBinary = Format(StrReverse(acc), String(nfacture, "0")) End Function Private Function ComputeSumfacture(binarynum As String, ByRef sumfacture As Integer) As String Dim digit As String Dim facturename As String sumfacture = 0 facturename = "" For pos = 1 To Len(binarynum) digit = Mid(binarynum, pos, 1) If digit = 1 Then sumfacture = sumfacture + listfacture(pos - 1) facturename = facturename & " facture n: " & pos End If Next pos facturename = facturename & " total : " & sumfacture ComputeSumfacture = facturename End Function Private Sub Form_Load() Dim r As Integer nfacture = 20 Me.Command1.Caption = "Proceder" List1.Width = Me.Width - 5 List1.Height = Me.Height - Me.Command1.Height * 4 List1.Left = 0 List1.Top = Me.Command1.Top + Me.Command1.Height ReDim listfacture(nfacture - 1) Randomize For iter = 0 To nfacture - 1 listfacture(iter) = Int(Rnd * 1200) + 10 List1.AddItem ("facture n : " & iter + 1 & " = " & listfacture(iter)) Next iter sumcheques = 0 r = Int(Rnd * nfacture) If r = 0 Then r = 1 End If For iter = 0 To r sumcheques = sumcheques + listfacture(iter) Next iter List1.AddItem ("le montant du cheque = " & sumcheques) List1.AddItem (vbCrLf) End Sub Private Sub Command1_Click() Me.Command1.Enabled = False Dim binary As String Dim lessommes As String Dim iter As Long Dim sumfacture As Integer iter = 3 While iter <= 2 ^ nfacture - 1 If (Log(iter) / Log(2)) - Round((Log(iter) / Log(2)), 2) <> 0 Then binary = ConvertToBinary(iter) lessommes = ComputeSumfacture(binary, sumfacture) If sumfacture = sumcheques Then ReDim Preserve listdessommes(counter) listdessommes(counter) = lessommes List1.AddItem (lessommes) counter = counter + 1 End If End If iter = iter + 1 Wend Me.Command1.Enabled = True End Sub