18. december 2011 - 08:04
Der er
5 kommentarer og
1 løsning
sotering af af liste
Hej
Jeg har et ark med 1200 liner som jeg gerne vil have sorteret ud på 8 andre ark. hvilket ark bestemmes af värdien i kolonne H.
Jeg har data i kolonne A til H.
A artikkelnummer B navn c Mål d Farve e antal f pris g sum H afdeling.
hvis det er muligt vil jeg gerne have kolonnerne f og g skjulte på de nye ark eller at de ikke kommer med over.
Håber i kan hjälpe mig.
11. januar 2012 - 07:14
#3
ikke super aktuel mere, men jeg har dog ikke fundet en lösning jeg synes var god. har kigget på spm 946441 men kan ikke helt få det til at virke. (noget med tid og kundskaber)
13. januar 2012 - 18:44
#4
Hej igen,
Du kan jo evt. se om nedenstående kan bruges.
Jeg udgår i dette tilfælde fra, at det ark hvor du har alle dine data hedder Ark1.
-------------------------------------------------
Option Explicit
Sub Sortering()
Dim Afd As String
Dim RK As Long
Dim RK1 As Long
Dim Ax As Long
Dim Start As String
Range("H2").Select
Range("A2:H19500").Sort Key1:=Range("H2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Start = Cells(2, 8)
Do
RK = 2
RK1 = RK - 1
Sheets("Ark1").Select
Do
If Cells(RK, 8) <> Cells(RK1, 8) Then
Afd = Cells(RK, 8)
Sheets.Add.Name = Afd
Sheets("Ark1").Select
Cells.Select
Selection.Copy
Sheets(Afd).Select
ActiveSheet.Paste
Cells(2, 1).Select
Sheets("Ark1").Select
RK = RK + 1
RK1 = RK1 + 1
Else
RK = RK + 1
RK1 = RK1 + 1
End If
Loop Until Cells(RK, 1) = ""
Loop Until ActiveSheet.Name = "Ark1"
Application.CutCopyMode = False
Cells(2, 1).Select
Sheets(Start).Select
Do
RK = 2
Afd = ActiveSheet.Name
Do
If Cells(RK, 8) <> Afd Then
Cells(RK, 8).Select
Selection.EntireRow.Delete
Else
RK = RK + 1
End If
Loop Until Cells(RK, 1) = ""
ActiveSheet.Next.Activate
Loop Until ActiveSheet.Name = "Ark1"
Cells(2, 1).Select
End Sub
----------------------------------------------------
Håber det er noget Du kan bruge
Med venlig hilsen
Henrik