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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.