VBA Uitvoer listindex

Status
Niet open voor verdere reacties.

Bosswilly

Gebruiker
Lid geworden
28 mrt 2016
Berichten
110
Goedendag,

Ik zie eventjes niet wat ik fout doet.

In combobox C_403 (als ik het vinkje ja hebt ingedrukt) kan ik de maanden kiezen die nog gespaard moeten worden. Maar als ik er 1 selecteer, wordt de waarde in de Omschrijving (TB_501) en Open (TB_601) gezet.

Nou komt in de ene maand meer binnen dan in de andere maand, waardoor de bedragen iedere periode anders zijn.

Alleen die matchen niet met elkaar.

Voorbeeld periode 3 is maar € 20,00 en periode 4 is € 50,00. Maar beiden blijft op de € 20,00 staan in de Omschrijving (TB_501) en Open (TB_601).

Waar zit het probleem in?

Alvast bedankt en een fijn Pasen iedereen.
 

Bijlagen

je loop gaat in deze code altijd terug tot de eerste rij in de combobox en zal dus altijd 20 invullen.

Private Sub C_403_Change()

Code:
For r = C_403.ListCount - 1 To 0 Step -1
                C_403.BackColor = &H80000004
                TB_501.Value = C_403.List(r, 1)
                TB_501.BackColor = &H80000004
                TB_501.Locked = True
                TB_601.Value = C_403.List(r, 2)
                TB_601.BackColor = &H80000004
                TB_601.Locked = True
                TB_701.Value = TB_601.Value
                TB_801.Value = (TB_601.Value - TB_701.Value)
Next r
End Sub

Doe het eens zonder loop en gebruik de .Column van de Combobox:

Code:
Private Sub C_403_Change()

                C_403.BackColor = &H80000004
                TB_501.Value = C_403.Column(1)
                TB_501.BackColor = &H80000004
                TB_501.Locked = True
                TB_601.Value = C_403.Column(2)
                TB_601.BackColor = &H80000004
                TB_601.Locked = True
                TB_701.Value = TB_601.Value
                TB_801.Value = (TB_601.Value - TB_701.Value)

End Sub
 
En gebruik VBA

Code:
Private Sub C_403_Change()
  C_403.BackColor = &H80000004

  with TB_501
    .Value = C_403.Column(1)
    .BackColor = &H80000004
    .Locked = True
   end with

   with TB_601
      .Value = C_403.Column(2)
      .BackColor = &H80000004
      .Locked = True
      TB_701.Value = .Value
      TB_801.Value = (.Value - TB_701.Value)
   edn with
End Sub

NB. de laate regel leidt toch altijd tot de waarde 0 ? ( TB_801.Value = (.Value - TB_701.Value) )
 
Hartelijk dank heren,

Ik heb dit uitgeprobeerd, maar het werkt bijna helemaal. Aan het eind van die menu druk ik op invoegen en dan plaatst deze op de desbetreffende regel.

Het enige wat ik dan krijg is een "Fout 381 tijdens uitvoering. Kan de Eigenschap Column niet verkrijgen. Ongeldige index voor eigenschappenmatrix."

Waar zit dit in?
 

Bijlagen

Je maakt de combobox C_403 weer leeg en dan gaat de change weer lopen.
Er is dan geen .column doordat er geen keuze is gemaakt in de combo.

Code:
Private Sub C_403_Change()
[COLOR=#ff0000]If C_403.ListIndex > -1 Then[/COLOR]
  C_403.BackColor = &H80000004


  With TB_501
    .Value = C_403.Column(1) ''''''''
    .BackColor = &H80000004
    .Locked = True
   End With


   With TB_601
      .Value = C_403.Column(2)
      .BackColor = &H80000004
      .Locked = True
      TB_701.Value = .Value
      TB_801.Value = (.Value - TB_701.Value)
   End With
[COLOR=#ff0000] End If[/COLOR]
End Sub
 
Hartelijk dank allen,

Het werkt super.

Nogmaals dank.

Vriendelijke groet,

Bosswilly
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan