Hente data fra flere ens regnearkfiler til et nyt regneark
Hvordan kan man hente Data fra en kalkulationsark (1920.xls)hvor man henter nogle af tallene over i et andet regneark, så man kan regne videre med hensyn til andre omkostninger.Man skal kunne skrive 1920 og så hentes oplysningerne fra (1920.xls) over i regnearket.
Den nemmeste måde er at have begge regneark åben, så marker du en celle i det ark der skal importeres til og trykker \"+\" derefter går du over i det andet regneark og trykker på en af de celler du skal have importeret, derefter slutter du af med at trykke \"enter\". Hermed har du lavet en reference fra et ark til et andet.
En anden måde du kan lave det på (nu hvor jeg har læst spørgsmålet en ekstra gang og fået en anden forståelse af det). I a-kolonnen kunne du skrive filnavnet \"1920\", og i b-kolonne kunne du få importværdien vha flg formel:
=INDIREKTE(\"\'F:\\EM\\Kalkulationer\\kalk 2002\\[&A1&\".xls]Ark1!$K$21) Dette er sætningen som jeg har forsøgt med men den skriver at formlen er ugyldig Hvorfor?
· Hvis reference refererer til en anden projektmappe (en ekstern reference), skal denne projektmappe være åben. Hvis kildeprojektmappen ikke er åben, returnerer INDIREKTE fejlværdien #REFERENCE!
Det var derfor jeg skrev at det kræver at arket 1920 er åben.
Mht din formel så skal den se sådan ud: =INDIREKTE(\"\'F:\\EM\\Kalkulationer\\kalk 2002\\[\"&A1&\".xls]Ark1!$K$21\")
Du manglede lige et par \"\" ovenstående reference virker kun hvis arket er åben. Men som sagt kan jeg kun se det løst vha af vba.
Håber lige du kan lidt VBA hvis du ændrer i kol a hentes data fra den fil hvis filnavn du skriver der. du skal selv ændre de celler du ønsker at hente. indsæt denne makro i arkets eget kodemodul:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rcolumn As Range Set rcolumn = Range(\"A:A\") If Not Intersect(Target, rcolumn) Is Nothing Then Filnavn = Target.Value & \".xls\" sti = [m2] arknavn = \"Ark1\" celle = Array(\"A5\", \"B5\", \"C5\") \' celler at kigge i \'******************************* For x = 0 To UBound(celle) Target.Offset(rowOffset:=0, columnOffset:=x + 1) = \"=\'\" & sti & \"\\[\" & Filnavn & \"]\" & arknavn & \"\'!\" & celle(x) Next x End If End Sub
Jeg Kender ikke VBA og jeg kunne stadig ikke få den første sætning til at virke, men det er jo også makroen som bliver løsningen. Kan du fortælle lidt om hvordan jeg skriver makroen ind -ellers må finde ud af det på en anden måde, men jeg siger mange tak for svaret
Arkets eget kodemodul findes ved at stille sig på fanebladet, højreklikke og vælge \"vis kode\" Du kopier så ovenstående makro direkte ind i kodemodulet. Derefter skal du ændre denne linie: celle = Array(\"A5\", \"B5\", \"C5\") Her skal du skrive de celler, som du ønsker overført. Når du skriver et navn i kolonne A, vil makroen så hente oplysningerne fra ovenstående celler i det ark der er nævnt i kolonne A.
Jeg har næsten fået det til at virke problemet nu er at den ikke kan finde den rigtige sti. Den søger på F: men den skal søge på F:\\EM\\Kalkulationer\\kalk 2002 Hvordan kan kan det ændres?
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.