Als MAAND-functie maken voor listbox

Status
Niet open voor verdere reacties.
Code:
Private Sub Userform_Initialize()
i = 2
rw = 1
    With ListBox1
        .Clear
        .ColumnCount = 4
        .ColumnWidths = "70;40;60;50"
    For j = 0 To 3
     .AddItem
     .List(0, j) = Cells(j + 3, 1).Value
    Next
         Do Until Cells(2, i).Value = ""
            If Month(Cells(2, i)) = Range("B1").Value Then
                .List(rw, 0) = Format(Cells(3, i), "€ ###,###.00")
                .List(rw, 1) = Format(Cells(4, i), "0%")
                .List(rw, 2) = Cells(5, i).Value
                .List(rw, 3) = Cells(6, i).Value
                rw = rw + 1
            End If
        i = i + 1
        Loop
    End With
End Sub
 
Laatst bewerkt:
Bedankt voor de snelle reactie, alleen ik krijg een foutmelding 381

Kan eigenschap .list niet instellen!!

Offthefield
 
Ik heb de gegevens aangepast, want mijn experimenteer-programma werkt niet
zoals ik had ingeschat, de bedoeling is nl

Als de datum klopt (periode : 10) moet hij de volgende gegevens uitlijsten :

1-10-2006 1-10-2006
1 JAN X X
2 CEES N X
3 PIET A A
4 ED X X

Ik zou iemand mij een zetje willen geven

Bij voorbaat hartelijk dank

Offthefield
 

Bijlagen

M.a.w. je weet dus nooit op voorhand hoeveel kolommen je zal hebben in je Listbox, buiten kolom A en B ?
 
Nieuwe versie.

Code:
Private Sub Userform_Initialize()
  rw = 2
    With ListBox1
        .Clear
        .ColumnCount = Range("A1").Value
        .ColumnWidths = "20;40"
        
    For i = 0 To 4
    For j = 0 To 1
     .AddItem
     .List(i, j) = Cells(i + 2, j + 1).Value
    Next
    Next
i = 3
         Do Until Cells(2, i).Value = ""
            If Month(Cells(2, i)) = Range("B1").Value Then
                .List(0, rw) = Cells(2, i).Value
                .List(1, rw) = Cells(3, i).Value
                .List(2, rw) = Cells(4, i).Value
                .List(3, rw) = Cells(5, i).Value
                .List(4, rw) = Cells(6, i).Value
              rw = rw + 1
            End If
         i = i + 1
        Loop
    End With
End Sub
 
Nu met aangepaste kolombreedtes
Code:
Private Sub Userform_Initialize()
  rw = 2
  c0 = "15;30"
    For cw = 1 To Range("A1").Value - 2
        c0 = c0 & ";" & 40
    Next
    With ListBox1
        .Clear
        .ColumnCount = Range("A1").Value
        .ColumnWidths = c0
    For i = 0 To 4
    For j = 0 To 1
     .AddItem
     .List(i, j) = Cells(i + 2, j + 1).Value
    Next
    Next
    i = 3
         Do Until Cells(2, i).Value = ""
            If Month(Cells(2, i)) = Range("B1").Value Then
                .List(0, rw) = Cells(2, i).Value
                .List(1, rw) = Cells(3, i).Value
                .List(2, rw) = Cells(4, i).Value
                .List(3, rw) = Cells(5, i).Value
                .List(4, rw) = Cells(6, i).Value
              rw = rw + 1
            End If
         i = i + 1
        Loop
    End With
End Sub

@Harry
Ik veronderstel dat in A1 een formule staat die het aantal kolommen weergeeft ?
 
Laatst bewerkt:
Rudi,

Mooi opgelost, ik dacht dat zien we later wel weer, want het veranderd toerloos bij deze TS. :D

Het klopt dat ik een formule had geplaatst in cel A1, maar vergeten ben het erbij te zetten.

Bij deze; een matrixformule.
Code:
=SOM(ALS(MAAND(C2:I2)=B1;1;""))+2
 
Warme Bakkertje en HSV,

Ik vind het leuk om te zien dat 2 freaks de uitdaging aangaan om mij te helpen met
het probleem in mijn programma!!

Ik heb jullie aanpassingen uitgeprobeerd, maar bij mij geeft hij met de formule in A1
een foutmelding en zonder volgt er een lege listbox? in VERTICAAL2

Zouden jullie kunnen kijken wat er fout gaat in de procedures.

Bij voorbaat hartelijk dank

Offthefield
 

Bijlagen

Matrixformules sluit je af met Ctrl+Shift+Enter, en geen Enter alleen.
 
HSV,

Maakt niets uit, hij blijft in A1 #WAARDE geven en
de userform geeft een fout melding

Offthefield
 
Selecteer cel A1, klik in de formulebalk op de formule.
Ctrl+Shift+Enter.
De accolades verschijnen automatisch om de formule.
 
HSV,

Zou je de wijzigingen bij jou kunnen doorvoeren en kijken of hij bij jou wel werkt
(je mag hem ook als bijlage toevoegen),want ik blijft de foutmelding houden,
hoe ik het ook probeer

Kan je mij de formule uitleggen, want ik snap de SOM niet?

Bvd

Offthefield
 
HSV,


Perfect hij werkt!!
Hiermee kan ik weer weken mee vooruit!!!

Alleen snap ik nog niet de accolades (nog nooit gezien), en zou je me de formule
kunnen uitleggen?

Offthefield
 
Als je de formule =ALS kent, leest het toch gemakkelijk weg.
=als(dit is waar?; doe dit; anders dat)
=als(de maand van bereik c2:H2=10; zet een 1; anders leeg)
=som van alle 1’en.
+2 zijn de eerste twee kolommen die er bij moeten.

De accolades niet handmatig invoeren dus.
Die verschijnen als je het inbrengt met Ctrl+Shift+Enter tegelijk.
 
HSV,

Hartelijk dank voor de uitleg.

Ik wil nu een kolom tussen B en C voegen, en ik dacht dat ik het door had welke delen ik in de procedure moest veranderen, maar ik krijg steeds een foutmelding

Zou je kunnen kijken wat ik fout doet.

Ik heb veranderd :


.ColumnWidths = "20;40" naar .ColumnWidths = "20;40;30"
Hier heb ik een kolom bijgevoegd omdat je van 2 naar 3 kolommen gaat zonder datum

For j = 0 To 1 naar For j = 0 To 2
Nu 3 kolommen ipv 2

=SOM(ALS(MAAND(C2:H2)=B1;1;""))+2 naar =SOM(ALS(MAAND(D2:I2)=B1;1;""))+3
Hier heb ik een kolom bijgevoegd omdat je van 2 naar 3 kolommen gaat

bvd

Offthefield
 

Bijlagen

Je doet verder niets met de start van de variabelen Offthefield.
Code:
rw = 3
i = 4
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan