30. juli 2004 - 10:00Der er
28 kommentarer og 2 løsninger
Læs værdi i en celle inden der kommer en tomme celle i rækken
Hej. Er en der kan hjlæpe mig med denne her opgave.
Jeg har en række består af 31 celler. Jeg indtaster en værdi hverdag i en celler stater fra celle nr. 1. Så har jeg en anden celle hvor den værdi fra den sidste udfyldt celle i rækken kopiers. Der er en detalje mere at celler for weekenderne står også tomme.
Public Function clastInColumn(rLast As Range) As Variant clastInColumn = rLast.Parent.Cells(65536, rLast.Column).End(xlUp).Value End Function
Hvis du har værdierne i cellerne A1 til A31, kan du i celle B1 indtaste denne formel(funktion): =clastInColumn(A1), så får du værdien fra den sidste celle i kollonne A.
Denne løsning stammer fra spørgsmål: http://www.eksperten.dk/spm/460889 hvor jeg med bak's og flemmingdahl's hjælp fik løst mit problem.
Mine værdier ligger i fra A1......til AE1. Altså i en række og ikke i en kolon. værdien fra den højste nr. i rækken som er udfyldte skal være i f.eks. celle B1.
Du går ind i macroredigering med F11, og opretter et modul, derefter kopierer du nedenstående kode ind og "saver" koden.
Derefter indsætter du denne formel i felt B1: =clastInRow(A1)
Public Function clastInRow(rLast As Range) As Variant Application.Volatile clastInRow = rLast.Parent.Cells(rLast.Row, 256).End(xlToLeft).Value End Function
Der er et andet problem. svar cellen ligger også i samme række. jeg har værdier i nr.1 til 31 og i række nr. 32 er svar celle. Det går galt når jeg skriver "=clastInRow(A1)" i denne celle.
Det er jeg nok ikke så clever til, men lidt input kan jeg da give dig.
=clastInRow(A1) dette er nu lig med en formel(funktion), som er gyldig i det regneark, koden er lagt ind i. A1 betyder at den skal lede i række 1, så hvis det skal være i række 12, angiver du bare A12. Funktionen kan du indsætte hvor du vil, den behøver ikke stå i B1.
tobler du har vist talt lidt forkert. Hvis funktionen skal skrives i kolonne nr. 32 er det AF kolonnen. Hvis du laver toblers rettelse (dvs. ændrer 256 til 32), så virker funktionen - også når den placeres i AF1 og også selvom AE1 ikke er tom.
Jeg har prøvet det. Det fungere fint. Nu synes jeg I begge herre har jo bidrag til at jeg kunne løse opgaven. Skal jeg dele pointene. Er det ok fra jer ?
jeg har en tillægges spørgsmål. Hvad så hvis rækken består af en bestemt range: f.eks. fra C til AG. hvilkene ænringer skal jeg lave.
Der er lige en lille problem. tallet i række 31 kommer ikker med i svarcellen (32). Det fungere kun til rækken 31 hvor række 30 er tomme. men i mimn opgave skal jeg bruge række 31. hvad gøre jeg ???
Du kunne måske bruge denne formel. Den skal indtastes som en array-formel, dvs indtastningen afsluttes med ctrl-shift-enter, således at formlen får tuborg-klammer omkring sig {}
Jeg har faktisk løst det lille problem meget simpelt. Jeg funktionen kun hvis den sidte celle er tomme, ellers er svar lig med den sidte celle. Jeg deler pointene ligeligt men hvordan gøre jeg det ? skal jeg tryk Accepter og så kommer der måske nogle valg muligheder .. ?
P.s. sjap -> jo, men den kommer det kolon nr. hvor den sidste værdi findes. så skal jeg lave et eller andet så jeg kan hente selve værdien. Der gik jeg i står.
sjap-> din egen er bedre end MS's :-) 1. MS har en funktion mere end din (maks) 2. Forskydning skal genberegnes hver eneste gang der sker en beregning i excel Så vidt jeg husker er dette ikke tilfældet med Indeks i de nyere versioner af excel
du kan i princippet nøjes med =INDEKS(1:1;1;SAMMENLIGN(9,999999E+306;A1:AF1)) (uden kolonnenavne i starten)
bak -> Du er nu ret snu. Den havde jeg ikke lige luret. Du må være kandidat til Falkeøjeprisen.
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.