iLLegal-_^TaXi Skrevet 28. oktober 2015 Del Skrevet 28. oktober 2015 (endret) Hei! Trenger hjelp med en formel, dette er utgangspunktet mitt:1 bok med 3 ark, det jeg ønsker er: 1. Ark 1 - kolonne A - rad 1 skal hente Ark2 kolonne B rad 1 (Dette er ok) 2. Ark1 - Kolonne A - rad 2 skal sammenligne Ark 1 - Kolonne A - rad 1 med Ark2 og Ark3 kolonne B og returnere den neste ukjente verdien. Altså finner den verdien fra Ark1 i Ark3 skal den returnere neste ukjente verdi fra enten Ark2 eller Ark3. 3. Ark1 - Kolonne A - rad 3 skal sammenligne Ark 1 - Kolonne A - rad 2 med Ark2 og Ark3 kolonne B og returnere den neste ukjente verdien. Altså finner den verdien fra Ark 1 i Ark2 eller Ark3 skal den returnere neste ukjente verdi fra enten Ark2 eller Ark3. 4. Slik skal det fortsette til den har tatt alle verdiene som står i Ark2 og Ark3 kolonne B. Her ligger en start på Boken: https://www.dropbox.com/s/djswoqd3itn6c5i/test.zip?dl=0 Håper noen skjønner hva jeg er ute etter! På forhånd takk!MvhDaniel Endret 28. oktober 2015 av Daniel206RC Lenke til kommentar
ExcelGuru Skrevet 28. oktober 2015 Del Skrevet 28. oktober 2015 Morsomt Lim inn denne i A2 og kopier den nedover =HVIS(A1='Ark2'!B1=A1;'Ark2'!B2;HVIS(A1='Ark3'!B1;'Ark3'!B2;0)) God natt 1 Lenke til kommentar
iLLegal-_^TaXi Skrevet 29. oktober 2015 Forfatter Del Skrevet 29. oktober 2015 Takk for svar, det fungerer nesten Har prøvd litt på egenhånd og kommet fram til noe som gir de riktige verdiene ut, den ligger vedlagt i dette innlegget. Finnes det ingen enklere måte enn dette? er en verdi først "hentet" til Ark1 skal den ikke opptre i Ark1 igjen.https://www.dropbox.com/s/hq0s13nqq21ybc2/test.xlsx?dl=0 Lenke til kommentar
ExcelGuru Skrevet 29. oktober 2015 Del Skrevet 29. oktober 2015 For meg hadde det hjulpet veldig om du sier noe om "Varför du gör på detta viset" Enkel løsning på kompliserte oppgaver er ønskelig - og komplisert Vennlig hilsen Ketil Lenke til kommentar
iLLegal-_^TaXi Skrevet 29. oktober 2015 Forfatter Del Skrevet 29. oktober 2015 (endret) For meg hadde det hjulpet veldig om du sier noe om "Varför du gör på detta viset" Enkel løsning på kompliserte oppgaver er ønskelig - og komplisert Vennlig hilsen Ketil Hehe! Jeg har en bok med flere ark med beregninger av pris for en vare og en tjeneste. Jeg skal i et nytt ark hente ut alle varenummerene som er brukt i de arkene men skal bare ha nummeret 1 gang selv om de går igjen i flere av arkene. jeg har allerede laget formelen for å hente ut antallet av varene fra alle arkene (=HVISFEIL(INDEKS('Ark2'!C:C;SAMMENLIGNE(A:A;'Ark2'!B:B;));0)) men sliter med å hente ut varenummeret bare en gang til kolonne A Endret 29. oktober 2015 av Daniel206RC Lenke til kommentar
ExcelGuru Skrevet 29. oktober 2015 Del Skrevet 29. oktober 2015 Ok, så oppgaven er å telle antall unike artikkelnummer i arkene? Lenke til kommentar
iLLegal-_^TaXi Skrevet 29. oktober 2015 Forfatter Del Skrevet 29. oktober 2015 Ok, så oppgaven er å telle antall unike artikkelnummer i arkene? Nei, jeg skal hente ut varenummeret fra ark2 og 3, finner den varen i ark 2 og 3 skal den kun skrive varenummeret 1 gang i ark1 kolonne A - rad 1 og deretter skal kolonne A - rad 2 gjøre samme jobben, dette skal fortsette helt til raden ikke finner flere varenummere, altså blankt felt.(dette får jeg ikke til), videre gjør ark1 opptellingen av de varene som er funnet(Denne delen er ok). Dette er hva jeg bruker boken til: Jeg regner en pris på en jobb ved å legge inn en "gruppepris" for montering, deretter legger jeg inn et varenummer og antallet av varen, dette gjentar jeg til hele jobben med alle varene som skal brukes er med, deretter summerer jeg alt som har med pris å får en totalpris for å gjøre denne jobben. Antallet varer, gruppepris og totalpris har jeg kontroll på, men jeg ønsker da at Ark1 skal finne alle varenummerene jeg har lagt til i Kolonne B i alle arkene og skrive disse kun 1gang, dette fordi jeg summerer disse ved å hente varenummeret fra kolonne A i Ark1. Dette vil jo ikke fungere før det står et varenummer i Ark1 Kolonne A, så jeg må nå skrive disse manuelt inn for at summeringen skal skje, varenummeret har jeg jo allerede skrevet inn i Ark 2 kolonne B, kanskje har jeg skrevet det i Ark3 kolonne B også, så jeg vil slippe å skrive inn varenummeret enda en gang i Ark1. Ser dette er vanskelig å lese, men håper du ser hva jeg er ute etter Lenke til kommentar
ExcelGuru Skrevet 29. oktober 2015 Del Skrevet 29. oktober 2015 For å få til dette kan du bruke makroen under Du kan laste ned eksempelfilen din her http://www.excelguru.no/download/1646/ Makroen tøffer gjennom alle regnearkene bortsett fra Ark1 og plasserer alle unike artikler i A-kolonnen. Bytter du navn på Ark1, må du endre linjen Set Ark = Sheets("Ark1") Vennlig hilsen Ketil Sub Transfer() Dim s As Double Dim a As Integer Dim Ark As Worksheet Dim R As Range Set Ark = Sheets("Ark1") Set R = Ark.Range("A:A") For i = 1 To ActiveWorkbook.Worksheets.Count If ActiveWorkbook.Worksheets(i).Name <> Ark.Name Then With ActiveWorkbook.Worksheets(i) x = 1: While .Cells(x, 2) <> "" s = .Cells(x, 2) a = 0 On Error Resume Next a = Application.WorksheetFunction.Match(s, R, 0) If a = 0 Then l = l + 1 Ark.Cells(l, 1) = s End If x = x + 1: Wend End With End If Next i End Sub 1 Lenke til kommentar
iLLegal-_^TaXi Skrevet 29. oktober 2015 Forfatter Del Skrevet 29. oktober 2015 For å få til dette kan du bruke makroen under Du kan laste ned eksempelfilen din her http://www.excelguru.no/download/1646/ Makroen tøffer gjennom alle regnearkene bortsett fra Ark1 og plasserer alle unike artikler i A-kolonnen. Bytter du navn på Ark1, må du endre linjen Set Ark = Sheets("Ark1") Vennlig hilsen Ketil Sub Transfer() Dim s As Double Dim a As Integer Dim Ark As Worksheet Dim R As Range Set Ark = Sheets("Ark1") Set R = Ark.Range("A:A") For i = 1 To ActiveWorkbook.Worksheets.Count If ActiveWorkbook.Worksheets(i).Name <> Ark.Name Then With ActiveWorkbook.Worksheets(i) x = 1: While .Cells(x, 2) <> "" s = .Cells(x, 2) a = 0 On Error Resume Next a = Application.WorksheetFunction.Match(s, R, 0) If a = 0 Then l = l + 1 Ark.Cells(l, 1) = s End If x = x + 1: Wend End With End If Next i End Sub Tusen hjertelig takk, funker utmerket i test dokumentet mitt, men når jeg bruker den i selve hovedboken min får jeg feilen: Run time error '13' Type mismatch Dette er linjen som blir gul ( s = .Cells(x, 2), har endre Set jeg er ikke så kjent med makroer så sliter med feilsøking og ser ikke helt hva linjen gjør, kan du forklare kjapt? Lenke til kommentar
iLLegal-_^TaXi Skrevet 29. oktober 2015 Forfatter Del Skrevet 29. oktober 2015 (endret) For å få til dette kan du bruke makroen under Du kan laste ned eksempelfilen din her http://www.excelguru.no/download/1646/ Makroen tøffer gjennom alle regnearkene bortsett fra Ark1 og plasserer alle unike artikler i A-kolonnen. Bytter du navn på Ark1, må du endre linjen Set Ark = Sheets("Ark1") Vennlig hilsen Ketil Sub Transfer() Dim s As Double Dim a As Integer Dim Ark As Worksheet Dim R As Range Set Ark = Sheets("Ark1") Set R = Ark.Range("A:A") For i = 1 To ActiveWorkbook.Worksheets.Count If ActiveWorkbook.Worksheets(i).Name <> Ark.Name Then With ActiveWorkbook.Worksheets(i) x = 1: While .Cells(x, 2) <> "" s = .Cells(x, 2) a = 0 On Error Resume Next a = Application.WorksheetFunction.Match(s, R, 0) If a = 0 Then l = l + 1 Ark.Cells(l, 1) = s End If x = x + 1: Wend End With End If Next i End Sub Tusen hjertelig takk, funker utmerket i test dokumentet mitt, men når jeg bruker den i selve hovedboken min får jeg feilen: Run time error '13' Type mismatch Dette er linjen som blir gul ( s = .Cells(x, 2), har endre Set jeg er ikke så kjent med makroer så sliter med feilsøking og ser ikke helt hva linjen gjør, kan du forklare kjapt? Kan dette være fordi jeg har tekst i B1 i alle arkene?? Tallene start først i B7 Endret 29. oktober 2015 av Daniel206RC Lenke til kommentar
ExcelGuru Skrevet 29. oktober 2015 Del Skrevet 29. oktober 2015 Det er riktig. Hvis du endrer linjen x = 1: While .Cells(x, 2) <> "" til x = 7: While .Cells(x, 2) <> "" Så bør det funke Lenke til kommentar
iLLegal-_^TaXi Skrevet 29. oktober 2015 Forfatter Del Skrevet 29. oktober 2015 Det er riktig. Hvis du endrer linjen x = 1: While .Cells(x, 2) <> "" til x = 7: While .Cells(x, 2) <> "" Så bør det funke Det funket! Ssiste problem er at den skal starte å skrive i A3 i Ark1 ikke A1 som skjer nå, jeg trodde at det bare var å endre Set R = Ark.Range("A:A") til Set R = Ark.Range("A3:A50") men dette hjalp ikke. Lenke til kommentar
ExcelGuru Skrevet 30. oktober 2015 Del Skrevet 30. oktober 2015 Så bra. Etter denne linjen Set R = Ark.Range("A:A") skriver du L=2 Da er det i boks God helg! Lenke til kommentar
iLLegal-_^TaXi Skrevet 30. oktober 2015 Forfatter Del Skrevet 30. oktober 2015 Så bra. Etter denne linjen Set R = Ark.Range("A:A") skriver du L=2 Da er det i boks God helg! Herregud så enkelt Takk igjen! Er det noe sted man kan lære seg makro koding?? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå