Avatar billede reon Nybegynder
07. september 2002 - 18:57 Der er 11 kommentarer og
1 løsning

Makro "vba" hjælp

hvad er der lige galt med den her??
Private Sub CheckBox3_Click()

If CheckBox3 = True Then
Worksheets("Faktura").Activate
ActiveCell.Formula = "=HVIS(M14>42,M39*10%,HVIS(M14>20,M39*5%,""))"
End If

End Sub

og den formular vil jeg har i celle kollon m 42 skal det bare gøres med en .Range("m42")??
Avatar billede weiland Nybegynder
07. september 2002 - 23:03 #1
Den er gal med konstruktionene. hvis det første led er større end 42 siger du at den skal tjekke om den er større end 20!! Dvs. du skal anvende en hvis/eller formel.
Avatar billede jkrons Professor
08. september 2002 - 00:18 #2
Det er jo svært at sige, hvad der er galt, når du ikke fortæller, hvad problemet består i. Men dels er der det problem Weiland beskriver. Desuden skaldu bruge semikoloe i stedet for komma i din HVIS konstruktion. Komma er på engelsk/i VBA, men når du indsætter formlen skaldet være semikolon.

Måske er det slet ikke det, der er dit problem, men så må du fortælle, hvad det præcis er, der går galt :-)
Avatar billede jkrons Professor
08. september 2002 - 00:34 #3
Måske kan noget i denne stil gøre det.l Den indsætter en formel, der indslætter ingenting, hvis M14 er mindre end 20. Den ganger med 5%, hvis m14 er mellem 20 og 42,v og ganger med 10%, hvis den er større end 42. Formlen indsættes i M42.

Range("m42").Activate
ActiveCell.FormulaR1C1 = _
    "=IF(R[-28]C<0,"""",IF(R[-28]C<42,R[-3]C*0.05,R[-13]C*0.1))"
Avatar billede reon Nybegynder
08. september 2002 - 07:36 #4
Den kommer med en debug fejl. og selve formlen virker find hvis jeg putter den i en celle, men ikke inde fra vba.
Avatar billede reon Nybegynder
08. september 2002 - 07:42 #5
det formler skal er at se om m14 er >42 vis ja * m39 med 10%, men vis m14 er < 42 er den så > en 20 skal den * m39 med 5% er > end 20 skal den ikke gører noget andet en at lave m42 stå tom.
Avatar billede reon Nybegynder
08. september 2002 - 07:44 #6
hov det skal lige sættes ind istedet for "m39 med 5% er < end 20"
Avatar billede bak Forsker
08. september 2002 - 09:15 #7
Du mangler bare et par apostroffer of at skrive formlen på engelsk.

ActiveCell.Formula = "=IF(M14>42,M39*10%,IF(M14>20%,M39*5%,""""))"
Avatar billede bak Forsker
08. september 2002 - 09:24 #8
Alternativt:
ActiveCell.FormulaLocal = "=HVIS(M14>42;M39*10%;HVIS(M14>20%;M39*5%;""""))"
Avatar billede reon Nybegynder
08. september 2002 - 09:34 #9
Bak> den med IF var ok. hvordan skal jeg så få den til at slet formlen hvis jeg fjerner makeringen i checkboxen?
Avatar billede reon Nybegynder
08. september 2002 - 09:39 #10
øh nu hvor at det skal være på engelsk hvad hedder så et lopslag
Avatar billede bak Forsker
08. september 2002 - 10:33 #11
ActiveCell.ClearContents fjerner formel

LOPSLAG hedder på engelsk VLOOKUP
Avatar billede bak Forsker
08. september 2002 - 10:37 #12
Skulle du være i tvivl om flere engelske udtryk/funktioner så hent
http://tommy.bak.homepage.dk/Excelfunktioner_eng_da.xls
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester