24. oktober 2003 - 11:35Der er
21 kommentarer og 1 løsning
Overføre celleværdi fra regneark 2 til regneark 1
Kan jeg få hjælp til følgende:
BDA Antal 5 (står på regneark 2) BDA Antal 6 (står på regneark 1)
Jeg skal have de 5 over på regneark 1, så der herefter står 11. På regneark 2 er der andre initialer med et antal, de skal ligeledes over på regneark 1 i de respektive celler, jf. nedenfor:
Regneark 1
BKS 2 PHE 3 BDA 6
Regneark 2
BDA BDA BDA BDA BDA BDA Antal 5 LUK LUK LUK Antal 2 PHE PHE PHE Antal 2 BKS BKS BKS BKS Antal 3
Nej, det kunne jeg godt selv finde ud af. Problemet er, at der på ark 2 er flere initialer nedad og det skal være det antal der er ud for et initial, som skal lægges til antallet på det samme initial i ark 1. Dvs. der skal søges ned igennem kolonnen til initial findes i cellen - antal lægges til i ark 1. Herefter søges videre ned til ny initial dukker op - antal lægges til i ark 1 osv. Ark 2 "fødes" 1 gang månedligt med data fra kommafil, så derfor vil det ikke altid være samme celle, data ligger i. Dog er det altid samme celle antallet skal over i i ark 1.
Måske dette kan hjælpe: Lav evt. et ark3 på baggrund af ark1, brug funktionen LOPSLAG fra ark2 og tillæg værdierne fra ark1. På den måde vil du også få indsat evt. initialer fra din kommafil som måske ikke eksisterer i forvejen - men ikke slette rækker.
Når du siger, at det, der ståri ark2 skal lægges til det, der står i ark1, mener du så, at når der kommer nye data i ark2 (hver måned), skal den huske det, der allerede ståri Ark1, og så lægge de nye data fra ark2 til?
Jeg har opgivet at finde ud af at bruge Tæl.Hvis og LOPSLAG. Derimod har jeg fået løst noget af opgaven ved at bruge SLÅ.OP: =SLÅ.OP("BDA Antal";STATISTI!A:A;STATISTI!B:B). Nu er mit problem bare, hvilket er svar til jkrons, at få lagt antallet til det eksisterende i ark 1. Så ja, det gamle antal skal huskes for så at lægge det nye antal til fra ark2.
Her er du så nok nødt til at gå en omvej. Da tallet i Ark1 er baseret på en formel, må formlen nødvendigvis referere til cellen selv, hvilket betyder en cirlulær reference. Har du fx BDA stående i A2, og hans "tal" i B2, kan formlen i B2 se ud som følger: =B2+SLÅ.OP("BDA Antal";STATISTI!A:A;STATISTI!B:B)
For at det kan virke må du så gå ind i Funktioner -Indstillinger - Beregning og vælge at sætte flueben i Gentagelser, og sætte maksimalt antal gentagelser til 1. Samtidigt bliver du nok nødt til at sætte Beregning til Manuel, for ellers genberegner den alle linier hver gang, du opdaterer.
jkrons - jeg har nu på ark1 i ny celle lavet formlen =B17+SLÅ.OP("BDA Antal";STATISTI!A1:A250;STATISTI!B:B), og jeg får det samlede antal 19. B17 består af tallet 6 (ingen formel) og antallet fra ark2 er 13, hvilket giver i alt 19. Det er fint. Men hvordan får jeg nu 19 op i cellen i ark1, hvor der står 6? Cellen har jo det opr. antal
Det kan da ikke lade sig gøre. Jeg bruger jo nuværende indhold i feltet, hvor også resultatet skal stå (p.t. tallet 6). Tallet bliver overskrevet, og så kan formlen ikke udregnes??? Kan man ikke kopiere indholdet fra B17 (p.t. 6) og fastholde dette i en anden celle XX. Når så formlen er udregnet og tallet er ændret til 19, skal 19 kopieres over i XX, som så ændres fra 6 til 19?? Formlen skal så, som du siger, laves i B17 og starte med XX+SLÅ.OP....
Ja, jeg er ved at tilpasse et ark, der er data i. Ark1 findes i øjeblikket, og ark2 er noget nyt, hvor jeg lægger kommafilen ind. Jeg prøver at ændre det, så man ikke skal taste data manuelt ind, men i stedet via kommafilen få dataerne ind.
Så er jeg med :-) Så kommer du nok ikke uden om noget makroprogrammering. Det må være noget med at lave en makro, der husker den nuværende værdi og indsætter en formel, der vil virke fremover, men hvor den eksisterende værdi i cellen allerede er lagt til. Men den skal kun køre en gang, ellers går det galt, og det kan jeg ikke umiddelbart se kan lade sig gøre.
Jeg går ud fra at at du i ark2 bruger subtotaler, så alt står i kolonne B. I Ark 1 har du navne i A kolonnen og Værdier I B kolonnen
Sub TælSammen() Dim D1 As Variant, D2 As Variant, A As Integer, B As Integer Application.ScreenUpdating = False A = Sheets("Ark1").Range("A65536").End(xlUp).Row B = Sheets("Ark2").Range("B65536").End(xlUp).Row D1 = Sheets("Ark1").Range("A1:B" & A) 'Søger i Kolonne A og skriver I kolonne B D2 = Sheets("Ark2").Range("B2:B" & B) ' søger i kolonne B, fra B2 For T = 1 To UBound(D2, 1) - 1 For I = 1 To UBound(D1, 1) If D1(I, 1) = D2(T, 1) And IsNumeric(D2(T + 1, 1)) Then D1(I, 2) = D1(I, 2) + D2(T + 1, 1) End If Sheets("Ark1").Range("A1:B" & A) = D1 'Skriv resultat Next Next Application.ScreenUpdating = True Range("A1").Select End Sub
Du har ret i dine formodninger. Nu har jeg lagt makroen ind. Jeg har svært ved at gennemskue den - mange udtryk jeg ikke kender. Der kommer en kørselsfejl i linien, hvor jeg har sat en *:
If D1(I, 1) = D2(T, 1) And IsNumeric(D2(T + 1, 1)) Then * D1(I, 2) = D1(I, 2) + D2(T + 1, 1) End If
Det kan være, at jeg ikke er god nok til dette her, så jeg må give fortabt...
Til Kabbak. Umiddelbart kan jeg ikke få den nye antal ind i de respektive celler. Jeg arbejder selv på det herfra og takker for hjælpen. Hvis du svarer nu, giver jeg accepten.
ok, kan du ikke fortælle om der er andet, du skal bruge fra Ark 2, udover antallet,så vil jeg lave et nyt forsøg. For hvis det er mere, kan vi ligesågodt tage det i et hug.
Jeg har fundet en anden løsning, idet jeg, når jeg laver kommafilen, får total antal med. Jeg kan derfor nu indsætte det totale antal i de respektive celler isf. at lægge antallet til celleindholdet. Du behøver derfor ikke gøre mere for mig. Jeg takker for hjælpen - send svar til mig, så du får pointene.
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.