Gå til innhold

[Løst] Avansert Excel VBA Kode


Anbefalte innlegg

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 :hmm: . 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! !! :w00t: !!

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 av saleall
Lenke til kommentar
Videoannonse
Annonse

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

  • Liker 1
Lenke til kommentar

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! :blink: 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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...