Jeg har ovenstående data. Jeg vil gerne have en kode, sådan at den kopiere de 20 første/største værdier hvis værdi i A er = TK02. og så indsætter i andre celle (dette kan jeg nok godt selv klare)
Tilsvarende vil jeg gerne lave en som tager de 20 første/største hvis værdier i A = TK01.
Tidligere har jeg forsøgt mig med filter, men det dur ikke da antallet er henholdsvis TK01 og TK02 varierer fra gang til gang makroen skal køres.
Tk02 <? mysqli_query($con,"INSERT INTO din_nye_table SELECT * FROM din_table ORDER BY din_værdi_colum Limit 10 WHERE din_colum_med_TK02=TK02"); ?> Tk01 <? mysqli_query($con,"INSERT INTO din_nye_table SELECT * FROM din_table ORDER BY din_værdi_colum Limit 10 WHERE din_colum_med_TK01=TK01"); ?> Håber det har kan hjælpe dig, har ikke lige testet det, men det burde virke hvis jeg ikke har failet for meget:)
Bemærk at mit forslag inkluderer at du skal have to yderligere faneblade. Det ene skal hedde "S" og det andet skal hedde "Resultat"
Option Explicit
Dim Titel As String Dim Værdi As Long Dim RK As Long Dim Bund As Long Dim Kol As Long Dim Top As Long
Sub fIND_20()
'Sletter alle data i arket "Resultat" Sheets("Resultat").Select Cells.Select Selection.Delete Cells(1, 1).Select
'Sletter alle data i arket "S" Sheets("S").Select Cells.Select Selection.Delete Cells(1, 1).Select Sheets("data").Select
'Sorterer Data efter titel Cells(1, 1).Select ActiveWorkbook.Worksheets("data").Sort.SortFields.Clear ActiveWorkbook.Worksheets("data").Sort.SortFields.Add Key:=Range("A1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("data").Sort .SetRange Range("a1:B10000") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
'Navngiver variabel med titel Titel = Cells(2, 1)
'Finder sidste celle med samme titel og navngiver variablen Bund med pågældende rækkenummer RK = 2 Do RK = RK + 1 Loop Until Cells(RK, 1) <> Titel Bund = RK - 1
'bruger de to variabler til at kopiere det valgte område til arkket "S" Range(Cells(1, 1), Cells(Bund, 2)).Select Selection.Copy Sheets("S").Select ActiveSheet.Paste
'Sorterer efter kolonnen "Værdi" med højeste værdi øverste Range("B1").Select ActiveWorkbook.Worksheets("S").Sort.SortFields.Clear ActiveWorkbook.Worksheets("S").Sort.SortFields.Add Key:=Range("B1"), SortOn _ :=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("S").Sort .SetRange Range("A2:B10000") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
'Vælger de 20 øverste rækker (udover overskrifterne) og kopierer disse over i feltet "Resultat" Range(Cells(1, 1), Cells(21, 2)).Select Selection.Copy Sheets("Resultat").Select ActiveSheet.Paste Cells(2, 1).Select
'-------------------------------------------------------------------------------------------------------------- 'Her begynder andet gennemløb
'Sletter alle data i fanen "S" Sheets("S").Select Cells.Select Selection.Delete Cells(1, 1).Select
Sheets("data").Select
'Sorterer data efter kolonnen Titel Cells(1, 1).Select ActiveWorkbook.Worksheets("data").Sort.SortFields.Clear ActiveWorkbook.Worksheets("data").Sort.SortFields.Add Key:=Range("A1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("data").Sort .SetRange Range("a1:B10000") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
'Navngiver variabel med titel Titel = Cells(2, 1)
'Søger i kolonnen til indholdet af kolonne 1 ikke længere svarer til variabel-navnet RK = 2 Do RK = RK + 1 Loop Until Cells(RK, 1) <> Titel Top = RK
'Navngiver variabel med titel Titel = Cells(RK, 1)
'Søger i kolonnen til indholdet af kolonne 1 ikke længere svarer til variabel-navnet Do RK = RK + 1 Loop Until Cells(RK, 1) <> Titel RK = RK - 1 Bund = RK
'kopiere det valgte område og indsætter det i fanen "S" Range(Cells(Top, 1), Cells(Bund, 2)).Select Selection.Copy Sheets("S").Select ActiveSheet.Paste
'Sorterer efter kolonnen "Værdi" med højeste værdi øverste Range("B1").Select ActiveWorkbook.Worksheets("S").Sort.SortFields.Clear ActiveWorkbook.Worksheets("S").Sort.SortFields.Add Key:=Range("B1"), SortOn _ :=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("S").Sort .SetRange Range("A2:B10000") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
'Vælger de 20 øverste rækker (eksklusiv overskrifter) og kopierer disse over i feltet "Resultat" Range(Cells(1, 1), Cells(20, 2)).Select Selection.Copy Sheets("Resultat").Select Cells(2, 4).Select ActiveSheet.Paste
'Tilføjer overskrifter til de to kolonner Cells(1, 4) = "Titel" Cells(1, 5) = "Værdi"
Cells.Select Selection.EntireColumn.AutoFit Cells(2, 4).Select End Sub
Håber det kan bruges
Med venlig hilsen
Henrik
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.