Har nedenstående kode. Det jeg søger er at hvis kolonne J bliver hævet med mere end 350 ift. kolonne E, så skal den sættes til værdien af kolonne E + 350. Har kredset den ind nederst med en stribe x'er Nogen som kan hjælpe mig her?
Ja, selvfølgelig... Men det løser ikke problemet. Den bliver ved med at ligge 10% eller gange 1.1 til. og ikke max 350, hvis 10% eller gange 1.1 hvis det overstiger E + 350
Er det hvor det ligges ind i koden?
If Range("J" & i) > Range("E" & i) + 350 Then Range("J" & i) = Range("E" & i) + 350 GoTo Fortsæt End If
#2 - Du har jo sat alle "J" tallene til at blive ganget med 1.1 så det vil de jo blive, uanset hvad du har af betingelser i dine IF opsætninger. Du løber jo betingelser igennem, efter hvor højt beløbet skal/kan være, og der får du beregnet beløbet efter, som du har i IF betingelsen, og ikke hvad du har i din sidste IF betingelse (indkredset med xxxxxxx).
du har 5 linjer med Range("J" & i) = Range("E" & i) * 1.1
de skal alle rettes til If Range("J" & i) > Range("E" & i) + 350 Then Range("J" & i) = Range("E" & i) + 350 Else Range("J" & i) = Range("E" & i) * 1.1 End If
Hejsa, #3 det har du ret i, jeg søger også en løsning på det. #4 Det hjælper en del. Har nu dette stående de 5 steder, som du sagde. Men for at den regner rigtigt, altså det med de max 350, så skal jeg køre VBA 2 gange......
Eller rettere. den regner rigtigt hver anden gang VBA kører. Har bemærket at det er hvis jeg skriver fx 10001, 8000 i kolonne E, så laver den en regnefejl hver anden gang, jeg kører koden. Det er sgu da mærkeligt.
Har denne formel nu: Set ws1 = Sheets("Ark1") LR1 = ws1.Range("F" & Rows.Count).End(xlUp).Row For i = 1 To LR1 If ws1.Range("F" & i).Value > 0 And ws1.Range("F" & i).Value <> ws1.Range("E" & i).Value Then Range("H" & i) = Range("E" & i) * 1.1 If Range("J" & i) > Range("E" & i) + 350 Then Range("J" & i) = Range("E" & i) + 350 Else Range("J" & i) = Range("E" & i) * 1.1 End If Range("L" & i) = Range("F" & i) Range("N" & i) = Range("F" & i) ws1.Range("I" & i).Value = "DKK" ws1.Range("K" & i).Value = "DKK" ws1.Range("M" & i).Value = "DKK" ws1.Range("O" & i).Value = "DKK" Else If Range("E" & i) = Range("F" & i) Then If Range("E" & i) > 10000 Then Range("F" & i) = Range("E" & i) * 1.2 Range("H" & i) = Range("E" & i) * 1.1 If Range("J" & i) > Range("E" & i) + 350 Then Range("J" & i) = Range("E" & i) + 350 Else Range("J" & i) = Range("E" & i) * 1.1 End If Range("L" & i) = Range("E" & i) * 1.2 Range("N" & i) = Range("E" & i) * 1.2 ws1.Range("I" & i).Value = "DKK" ws1.Range("K" & i).Value = "DKK" ws1.Range("M" & i).Value = "DKK" ws1.Range("O" & i).Value = "DKK" GoTo Fortsæt End If
End If End If Fortsæt: Next Application.ScreenUpdating = True MsgBox "Færdig!"
End Sub
Kan den laves enklere med noget så som? Ved bare ikke lige hvordan den skal kodes ind.....
If Range("E" & i) > 3500 Then Range("J" & i) = Range("E" & i) + 350
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.