Avatar billede rickie Juniormester
14. marts 2008 - 12:35 Der er 14 kommentarer og
1 løsning

Fjerne dubletter i A kollonne

Hej,

Jeg har en kolonne (A) som indeholder kundenr. Dette kundenummer kan fremgå flere gange.

Jeg vil nu gerne have en vbCode som kan flytte rækker til et nyt faneblad, så at kun en række med et kundenr findes.

Pf tak
Avatar billede excelent Ekspert
14. marts 2008 - 13:24 #1
Sub SletDubletter()
Sheets("Ark1").Range("A1:A2000").Copy Sheets("Ark2").Range("A1")
Sheets("Ark2").Select
Dim c, r, t, t2
c = 1
r = Cells(65500, c).End(xlUp).Row
Range(Cells(1, c), Cells(65500, c).End(xlUp)).Select
For t = 1 To r
If Cells(t, c) <> "" Then
For t2 = t + 1 To r
If Cells(t, c) = Cells(t2, c) Then
Cells(t2, c) = ""
End If
Next
End If
Next
On Error Resume Next
Selection.Columns.SpecialCells(xlCellTypeBlanks).Rows.Delete Shift:=xlUp
If MsgBox("Skal liste sorteres", vbYesNo, "Fjern dubletter") = vbYes Then
Selection.Sort Key1:=Range(ActiveCell.Address), Order1:=xlAscending
End If
ActiveCell.Select
End Sub
Avatar billede excelent Ekspert
14. marts 2008 - 13:24 #2
koden kopierer Ark1!A1:A2000 til Ark2!A1
Avatar billede rickie Juniormester
16. marts 2008 - 19:56 #3
Hej,

Tak for det, men det virker ikke rigtigt. Jeg får en fejlkode 400. Den laver et eller andet og kopierer også til et nytt ark men den tager alle data med. Feks hvis jeg har 2 rækker med tallet 47 skal den slette/flytte den over til et nyt ark. Det gør den ikke nu.
Avatar billede rickie Juniormester
16. marts 2008 - 21:37 #4
Feks.

1. A1
2. A2
3. A3
4. A1
5. A2
6. A6
Her skal räkkerne 4 & 5 slettes da de findes flere gange.
Avatar billede excelent Ekspert
16. marts 2008 - 21:53 #5
hvad hedder dir ark med kundenr.
og hvilket ark skal de kopieres til
Avatar billede rickie Juniormester
16. marts 2008 - 22:13 #6
Arket hedder sheet3 og det skal kopieres til sheet1 men det har jeg taget höjde for og ändret i din kode.
Avatar billede excelent Ekspert
16. marts 2008 - 22:17 #7
Det var mystisk, det er ellers en ofte anvendt kode
prøv lige at paste koden her som den er nu
Avatar billede rickie Juniormester
16. marts 2008 - 22:27 #8
Jepper! Her er den :-)

Sub SletDubletter()

Sheets("Sheet3").Range("A2:O65500").Copy Sheets("Sheet1").Range("A1")
Sheets("Sheet1").Select
Dim c, r, t, t2
c = 1
r = Cells(65500, c).End(xlUp).Row
Range(Cells(1, c), Cells(65500, c).End(xlUp)).Select
For t = 1 To r
If Cells(t, c) <> "" Then
For t2 = t + 1 To r
If Cells(t, c) = Cells(t2, c) Then
Cells(t2, c) = ""
End If
Next
End If
Next
On Error Resume Next
Selection.Columns.SpecialCells(xlCellTypeBlanks).Rows.Delete Shift:=xlUp
ActiveCell.Select
End Sub
Avatar billede excelent Ekspert
16. marts 2008 - 22:40 #9
prøv lige denne

Sub SletDubletter()
Dim c, r, t, t2
Sheets("Sheet3").Range("A2:O65500").Copy Sheets("Sheet1").Range("A1")
Sheets("Sheet1").Select
c = 1
r = Cells(65500, c).End(xlUp).Row
For t = 1 To r
If Cells(t, c) <> "" Then
For t2 = t + 1 To r
If Cells(t, c) = Cells(t2, c) Then
Range("A" & t2 & ":O" & t2) = ""
End If
Next
End If
Next
On Error Resume Next
Selection.Columns.SpecialCells(xlCellTypeBlanks).Rows.Delete Shift:=xlUp
ActiveCell.Select
End Sub
Avatar billede rickie Juniormester
16. marts 2008 - 22:55 #10
Det virker fint nu.....mange tak for al hjälp :)
Avatar billede rickie Juniormester
16. marts 2008 - 22:56 #11
Svar for points :)
Avatar billede excelent Ekspert
17. marts 2008 - 19:12 #12
ok velbekom
Avatar billede rickie Juniormester
17. marts 2008 - 20:56 #13
Har lige et tilæg som jeg håber at du kan svare på :-)
Jeg har data i flere kolonner end kun A og det viser sig at den "rykker" data et skridt op og derfor bliver min data forskudt. Kan det lade sig gøre at den flytter/sletter hele rækker/rows istedet? :-)

Ex. på orginaldata
Række 1, tekst 1
Række 2, tekst 2
Række 3, tekst 3


Ex. efter makro Hvis række 2 opfylder kriterier for makro.
Række 1, tekst 1
Række 3, tekst 2
        tekst 3

Jeg smider gerne lidt flere points :-)
Avatar billede excelent Ekspert
18. marts 2008 - 06:18 #14
Udskift hele koden :

Sub SletDubletter()
Dim c, r, t, t2, rk
rk = Sheets("Sheet3").Cells(65500, 1).End(xlUp).Row
Sheets("Sheet3").Range("A2:O" & rk).Copy Sheets("Sheet1").Range("A1")
Sheets("Sheet1").Select
c = 1
r = Cells(65500, c).End(xlUp).Row
For t = 1 To r
If Cells(t, c) <> "" Then
For t2 = t + 1 To r
If Cells(t, c) = Cells(t2, c) Then
Range("A" & t2) = ""
End If
Next
End If
Next
On Error Resume Next
Range("A1:A" & rk).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
ActiveCell.Select
End Sub
Avatar billede rickie Juniormester
26. marts 2008 - 09:05 #15
Mange tak :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester