13. august 2007 - 15:56Der er
16 kommentarer og 1 løsning
Lav hold
Jeg skal inddele omkring 750 personer på 36 hold.
personerne står i et excel ark så:
a2=klasse b2=efternavn c2=fornavn
Der er 3 årgange og personerne skal blandes sammen så alle 3 årgange blandes, disse årgange kan ses i a, altså klasserne, hvor 1 årgangsklasser starter med 101, 102... 2 årgang 201, 202 osv..
Men hvordan gør man dette? man kunne side og tage 2 personer fra hver klasse ind på hvert hold, men det kommer til at tage sin tid.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Sub test() Dim Børn, I As Long, Y As Long, S As Long Slut = Range("A65536").End(xlUp).Row Børn = Range("A3:C" & Slut)
For I = 1 To UBound(Børn) For Y = I To UBound(Børn) ' - 1 If Børn(I, 1) > Børn(Y, 1) Then Temp1 = Børn(Y, 1) Temp2 = Børn(Y, 2) Temp3 = Børn(Y, 3) Børn(Y, 1) = Børn(I, 1) Børn(Y, 2) = Børn(I, 2) Børn(Y, 3) = Børn(I, 3) Børn(I, 1) = Temp1 Børn(I, 2) = Temp2 Børn(I, 3) = Temp3 End If Next Next
D = Round(UBound(Børn) / 36) + 1 Hold = Range("E3:AN" & D + 3) I = 1 For L = 1 To UBound(Hold) For S = 1 To 36 Hold(L, S) = "Klasse: " & Børn(I, 1) & " " & Børn(I, 2) & "," & Børn(I, 3) I = I + 1 If I > UBound(Børn) Then GoTo SlutHer: End If Next Next SlutHer: Range("E3:AN" & D + 3) = Hold End Sub
Det er blot en makro jeg har lavet. VBA står for Visual basic for Application. Du skal sætte makrosikkerheden til "mellem" for at kunne afspille makroen ved næste åbning. Det gøres under "Funktioner" -> "Makro" -> "Sikkerhed".
Glemte lige at spørge om den tager alle på arket med, altså jeg skrev at det var omkring 750 personer men der er lidt flere. En anden ting, du har skrevet i formlen Børn = Range("A3:C" & Slut) skal dette ikke være A2 da navnene starter i A2?
Den finder selv ud af hvor langt ned i arket der er skrevet i kolonne A med Slut = Range("A65536").End(xlUp).Row. Så hvis der står noget under alle navnene, skal der laves en ændring. Hvis navnene står i A2 og ned (troede det var en celle med overskrift), skal du rette følgende:
.. nej vent lidt, jeg laver lige en ændring:
Sub test2() Dim Børn, I As Long, Y As Long, S As Long Slut = Range("A65536").End(xlUp).Row Række = "A3" Børn = Range(Række & ":C" & Slut) ArkOffset = Range(Række).Row
For I = 1 To UBound(Børn) For Y = I To UBound(Børn) ' - 1 If Børn(I, 1) > Børn(Y, 1) Then Temp1 = Børn(Y, 1) Temp2 = Børn(Y, 2) Temp3 = Børn(Y, 3) Børn(Y, 1) = Børn(I, 1) Børn(Y, 2) = Børn(I, 2) Børn(Y, 3) = Børn(I, 3) Børn(I, 1) = Temp1 Børn(I, 2) = Temp2 Børn(I, 3) = Temp3 End If Next Next
D = Round(UBound(Børn) / 36) + 1 Hold = Range("E3:AN" & D + ArkOffset) I = 1 For L = 1 To UBound(Hold) For S = 1 To 36 Hold(L, S) = "Klasse: " & Børn(I, 1) & " " & Børn(I, 2) & "," & Børn(I, 3) I = I + 1 If I > UBound(Børn) Then GoTo SlutHer: End If Next Next SlutHer: Range("E3:AN" & D + ArkOffset) = Hold End Sub
Så skal du blot rette i Række = "A3" til Række = "A2" hvis du skal flytte listen.
Jeg ved ikke om du ikke så denne: Er det muligt at hvert hold tilpasses på arket, således at man trykker print og så printerne man holdene ud på hver sin side.?
Det er selvlært. jeg har arbejdet i et projekt i 3 år med et avanceret Excel ark, hvor jeg efterhånden lærte mig selv mere og mere. Jeg købte en bog til formålet, men brugte den ikke ret meget, da jeg kunne det meste der stod i den.
Dette indlæg er lagt som et svar - betingelsen for at du kan give point til den du ønsker at tildele disse. Du markerer den lille boks med mit navn der dermed er kommet nederst på denne side, og klikker "Accepter": http://www.racingcar.dk/eksperten/svar/svar.html
Hvad er det for en skole? 750+ elever i 3 årgange er en ordentlig størrelse.
Der er da en del bøger om dette emne. Vil jeg lige kigge på. Jeg har også siddet og rodet med det, men det er mere på formel stadiet, dette ser noget mere avanceret ud.
Det er HH i Odense, vi har en sportsdag her inde længe hvor skolen blandes på alle årgange.
Velbekomme. Så må vi håbe der ikke er nogen der bliver råbt op to gange ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.