• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

zoeken naar de 3 kleinste waardes

Status
Niet open voor verdere reacties.

don42

Gebruiker
Lid geworden
25 apr 2014
Berichten
764
Beste helpers

ik heb een blad
met 110 rijen en wil van elke rij de 3 laagste waardes in een ander werkblad zetten in de kolommen 5 - 12 19
wie kan mij verder helpen
tot nu toe heb ik dit:

Code:
Private Sub CommandButton1_Click()
Dim LastRow As String
LastRow = Blad2.Range("d" & Rows.Count).End(xlUp).Row
num = 1
num2 = 6
Cells(num, 5).Value = Application.WorksheetFunction.Small(Sheets("datums").Range("d6:Be6"), 1)
Cells(num, 12).Value = Application.WorksheetFunction.Small(Sheets("datums").Range("d6:Be6"), 2)
Cells(num, 19).Value = Application.WorksheetFunction.Small(Sheets("datums").Range("d6:Be6"), 3)


'Hiermee krijg ik dus de 3 waardes van rij 6 uit tabblad datums netjes in rij 1 in kolom 5  12 en 19
'nu heb ik even hulp nodig om de 2de rij te vullen met de waardes van rij 7 uit tabblad datums enz
'en dit  tot lastrow
'loop dus vast met: (Sheets("datums").Range("d6:Be6"), 1)
'                     cells(num2 , ????????
End Sub
bvd don
 
Het lijkt me eenvoudiger dit met formules op te lossen.
 
Geen idee waarom je dit met VBA zou willen doen, maar:
Code:
    Dim num As Long
    For num = 1 To 110
        Cells(num, 5).Value = Application.WorksheetFunction.Small(Sheets("datums").Range("d" & num + 5 & ":Be" & num + 5), 1)
        Cells(num, 12).Value = Application.WorksheetFunction.Small(Sheets("datums").Range("d" & num + 5 & ":Be" & num + 5), 2)
        Cells(num, 19).Value = Application.WorksheetFunction.Small(Sheets("datums").Range("d" & num + 5 & ":Be" & num + 5), 3)
    Next
 
Ik hoop toch dat iemand de oplossing weet met vba
Vooruit dan maar, hier een poging, al zou het met een voorbeeldbestandje meer kans op slagen hebben
Code:
Private Sub CommandButton1_Click()
num = 6
With Sheets("datums")
    While .Cells(num, 4) <> ""
        Cells(num - 5, 5) = WorksheetFunction.Small(.Rows(num), 1)
        Cells(num - 5, 12) = WorksheetFunction.Small(.Rows(num), 2)
        Cells(num - 5, 19) = WorksheetFunction.Small(.Rows(num), 3)
        num = num + 1
    Wend
End With
End Sub
 
Beste helpers
allemaal bedankt voor jullie fijne hulp ik kan hier weer verder mee
heb uiteindelijk gekozen voor optie #4

Helemaal top
 
Lastrow als string declareren is niet zo handig.

Met een beetje meer snelheid en wat aannames omdat er geen voorbeeldbestand geplaatst is.
Code:
Sub VenA()
  Dim j As Long, jj As Long, ar, ar1, lr As Long
  lr = Sheets("Datum").Cells(Rows.Count, 4).End(xlUp).Row
  ar = Sheets("Datum").Range("D6:BE6").Resize(lr - 5)
  ar1 = Cells(1).Resize(lr - 5, 19)
    For j = 1 To UBound(ar)
      For jj = 5 To 19 Step 7
        ar1(j, jj) = Application.Small(Application.Index(ar, j, 0), jj \ 7 + 1)
      Next jj
    Next j
    Cells(1).Resize(lr - 5, 19) = ar1
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan