25. juni 2004 - 11:04Der er
18 kommentarer og 1 løsning
celleindhold som en del af en tekst-reference
Jeg samler nogle data fra forskellige medarbejderes timeforbrugsskemaer i en oversigt over samlet timeforbrug på de enkelte projekter, vi har i gang. Derfor skal jeg lave en mængde kæder til eksterne regneark (den enkeltes timeskema)inde i min oversigt. Alle timeskemaer ligger i samme mappe og hedder det samme - bortset fra medarbejderen navn, f.eks.: "Arbejdstidsskema 2004 Lars.xls" for mit eget vedkommende. Henvisningen i oversigten kommer derfor eksempelvi til at til at hedde: "C:\Timesedler\[Arbejdstidsskema 2004 Lars.xls]Dataark'!$C$5".
Nu har jeg så en lang række medarbejdere, hvis timesedler jeg skal henvise til. Den eneste forskel i de mange henvisninger, er at Lars byttes ud med Knud, Per og Poul etc. I stedet for at skulle klikke ind i formellinien på den enkelte celle på det helt rette sted og der taste det rigtige navn, ville jeg have stor fordel af at kunne taste navnet i øverste celle, A1, i medarbejderens kolonne og så indsætte denne celles tekst-indhold som en del af referencen til det pågældenden fil-navn, altså noget a la dette: "C:\Timesedler\[Arbejdstidsskema 2004 [A1].xls]Dataark'!$C$5". Det ville også gøre det muligt for mig at genbruge navnet indtastet i A1 i flere formler nedover i oversigten.
Jeg har bøvlet en del med dette i flere omgange, så jeg sætter et par hundrede points på højkant, da det vil være en stor hjælp om det kunne lykkes.
Opgaven kan løses med INDIREKTE(), men det kræver at alle de regneark, du skal referere til er åbne, da funktionen kun virker på åbne ark. Alternativt må der nok laves en makro, som gør det.
Men det er jo en rent intern opgave at udforme formellinien, så hvorfor skal det eksterne regneark være åbent? Når jeg manuelt skriver henvisningen fuldt ud, fungerer det fint selv om de andre ark ikke er åbne. Det jeg efterlyser er altså bare at formlen flettes sammen af en fast tekst og en tekstværdi fra en anden celle i samme regneark. Men det var måske også sådan du havde forstået spørgsmålet og bare mig, som ikke helt forstår svaret?
Det er rigtigt, at det virker, hvis du gør det manuelt, men når du fletter sammen af fast tekst og værdi fra anden celle, bliver det til en tekststregn, ikke en reference. Du er derfor nødt til at bruge INDIREKTE til at oversætte tilbage til en reference, og INDIREKTE virker kun på åbne ark.
Dette er nok ikke de vises sten, og måske har misforstået opgaven, men det kan mpske gøre tilværelsen nemmere:
Jeg forudsætter, at hver medarbejder har en kolonne i dit samleark, og at den information, du skal hente for den pågældende medarbejder ligger i samem ark og samem celle for alle medarbejdere. Medarbehjderens navn står øverst i hver kolonne.
Hvis du placerer din markør i den celle, hvor du vil have indsat informationen og afspiller denne makro, indsætter den en formel, der henter data fra celle C5 i den relevante medarbejders projektmappe. Funtkionen er dog ikke dynamisk, og dui skal afspille makroen for hver enkelt medarbejder.
Sub IndsLnk() a = Selection.End(xlUp).Value b = "='C:\timesedler\[arbejdstidsskema 2004 " & a & ".xls]datark'!$C$5" ActiveCell.Formula = b End Sub
Jeg er bange for at du har ret. Jeg har afprøvet dit forslag med indirekte() i samleskemaet, og det fungerer helt som jeg kunne tænke mig - når altså det andet ark er åbent... Så det kan nok ikke lade sig gøre uden, som du skriver. Og du har forstået det korrekt, at det et helt parrallelt problem som det der behandles i det spørgsmål du henviser til.
jeg kunne dog godt lige tænke mig at afprøve dit sidste forslag, men jeg har aldrig arbejdet med makroer i Excel før, kun i Access, og det er jo noget helt andet. Så hvordan lægger jeg en makro ind i en celle, og hvordan afspiller jeg den?
Makroen skal ikke ligge i en celle, men i et modulark.
Tryk Alt+F11. Vælg Insert - Module. Kopier koden til arket.
Luk VBA igen.
Stå i den celle, hvor værdien fra det andet ark skal indsættes. Vælg funktioner - makro - makroer. Marker makroen og klik på afspil. Hvis det virker kan vi lave en genvejstast til dig.
Tak for hjælpen. Det ser ikke helt ud til at fungere med makroen, og jeg har ikke lige tålmodighed til at sætte mig ind i, hvad der er galt. Jeg vil også helst undgå behovet for at skulle have de andre ark åbne for at kunne læse min oversigt, så jeg tror jeg vil affinde mig med at skulle taste hele stier ind når der sker ændringer i medarbejderstaben. Men jeg blev da lidt klogere m.h.t. dynamiske referencer, når det gælder inden for samme fil - og det tror jeg jeg kan få megen glæde af fremover. Så tak for indsatsen, som var både hurtig og præcis.
Undskyld, nu er jeg her igen. Jeg har fået makroen til at fungere!! og ser nu værdien af den, i forbindelse med oprettelse af nye medarbejdere. Jeg fik ovenikøbet oprettet en knap som kører makroen, så det er så nemt, så nemt!!! Vil jeg kunne udvide makroen til at tilføje to forskellige referencer i samme kolonne i række b og c?, da ville det være helt perfekt.
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.