Gå til innhold

Makro i Excel


leistr

Anbefalte innlegg

Skrevet

Har trøbbel med at en makro som kopierer en formel fra ei celle til ei anna (ingen av de er låst) oppfører seg forskjellig :

a) etter åpning av regnarket kopierer den formelen (fra cellen M18 der formelen er =$D$17) og gir da som resultat at formelen også kommer dit den skal (i D18)

 

b) etter å ha lagret regnarket kopieres ikke formelen, men kun det tallmessige resultatet av formelen til D18

 

Application.CutCopyMode = False

Range("M18").Select

Selection.Copy

Range("D18").Select

ActiveSheet.Paste

 

Hvorfor gjør den dette? Har sjekket på flere PC'er. (Excel 2003).

Tips til å unngå b) ?

Videoannonse
Annonse
Skrevet (endret)
Hvorfor gjør den dette?  Har sjekket på flere PC'er. (Excel 2003).

Tips til å unngå b)  ?

6900845[/snapback]

Testet koden din nettopp i Excel 2003 men finner ingen feil. Macroen fungerer prikkfritt hver gang... :dontgetit:

 

EDIT: Sikker på at du ikke har noen annen kode som kjøres samtidig ved lasting som eventuellt overskriver? Virker rart at du får forskjellig resultat med samme kode på forskjellige tidspunkt...

Endret av t0my
Skrevet

Ingenting feil med koden her heller. Annet enn at markøren, valgt celle, flytter seg. Det er forsinkende og lite brukervennlig. Du bør gjøre det slik istedet:

 

Range("M18").Copy Range("D18")

 

men allerhelst slik hvis du bare skal flytte formelen og ikke formatet og alt det andre:

 

Range("D18").FormulaR1C1 = Range("M18").FormulaR1C1

 

HTH. Beste hilsen Harald

Skrevet
Ingenting feil med koden her heller. Annet enn at markøren, valgt celle, flytter seg. Det er forsinkende og lite brukervennlig. Du bør gjøre det slik istedet:

Range("M18").Copy Range("D18")

men allerhelst slik hvis du bare skal flytte formelen og ikke formatet og alt det andre:

Range("D18").FormulaR1C1 = Range("M18").FormulaR1C1

HTH. Beste hilsen Harald

6907817[/snapback]

 

Dette er rart. :hmm:

I cella D17 har jeg følgende formel:

=$D$10+$D$11-$D$12-$D$13-$D$14-$D$15-$D$16

og i cella D18 har jeg i utgangspunktet formelen

=$D$17

Jeg skriver så inn ett vanlig tall i cella D18 (til erstatning for formelen som en manuell redigering i regnarket. Poenget med makroen er å gjenopprette utgangspunktet.

Første gang jeg kjører din makro :

Range("D18").FormulaR1C1 = Range("M18").FormulaR1C1

får jeg tallet som formelen i D17 genererer.

Kjører jeg makroen en gang til får jeg den riktige formelen på plass (=$D$17).

Resultatet kan synes likt, men blir selvfølgelig ikke det ved seinere redigeringer ovenforliggende celler.

Skrevet

makroen min kopierer relativ formel fra celle M18 inn i D18, du forteller ikke hva M18 inneholder.

 

Men du er tydeligvis inne i change-eventene her, og det trøbbelet du ser er antakelig hva det var allerede i din første post, det er antakelig to koder som sloss mot hverandre. Kan du vise koden din for change, selectionchange og ellers annen kode som endrer formler og verdier i events ?

 

Harald

Skrevet
makroen min kopierer relativ formel fra celle M18 inn i D18, du forteller ikke hva M18 inneholder.

 

Men du er tydeligvis inne i change-eventene her, og det trøbbelet du ser er antakelig hva det var allerede i din første post, det er antakelig to koder som sloss mot hverandre. Kan du vise koden din for change, selectionchange og ellers annen kode som endrer formler og verdier i events ?

 

Harald

6914445[/snapback]

Dette var gresk for en amatør. Hvilken kode snakker du om?

Ellers er det sikkert riktig at det er koder som "sloss". Regnarket er lagt opp som en rekke av inngående og utgående balanse for hver dag, der det innimellom kan legges inn ulike tall som påvirker utgående balanse, og dermed inngående balanse for neste dag.

Hvis jeg nå manuelt overstyrer inngående balanse en av dagene (eks. tirsdag), forandres også inngående balanse videre ut i uka selvfølgelig, men de "konverterer" fra en formel (lik UB i går) til tallverdien av UB. Det er litt overraskende for meg. Faktisk influerer alle tall for tirsdag IB neste dag på samme måte (formelen blir borte og tall kommer i steden). Hva jeg har gjort med regnarket vet jeg ikke, for slik fungerer ikke et regnark jeg har lagd tidligere. Eneste jeg kommer på er at jeg har lagt inn kommandoer for beskytta celler og visning av formler.

Skrevet
Vel, du har en makro som du hadde trøbbel med. Hvor bor den og hva heter den ? Har du flere makroer ? Få se alle, klipp-lim dem hit med navn og greier.

 

Beste hilsen Harald

6922628[/snapback]

Fint du vil hjelpe, men jeg prøver å finne kjernen i problemet og tror den ligger annetsteds. Har testet ganske mye nå og funnet ut at det ikke er makroen som det er noe galt med, men selve regnarket. Det blir samme problem ved manuell inntasting som ved makro:

 

Kjernen er at når jeg åpner regnarket fungerer alt som det skal. Jeg kan legge inn en formel uten problem i hvilken som helst av cellene. Men når jeg så lagrer regnarket er det noe som skjer. Hvis jeg deretter legger inn en formel i en celle produseres svaret på formelen (tallet) direkte. Hvis jeg legger inn en formel som gir samme tallmessig svar som det tallet som står i cella fra før, kommer først det tellmessige svaret. Gjentar jeg inntastingen kommer formelen inn i cella.

 

Det må være noe med innstillingene til excel for denne arbeidsboka?

 

Regnarket består av 7 celler for hver dag, der den første er en formel (=$D$9) og de neste 6 er blanke. Så kommer en summering i 8. celle av de 7 over : =$D$10+$D$11-$D$12-$D$13-$D$14-$D$15-$D$16

Deretter er neste celle (D18) : =$D$17. Dette er den første av 7 i ei ny rekke der 6 er blanke. Cella etter disse har igjen formelen

=$D$18+$D$19-$D$20-$D$21-$D$22-$D$23-$D$24 osv. nedover i ei lang rekke.

(Dollartegnene er strengt tatt ikke nødvendige). Når jeg etter lagring legger inn et tall i f.eks. D12, forandrer formlene i D18, D26 osv. seg til tall, dvs. formelen forsvinner!

(I det gamle regnarket som var mye enklere mht. makroer osv. skjer ikke dette. Der fungerer alt som det skal. Så jeg får vel flytte makroene dit. Men det irriterer at jeg ikke skjønner hva som skjer.)

Skrevet
Jaja. Jeg skal ikke tvinge deg til å ta imot hjelp.

6923415[/snapback]

Trodde kanskje jeg ba om hjelp ?

Hjelper i alle fall lite for meg å snakke om "change-eventene" osv.

Ta meg på alvor. Det er ikke makroene som er problemet.

Skrevet (endret)

Synderen er funnet!

Jeg hadde lagd forms for å kunne legge inn dataene alternativt.

I disse inngikk også cellene med formler (de som forandret seg til tall etter lagring av regnarket). Ved å inaktivere disse textboksene forsvant problemet!

Ikke vet jeg om det finnes en innstilling / setting som kan tillate redigering av celler som har formler (uten at de endres slik at "gjenoppretting" og inntasting ellers i regnarket bare gir siffer i cellene).

Noen forslag?

Endret av leistr
Skrevet (endret)

Jo, det er makroene som er problemet, og siden de er greske for deg, er det veldig vrient å ta diagnosen din på alvor. Men jeg får ikke hjulpet deg uten at du gir meg den informasjonen jeg trenger.

 

Edit: Ok, forms. Er det en userform med kode, med koblede tekstbokser eller hva ?

Endret av Harald Staff
Skrevet
...

Edit: Ok, forms. Er det en userform med kode, med koblede tekstbokser eller hva ?

6924257[/snapback]

Kobla ja, hvis du mener at de har referanse til cellene som skal redigeres. (jfr. ControlSource = D10 osv.) (prøvde å laste opp , men opplasting feile pga filtype).

Prøv et enkelt språk - dette er ikke mitt felt ....

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...