kjakan2005 Skrevet 24. oktober 2011 Del Skrevet 24. oktober 2011 Jeg skal lage en del grafer i et regneark som henviser til en del ark som ikke finnes enda. Poenget er at jeg har et ark for hver måned, og når vi nå er i oktober måned, så har jeg ikke tallene for nov-des enda. Jeg ønsker at når jeg legger inn nov og desember arkene, så skal formlene (og dermed grafene) automatisk oppdatere seg i henhold til de nye arkene. Problemet er at i øyeblikket står det #I/T i cellen som refererer til november-tallene (og det er forsåvidt greit nå som ikke november arket er lagt inn). Når jeg legger inn november-arket (testfil), så står det fremdeles #I/T i cellene som refererer til november arket. Går jeg inn i formelen og trykker "enter", da viser cellen riktig verdi. Tips til hvordan jeg kan løse dette problemet? Lenke til kommentar
Ekko Skrevet 25. oktober 2011 Del Skrevet 25. oktober 2011 2 løsninger: Enten lager du alle arkene på forhånd. Hvis du ikke har en god grunn til å ikke gjøre det på den måten ville jeg gjort det slik. Eller så bruker du en formel av denne typen: =IF(ISREF(INDIRECT("'Sheet5'!A1")),INDIRECT("'Sheet5'!A1"),"") Hvis arket ikke finnes viser den en blank celle, hvis det finnes får du verdien. Lenke til kommentar
kjakan2005 Skrevet 25. oktober 2011 Forfatter Del Skrevet 25. oktober 2011 Takk for svar. Formlene jeg bruker idag er allerede ganske lange, hvis jeg skal bruke den Indirekte formelen, så blir formlene svært vanskelig å vedlikeholde. En annen løsning er å gjøre noe med VBA. Som du skrev, så kan jeg lage alle arkene på forhånd (tomme), og så kan jeg ha en lage en makro som gjør at det kommer innhold i de aktuelle arkene. Problemet mitt blir å velge riktig ark. Jeg har kalt arkene januar, februar [...] desember. Jeg har et regneark som heter bok1.xls (som inneholder arkene rapport og ark1) og en som heter bok2.xls (bok2.xls inneholder arkene januar, februar, mars..., desember). I celle J1 i arket "rapport" står det aktuelle månedsnavnet. Det jeg ønsker er å gå inn i "ark1" i bok1.xls, kopiere alle cellene, gå over i bok2.xls og automatisk komme inn i det riktige månedsarket (basert på hva som står i celle J1 i arket "rapport" i bok1.xls), og lime inn cellene (som jeg kopierte fra bok1.xls "ark1"). Jeg klarer forsåvidt kopiere/lime fra en fil til en annen, men når jeg prøver å lage kode for å velge riktig ark basert på en cellereferanse i et eget ark, ja da blir det problemer... Lenke til kommentar
Ekko Skrevet 25. oktober 2011 Del Skrevet 25. oktober 2011 (endret) Det du evt kan gjøre er å bruke et "hjelpeark". Bruk formelen jeg gav deg kun til å hente verdien og legg dette i et eget ark som ikke brukes til noe annet. Så bruker du vanlige formler og refererer til verdiene på dette arket. (Om du ikke skjønner hva jeg mener, si ifra, så skal jeg forklare bedre). Når det gjelder det å hoppe til riktig ark vet jeg ikke helt hvordan det kan gjøres. Mulig du kan lage en VB-knapp som åpner bok2!februar basert på innholdet i en celle. edit:typo Endret 25. oktober 2011 av Ekko Lenke til kommentar
kjakan2005 Skrevet 25. oktober 2011 Forfatter Del Skrevet 25. oktober 2011 Det du evt kan gjøre er å bruke et "hjelpeark". Bruk formelen jeg gav deg kun til å hente verdien og legg dette i et eget ark som ikke brukes til noe annet. Så bruker du vanlige formler og refererer til verdiene på dette arket. (Om du ikke skjønner hva jeg mener, si ifra, så skal jeg forklare bedre). Ser poenget ditt, men tror VBA koden jeg skisserte hadde vært enda bedre. Muligens dårlig forklart (ville bare forklare nøyaktig hva jeg tenkte meg), men er nok en svært enkel VBA koding...er nok et par linjer som viser hvordan jeg velger et worksheet basert på en cellereferanse i et annet regneark... Lenke til kommentar
Harald Staff Skrevet 25. oktober 2011 Del Skrevet 25. oktober 2011 Kode for å velge regneark: Function ValgtArk() As Worksheet Dim Rng As Range On Error Resume Next Set Rng = Application.InputBox("Klikk en celle i arket vi skal bruke:", Type:=8) If Not Rng Is Nothing Then Set ValgtArk = Rng.Parent End If End Function Sub test() Dim Wks As Worksheet On Error Resume Next Set Wks = ValgtArk If Not Wks Is Nothing Then MsgBox "Du valgte " & Wks.Name End Sub HTH. Beste hilsen Harald Lenke til kommentar
kjakan2005 Skrevet 25. oktober 2011 Forfatter Del Skrevet 25. oktober 2011 Harald, litt usikker på denne koden. Hvorfor starter koden med Function og ikke Sub (som alle vanlige koder gjør?). Vet ikke hvordan den første biten blir integrert med den neste... Forøvrig er målet mitt at cellene som blir kopiert ("ark1" fra bok1.xls) skal bli kopiert inn i riktig ark i bok2.xls (riktig ark er det arket som har samme navnet i bok2.xls som celle J1 i "rapport" i bok1.xls). Dette må skje automatisk (siden det er del av en lengre makro) og kan ikke ha noen manuelle valg (som feks å klikke på bokser osv). Lenke til kommentar
Harald Staff Skrevet 25. oktober 2011 Del Skrevet 25. oktober 2011 Til det første; en Function er kode som returnerer en verdi mens en Sub returnerer ingenting ("void" i en del andre språk). Automatikken du beskriver krever mye mer detaljer enn vi kan lese her, og det er utallige feilkilder selv da. Navngiving kan man aldri stole på. Beste hilsen Harald Lenke til kommentar
kjakan2005 Skrevet 25. oktober 2011 Forfatter Del Skrevet 25. oktober 2011 skjønner. Når du skriver detaljer, så tenker du kanskje på forklaring av problemet jeg er ute etter å løse? Det er ganske godt beskrevet i innlegget mitt kl 10:39 lenger oppe i denne tråden. Mulig det er jeg som undervurderer kompleksiteten rundt denne koden, men har lest en del på nett i ulike fora, men fant ikke noe som fungerte for meg (excel 2003). Kodene ser dog ikke så voldsomt avanserte ut (selv for en newbie for meg). Lenke til kommentar
kjakan2005 Skrevet 25. oktober 2011 Forfatter Del Skrevet 25. oktober 2011 (endret) nå tror jeg at jeg fant noe som kan brukes =) Sub velgeark() Dim strSheet As String strSheet = Format(ThisWorkbook.Sheets(1).Range("J1")) Workbooks("Bok2.xls").Activate Sheets(strSheet).Select End Sub Ser ut som jeg slipper å bruke den indirekte formelen nå =) Endret 25. oktober 2011 av kjakan2005 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå