Gå til innhold

Hvordan få en makro til og gå av seg selv.


Anbefalte innlegg

Hei.

 

Jeg lurer på om det går ann og få en kode til og gå hele tiden, Jeg har programmert inn noen koder i en rullegardin å opplever til tider at cellene ikke oppdaterer seg selv om de skal det ut i fra koden.

Sub Rullegardin15_Endre()
'
' Rullegardin15_Endre Makro

If Range("f3") = 0 And Range("h3") = 1 Then
   Range("e3") = Range("d3") / Range("c3")
   ElseIf Range("f3") = 1 And Range("h3") = 1 Then
           Range("e3") = Range("d3") / Range("c3")
           ElseIf Range("f3") = 0 And Range("h3") = 2 Then
                   Range("e3") = Range("d3") / Range("c3")
                   ElseIf Range("f3") = 0 And Range("h3") = 3 Then
                           Range("e3") = Range("d3") / Range("c3")
                           ElseIf Range("f3") = 0 And Range("h3") = 4 Then
                                   Range("e3") = Range("d3") / Range("c3")
End If

If Range("f3") = 0 And Range("h3") = 1 Then
   Range("i3") = 0
   ElseIf Range("f3") = 1 And Range("h3") = 1 Then
           Range("i3") = 0
           ElseIf Range("f3") = 1 And Range("h3") = 2 Then
                   Range("i3") = Range("c3") / 1.333
                   ElseIf Range("f3") = 1 And Range("h3") = 3 Then
                           Range("i3") = Range("c3") / 2
                           ElseIf Range("f3") = 1 And Range("h3") = 4 Then
                                   Range("i3") = Range("c3") / 4
End If

If Range("f3") = 0 And Range("h3") = 1 Then
   Range("e3") = Range("d3") / Range("c3")
   ElseIf Range("f3") = 1 And Range("h3") = 2 Then
           Range("e3") = Range("d3") / Range("i3")
           ElseIf Range("f3") = 1 And Range("h3") = 3 Then
                   Range("e3") = Range("d3") / Range("i3")
                   ElseIf Range("f3") = 1 And Range("h3") = 3 Then
                           Range("e3") = Range("d3") / Range("i3")
                           ElseIf Range("f3") = 1 And Range("h3") = 4 Then
                                   Range("e3") = Range("d3") / Range("i3")
End If

End Sub

 

jeg har en rullgardin og en checkbox per rad som leverer ut gitte verdier, og celle E3 skal forandre seg deretter.

men E3 vil ikke forandre seg hvis bare checkbox verdien forandrer seg. så derfor lurer jeg på om koden på en måte kan være "aktivert" hele tiden.

 

Koden fungerer akkurat som summer.hvis.sett grunnen til at jeg har programert det inn i stede for og bruke formelen er fordi jeg ikke får summer.hvis.sett til og fungere på en rad hvor vilkårene er på samme rad.

 

Håper forklaringen er god nok.

 

Hilsen

 

Torbjørn

Lenke til kommentar
Videoannonse
Annonse

Hei igjen Torbjørn

 

Dette kommer an på hva slags kontroller du bruker. Hvis det er skjemakontroller, høyreklikk dem og tilordne makroen din til kontrollen. Hvis det er activeX, høyreklikk, vis kode, og kall makroen fra eventet du kommer til.

 

Men hvis dette er en workaround; det er bedre å få formelen til å virke, formler er 10 ganger kjappere enn velskrevet kode. Du kan fint bruke cellereferanser som kriterier i formelen din. Erstatt ;"=1"; med ;B6; eller hvor nå ettallet står.

 

HTH. Beste hilsen Harald

Lenke til kommentar

Hei igjenn ja :)

 

Jeg er jo ganske fersk innenfor excel og programmering så jeg veit ikke helt hva workaround er, å jeg får ikke formelen til å fungere. mest sannsynlig en brukerfeil, hehe.

 

Jeg prøvde og bytte ut kriteriet med cellereferanse men fikk ikke det til og fungere (#REF)

Men skjønner ikke helt hvordan formelen skal skjønne hva den skal gjøre hvis jeg bytter ut kriteriet med en cellereferanse

hvis den ikke hvet hva kriteriet skal være.

 

(i celle c1)summer.hvis.sett(a1:b1;d1"=1";e1"=1") dette fungerer ikke.

(i celle a3)Summer.hvis.sett(a1:a2;d1:d2"=1";e1:e2"=1") Dette fungerer, men sånn som regnearket mitt er satt opp kan jeg ikke bruke dette oppsettet.

Formelen blir jo egentlig mye lengere fordi det er flere kriterier og den skal regne ut forskjellige verdier ut i fra kriteriene, men tenker det er greit og starte med det her.

 

Men det jeg egentlig vil, er at cellene skal dele seg på hverandre i steden for legge sammen verdiene. a1/a1, men vet ikke hvordan jeg legger inn det i formelen.

 

Har du Noen forslag?

 

Hilsen

Torbjørn

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å
×
×
  • Opprett ny...