Skrevet 24. april 2008 16 år Jeg har en macro jeg ønsker skal kjøres hver gang en celle forandres i Excel. Innholdet i macroen er klar, men der det noen som vet hvordan jeg kan fikse det slik at macroen kalles opp ved forandring i cellene? Har "sett_farge()" som macro-navn
Skrevet 24. april 2008 16 år Har du prøvd denne? Private Sub Worksheet_Change(ByVal Target As Range) sett_farge() End Sub
Skrevet 24. april 2008 16 år Forfatter Har du prøvd denne? Private Sub Worksheet_Change(ByVal Target As Range) sett_farge() End Sub Før jeg postet prøvde jeg Private Sub Worksheet_Change() (kode her) End Sub Men det trigget ingen ting... - og matematiske beregninger i selve excel-arket er satt til å beregne hver gang en endring foretas i arket.
Skrevet 24. april 2008 16 år hmm, jeg bare testa : Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "Hei" End Sub og fikk en irriterende meldingsboks hvor det stod "Hei" hver gang jeg flytta fokus fra en celle.. Så det var litt rart at det ikke funka hos deg. Kjører Excel 2008 vel og merke..
Skrevet 24. april 2008 16 år Forfatter Ok... Lurer på om det er Excel 2007 men det bør ikke ha noen betydning. Tester litt mer hjemme nå. Takk for hjelpen! Men hva hentes i "Target"-variabelen?
Skrevet 24. april 2008 16 år Uten at jeg har noen som helst kunnskap i VBA, så antar jeg at Target er et objekt som refererer til hvilke(n) celle® som blir manipulert, som du eventuelt kan gjøre noe med, hvilket ikke er nødvendig i ditt tilfelle antar jeg.
Skrevet 24. april 2008 16 år Forfatter Hehe det passer faktisk utmerket. Opplegget er at jeg skal få en linje (row) til automatisk å skifte bakgrunnsfarge basert på innholdet i én av cellene i raden. Videre skal dette arket brukes av flere, så for å sørge for at ingen er for kreative med farger vil makroen også sørge for at de rette kolonnene har rett skriftfarge, o.l. Nå ser det faktisk ut til at det har begynt å fungere! Vakkert! Takk for hjelpen! Jeg brukte Worksheet_Calculate() og det funket dårlig. Vet du forresten hva som er forskjellen om man bruker Private eller ikke før Sub?
Skrevet 24. april 2008 16 år Hehe det passer faktisk utmerket. Opplegget er at jeg skal få en linje (row) til automatisk å skifte bakgrunnsfarge basert på innholdet i én av cellene i raden. Videre skal dette arket brukes av flere' date=' så for å sørge for at ingen er for kreative med farger vil makroen også sørge for at de rette kolonnene har rett skriftfarge, o.l. Nå ser det faktisk ut til at det har begynt å fungere! Vakkert! Takk for hjelpen! Jeg brukte Worksheet_Calculate() og det funket dårlig. Vet du forresten hva som er forskjellen om man bruker Private eller ikke før Sub? [/quote'] Ref : Jeg har også Excel 2007. 2008 finnes vel ikke Bra det funka! Ved å ha private foran sub, så betyr dette at denne koden kun er tilgjengelig innenfor det "scopet" du er i. Dvs. at du ikke kan kalle Worksheet_change() fra andre worksheets/ark. En tommelfingerregel er å alltid ha Private foran med mindre du har en hellsikes god grunn til å gjøre funksjonene/sub'ene globale (en sub er en null-funksjon som ikke returnerer noe, det samme som en "void" i C-verdenen)
Skrevet 24. april 2008 16 år Forfatter Men eh... hvordan kan jeg hente rad/col-reffen til cellen som ble endret slik at _Change() ble iverksatt?
Skrevet 24. april 2008 16 år Kanskje litt off-topic, men... Husk at du ikke nødvendigvis trenger å programmere i VBA dersom du ønsker å endre farger på celler ut fra verdier. Du kan, i de fleste tilfeller, bruke funksjonen Conditional Formatting (betinget formatering) i Excel.
Skrevet 24. april 2008 16 år Forfatter Ja, men vil du da få justert bakgrunnsfargen for hele linjen og ikke bare for cellen verdien befinner seg i? Forenklet eksempel: Hvis man har en liste med kolonnene "OPPGAVE", "ANSVAR" og "STATUS" så vil jeg at alle cellene i hver rad skal være farget med ulike farger basert på hva verdien er i "STATUS" for hver rad... slik at grønn bakgrunnsfarge betyr complete oppgave og rød betyr kansellert...
Skrevet 25. april 2008 16 år Ja, det kan du. Se denne siden: http://www.contextures.com/xlCondFormat02.html
Skrevet 25. april 2008 16 år Forfatter Stilig! Denne visste jeg ikke om - men jeg får det kun til å fungere når det er tallverdier som er "condition" for formattering og jeg får kun valgt tre forskjellige conditioned formatting pr celle og jeg trenger 4-5. I tillegg skal formatteringen basere seg på tekst-koder. Fortsetter å prøve ut om jeg kan bruke det for å gjør det enklere... - da ser det ut til at Visual Basic har løst en rekke problemer og gitt nye muligheter jeg ikke hadde tenkt på... Takk for hjelpen til dere begge for tips, David og Ishtiaq!
Bli med i diskusjonen!
Du kan poste innlegg nå og registrere deg senere. Hvis du har en brukerkonto kan du logge inn nå for å poste med din egen konto.