Gå til innhold

Excel: problemer med formelhenvisninger til ark som ikke finnes


kjakan2005

Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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 av Ekko
Lenke til kommentar

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

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

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

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

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