saleall Skrevet 21. juli 2013 Del Skrevet 21. juli 2013 (endret) Hei, Folkens. Noen avanserte Excel brukere her som kan lit excel vba koding? jeg er kjøl ikke alverdens avansert bruker, men trener meg til et oppgave som skal gjøres i Excel. Jeg tror jeg har gjort alt ferdig med kodingen men den vil da ikke kjøre . Oppgaven er at jeg har tallene 1-4 i rekke under ABCD. Jeg vil få excel til å telle fra første rekke som er 1,2,3,4 til siste rekken som blir 6,7,8,9. altså det fåregår slik som 1,2,3,4, 1,2,3,5, 1,2,3,6, 1,2,3,7, 1,2,3,8, 1,2,3,9 og da column D er 9 blir rekken 1,2,4,5, 1,2,4,6, 1,2,4,7, 1,2,4,8, 1,2,4,9, og da igjen 1,2,5,6.... og så videre helt til rekken kommer til C1Max=6 og C2Max=7 , C3Max=8 og C4Max=9 ... altså det som er siste rekken. så slikk gikk jeg frem i Excel VBA, men jeg finner ikke hva jeg har gjort gale her, så det vil kke kjøre. kommer opp med Error melding "Compile Error Next Without For" .. Strever med å få til! !! !! Har lagt ved filen i atachment. Sub TreningTelling() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ''''''nr = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1 C1Max = 6 C2Max = 7 C3Max = 8 C3Max = 9 'starting ws.Cells(1, 1) = 1 ws.Cells(1, 2) = 2 ws.Cells(1, 3) = 3 ws.Cells(1, 4) = 4 'loop For x = 1 To 100 If ws.Cells(x, 1) = C1Max And ws.Cells(x, 2) = C2Max And ws.Cells(x, 3) = C3Max And ws.Cells(x, 4) = C4Max Then Exit Sub If ws.Cells(x, 4) = C4Max Then If ws.Cells(x, 3) = C3Max Then If ws.Cells(x, 2) = C2Max Then ws.Cells(x + 1, 1) = ws.Cells(x, 1) + 1 ws.Cells(x + 1, 2) = ws.Cells(x + 1, 1) + 1 ws.Cells(x + 1, 3) = ws.Cells(x + 1, 2) + 1 ws.Cells(x + 1, 4) = ws.Cells(x + 1, 3) + 1 Else ws.Cells(x + 1, 1) = ws.Cells(x, 1) ws.Cells(x + 1, 2) = ws.Cells(x, 2) + 1 ws.Cells(x + 1, 3) = ws.Cells(x + 1, 2) + 1 ws.Cells(x + 1, 4) = ws.Cells(x + 1, 3) + 1 End If Else ws.Cells(x + 1, 1) = ws.Cells(x, 1) ws.Cells(x + 1, 2) = ws.Cells(x, 2) ws.Cells(x + 1, 3) = ws.Cells(x, 3) ws.Cells(x + 1, 3) = ws.Cells(x, 3) + 1 End If Next x End Sub Vba trening.rar Endret 21. juli 2013 av saleall Lenke til kommentar
Occi Skrevet 21. juli 2013 Del Skrevet 21. juli 2013 Tips, bruke tag og sørg for ordentlig innrykk på if-tester osv. (kopier fra en editor som bruker monospace). Lenke til kommentar
Harald Staff Skrevet 22. juli 2013 Del Skrevet 22. juli 2013 Hei Jeg tror du har tenkt litt for komplisert rett og slett. Se om denne gjør hva du er ute etter. Option Explicit Sub test() Dim A As Long, B As Long, C As Long, D As Long, R As Long Workbooks.Add (1) For A = 1 To 6 For B = A + 1 To 7 For C = B + 1 To 8 For D = C + 1 To 9 R = R + 1 Cells(R, 1).Value = A Cells(R, 2).Value = B Cells(R, 3).Value = C Cells(R, 4).Value = D Next D Next C Next B Next A End Sub Beste hilsen Harald 1 Lenke til kommentar
saleall Skrevet 22. juli 2013 Forfatter Del Skrevet 22. juli 2013 Hei Jeg tror du har tenkt litt for komplisert rett og slett. Se om denne gjør hva du er ute etter. Option Explicit Sub test() Dim A As Long, B As Long, C As Long, D As Long, R As Long Workbooks.Add (1) For A = 1 To 6 For B = A + 1 To 7 For C = B + 1 To 8 For D = C + 1 To 9 R = R + 1 Cells(R, 1).Value = A Cells(R, 2).Value = B Cells(R, 3).Value = C Cells(R, 4).Value = D Next D Next C Next B Next A End Sub Beste hilsen Harald Oi sånn! Haha så lett? wow. konge! opgaven er løst! Jeg vet ikke hvorfor jeg tenkte alt for komplisert, Din måte var mer elegant og enkelt og grait og funker! takker! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå