29. januar 2003 - 22:33Der er
6 kommentarer og 2 løsninger
hente data til en celle fra andet ark med betingelse
Hej med jer
Jeg vil prøe at ridse mit problem op for jer:
celle a1: sv celle a2: oplysninger fra et andet ark med navnet sv
dvs det skal være muligt at hente oplysninger fra forskellige ark alt efter hvilken forkortelse man skriver i celle a1. oplysninger der skal hentes vil være forskellige alt efter hvilken forkortelse man skriver i a1
for hver forkortelse man skriver i a1 vil der være et ark benævnt med forkortelsen
Normalt kan man bruge en hvis-sætning til at hente oplysningerne, hvis man kender forkortelsen man skriver i a1 er kendt, men jeg skal bruge ca 55 forskellige forkortelser så det bliver mange hvis-sætninger.
Håber I kan udrede hvad det er jeg mener med mit spørgsmål og forhåbentlig hjælpe mig
Gå til Funktioner -> Macro -> Visual Basic Editor (eller tryk Alt+F11) Dobbeltklik på Ark1 (eller hvad dit ark nu hedder - det er at finde til venstre under Microsoft Excel Objects
Indsæt nedenstående kode:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then Select Case Cells(1, 1).Value Case "Ark2" Cells(2, 1).Value = "=Ark2!A2" Case "Ark3" Cells(2, 1).Value = "=Ark3!C4" Case "Ark4" Cells(2, 1).Value = "=Ark4!D4" Case Else MsgBox "Ugyldigt arknavn " & ActiveCell.Value, vbOKOnly, "Fejl 40" Cells(2, 1).Value = "" End Select End If End Sub
Som du ser virker den ved, at macroen bliver kørt, når du ændrer på celle A1. Hvis du skriver "Ark2" indsætter den celle A2 fra Ark2 i celle A2 Hvis du skriver "Ark3" indsætter den celle C4 fra Ark3 i celle A2 Hvis du skriver "Ark4" indsætter den celle D4 fra Ark4 i celle A2 Hvis du skriver noget andet får du en fejlmeddelse
Så er det bare at rette til, med hvilke celler der skal indsættes, og hvad arknavnene hedder...
Jeg kan godt se at det virker, men der skal beregnes 21 celler for hver forkortelse jeg skriver og der skal skrives op til 20 forskellige forkortelser hver gang, så det bliver mange cases der skal skrives før det kommer til at virke. jeg havde forstillet mig at man kunne skrive i celle a2 kunne skrive noget der ligner:
=a1!b2
hvor der i a1 står navnet på det ark der skal hentes oplysninger fra. Dvs. det jeg kunne tænke mig at bruge var en formel der kunne skrive den rigtige forkortelse fra a1 og sætte endelsen !b2 bagefter i en hvilken som helst celle
svaage: Jamen, nu du har gang i en macro, kan du jo kode dig ud af alle problemer! Jeg har bare ikke helt fattet hvad du mener, selvom du har forsøgt at skrive det meget tydeligt.
Du kan jo sagtens lave en lille funktion i din macro, der napper ark-navnet fra A1, og så indsætter fx. 20 henvisninger til bestemte celler i arket i 20 andre celler. Jeg er bare ikke med på hvad du mener - nu har du en macro der kan se hvilket arknavn du skriver i A1, og hente bestemte celler fra det arknavn. Og er det ikke præcis det du vil?
I superjap's forslag indsætter du et par $-tegn: =INDIREKTE($B$1&"!A1"), så kan denne formel koiperes til de celler du ønsker. Desværre er A1-referencen her indsat som en tekst, hvilket vil sige at den ikke automatisk tilpasser sig til de celler du kopierer den til. Så du skal efter kopieringen ind i hver enkelt celle og rette A1 til A2 - A3 - A4 osv.
Martin Moth og superjab deler hermed point tak for hjælpem
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.