10. september 2008 - 10:39Der er
8 kommentarer og 1 løsning
Hente linier fra et andet ark
Jeg har et ark med ca. 10000 linier, som jeg gerne vil hente lidt data ud af.
Datene ligger i arket "2008" I kolonne C står der et bonnr. Det samme bonnr. optræder fra 1-10 gange i kolonne C.
Når jeg står i arket genudskriv, kunne jeg godt bruge en makro eller lignende der henter alle linier over i arket "genudskriv" som har det nr. jeg taster ind i celle a1
Den må meget gerne starte med at indsætte linierne fra linie 5.
Jeg ved ikke om man evt. kunne bruge en formel, men tror det ikke. Så jeg vil tro at en lille makro er den bedste løsning.
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Som udgangspunkt står jeg i celle a1. Her vil jeg gerne indtaste et nr. Dette nr. findes 1 til 10 gange i arket 2008, da der kan være flere linier pr. bon. Der er ca. 10.000 linier i arket 2008.
Herefter skal en makro løbe arket 2008 igennem og finde alle linier som har det indtastede nr. i kolonne C og kopiere dem fra arket 2008 til genudskriv. Den skal kopiere hele linien.
Den skal helst indsætte de kopierede linier i arket genudskriv fra linie 5 og nedefter. Dette skyldes at jeg har andre informationer stående i linie 1-4 i dette ark.
fik ellers lavet det her lille eksempel - som sikkert kan gøres meget simplere:
Sub Kopier() Dim intI As Integer
For intI = 5 To 10000 If (ThisWorkbook.Sheets("2008").Cells.Range("C" & intI) = ThisWorkbook.Sheets("Genudskriv").Cells.Range("A1")) Then With ThisWorkbook.Sheets("Genudskriv").Cells .Range("A" & intI) = ThisWorkbook.Sheets("2008").Cells.Range("A" & intI) .Range("B" & intI) = ThisWorkbook.Sheets("2008").Cells.Range("B" & intI) .Range("C" & intI) = ThisWorkbook.Sheets("2008").Cells.Range("C" & intI) End With End If Next intI End Sub
den kopierer 3 kolonner og tager fra række 5-10000.. kan modificeres og simplificeres, men i hele taget brugeligt.. hvis du har flere kolonner, kan du tilføje linjerne i samme stil og bare ændre kolonnebogstaverne til den der skal kopieres.. :-)
Sub Kopier() Dim intI As Integer Dim intJ As Integer
intJ = 5 Do Until (ThisWorkbook.Sheets("Genudskriv").Cells.Range("C" & intJ) = "") intJ = intJ + 2 Loop
For intI = 5 To 10000 If (ThisWorkbook.Sheets("2008").Cells.Range("C" & intI) = ThisWorkbook.Sheets("Genudskriv").Cells.Range("A1")) Then With ThisWorkbook.Sheets("Genudskriv").Cells .Range("A" & intJ) = ThisWorkbook.Sheets("2008").Cells.Range("A" & intI) .Range("B" & intJ) = ThisWorkbook.Sheets("2008").Cells.Range("B" & intI) .Range("C" & intJ) = ThisWorkbook.Sheets("2008").Cells.Range("C" & intI) End With intJ = intJ + 2 End If Next intI End Sub
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.