PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBASkapa cycle sheetSkapa cycle sheet
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-01-09 11:59
 
Hej! Jag skulle vilja skapa ett cycle sheet, som slumpar ordningen på en lista som ska skapas. Jag har en sida med 12 Namn. Dessa ska kunna väljas att använda 0-10ggr. När man valt hur manga ganger varje namn ska användas, skulle jag vilja skapa en slumpad lista med dessa namn, så om man väljer t.ex 10ggr / namn, så blir listan 120 rader lång med slumpade namn. Är detta möjligt, och hur gör jag. //Fredrik
Nytt inlägg
 2019-01-09 16:06
 

Du vill bara välja antal namn en gång? Dvs både Kalle och nisse skall komma 10 gånger? 

 

Jag skulle skriva varje namn 10 ggr och sedan skapa ett slumptal i kolumnen bredvid. Sen kan du sortera efter slumpkolumnen..

Ett onödigt omständigt exempel

 Sub randNamn()

Dim rCellMedAntal As Range
Dim rNamn As Range
Dim iAntalRep As Integer
Dim iAntalSlumpade_namn As Integer
Dim i As Integer
Dim rMål As Range
 
'Bestäm var du hämtar antal repetitioner:
Set rCellMedAntal = Worksheets("blad1").Range("C1")
 
'Bestäm var namnen börjar
Set rNamn = Worksheets("blad1").Range("A2")
'Bestäm var du vill peta in namnen
Set rMål = Worksheets("blad2").Range("A1")
 
' fyll startvärden för variabler
iAntalRep = rCellMedAntal.Value
iAntalSlumpade_namn = 0
 
'Rensa bort gammalt skräp i målkolumnen
rMål.EntireColumn.Clear
 
'kickar igång slumptalsgeneratorn. Så att rnd inte startar på samma ställe hela tiden:
Randomize
 
'Yttre loop (doo...loop). Går igenom namnlistan rad för rad tills det kommer en tom cell
Do
' inrne loopen (For i....). skriver det aktuella namnet X-antal gånger, förskjuter sig en rad i taget jämfört med startpunkten. Skriver även slumptal i cellen till höger om namnet
    For i = 0 To iAntalRep - 1
        rMål.Offset(iAntalSlumpade_namn, 0).Value = rNamn.Value
        rMål.Offset(iAntalSlumpade_namn, 1).Value = Rnd
        iAntalSlumpade_namn = iAntalSlumpade_namn + 1
    Next i
    Set rNamn = rNamn.Offset(1, 0)
Loop Until rNamn.Value = ""
 
 
' Väljer en cell i målområdet (sorteringen får alltid problem annars)
 rMål.Offset(0, 1).Select
 
'Kickar igång en sortering efter slumptalet i kolumn B
 
    With ActiveWorkbook.Worksheets(rMål.Parent.Name).Sort
        .SortFields.Clear
        .SortFields.Add Key:=rMål.Offset(0, 1).Resize(iAntalSlumpade_namn, 1), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange rMål.Resize(iAntalSlumpade_namn, 2)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
'radera slumptalet om du vill
rMål.Offset(0, 1).EntireColumn.Clear
End Sub

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBASkapa cycle sheetSkapa cycle sheet

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter