Avatar billede Chewie Novice
10. maj 2006 - 12:57 Der er 16 kommentarer og
1 løsning

slet dubletter

Hej

jeg mangler en makro der kan slette dubletter i en XL ark

jeg fandt denne i et andet spg. men den er for langsom og der er heller ikke grund til at markere rækkerne med rødt først

Public Sub MakerDubletterRøde()
col = ActiveCell.Column
Rowcount = Cells(65536, col).End(xlUp).Row
Range(Cells(1, col), Cells(65536, col).End(xlUp)).Select
For I = 1 To Rowcount
If Cells(I, col).Interior.ColorIndex <> 3 Or Cells(I, col) <> "" Then
For I1 = I + 1 To Rowcount
If Cells(I, col) = Cells(I1, col) Then
Cells(I1, col).Interior.ColorIndex = 3
End If
Next
End If
Next
End Sub

denne køres efter at du har tjekket om det er ok, så slettes de.
Public Sub FjernDubletterRøde()
col = ActiveCell.Column
Rowcount = Cells(65536, col).End(xlUp).Row
Range(Cells(1, col), Cells(65536, col).End(xlUp)).Select
For I = 1 To Rowcount
If Cells(I, col).Interior.ColorIndex = 3 Then
Cells(I, col).EntireRow.Delete Shift:=xlUp
I = I - 1
Rowcount = Rowcount - 1
End If
Next
End Sub

nogle der kan hjælpe mig med en omskrivning

/S
Avatar billede Chewie Novice
10. maj 2006 - 13:08 #1
der skal checkes i kolonne A og hvis det er en dublet så skal hele rækkens slettes
Avatar billede jkrons Professor
10. maj 2006 - 14:03 #2
Prøv denne:


Sub sletDub()
Dim rRange As Range
Dim DummyRange As Range
Dim Cell As Range
Set rRange = Range("A1:A500")
  For Each Cell In rRange.Cells
      Set DummyRange = Range(rRange(1, 1), Cell)
      If Application.CountIf(DummyRange, Cell.Value) > 1 Then
          If DeleteRange Is Nothing Then

              Set DeleteRange = Cell
            Else
                Set DeleteRange = Union(DeleteRange, Cell)
          End If
        End If
    Next Cell
    DeleteRange.EntireRow.Delete
Set rRange = Nothing
Set DeleteRange = Nothing
Set DummyRange = Nothing
Set Cell = Nothing
End Sub
Avatar billede jkrons Professor
10. maj 2006 - 14:03 #3
Ret selv området, der skal søges i til det relevante.
Avatar billede Chewie Novice
10. maj 2006 - 14:32 #4
den kommer med en "object required" boks ?
Avatar billede jkrons Professor
10. maj 2006 - 16:18 #5
Er du sikker på, at der findes dubletter i det specificerede område?
Avatar billede bak Forsker
10. maj 2006 - 18:11 #6
I denne version skal du markere cellerne der skal chekkses først, til gengænd er den hurtig

Sub RemoveDuplicates()
Dim AllCells As Range, cell As Range
Dim Uniqs As New Collection
Dim oldCalc As Long

  Application.ScreenUpdating = False
  oldCalc = Application.Calculation
  Application.Calculation = xlCalculationManual

  Set AllCells = Selection
  On Error Resume Next
  For Each cell In AllCells
      Uniqs.Add cell.Value, CStr(cell.Value)
      If Err.Number <> 0 Then cell = ""
      Err.Clear
  Next cell

  AllCells.SpecialCells(xlCellTypeBlanks).Select
  Selection.EntireRow.Delete Shift:=xlUp

  Application.ScreenUpdating = True
  Application.Calculation = oldCalc
  Set Uniqs = Nothing
End Sub
Avatar billede bak Forsker
10. maj 2006 - 22:02 #7
Jkrons, din kode gav samme fejl ved mig, indtil jeg indsatte denne linie
Dim DeleteRange As Range
Avatar billede jkrons Professor
11. maj 2006 - 01:30 #8
Hej bak-> Mystisk. Den virker fint hols mig - bortset fra når der ingen dubletter er - hvilket jeg har løst ved indsætte fejæh¨ndtering.
Avatar billede Chewie Novice
11. maj 2006 - 08:09 #9
mange tak for hjælpen

smid et svar begge to :)
Avatar billede Chewie Novice
11. maj 2006 - 08:16 #10
bak - jeg valgte de makro, men der er opstået et lille problem

på denne liste(udpluk) fjerner den alt

AC ACE 1995
ACURA 2.2 CL 1997
ACURA 2.5 TL 1996
ACURA 3.0 CL 1997
ACURA 3.0 CL 1999
ACURA 3.2 CL 2001
ACURA 3.2 CL S 2001
ACURA 3.2 CL TYPE-S MANUAL 2003
ACURA 3.2 TL 1997
ACURA 3.2 TL 1999
ACURA 3.2 TL 2000
ACURA 3.2 TL TYPE-S 2002
ACURA 3.2 TL TYPE-S MANUAL 2002
ACURA 3.5 RL 1996
ACURA INTEGRA GS 1990
ACURA INTEGRA GS-R 1992

?
Avatar billede Chewie Novice
11. maj 2006 - 08:17 #11
(står alt i kolonne A)
Avatar billede bak Forsker
11. maj 2006 - 08:39 #12
Sorry, den havde den fejl at hvis der ikke var nogen dubletter slettede den alt..
Dette er korrigeret her

Sub RemoveDuplicates1()
  Dim AllCells As Range, cell As Range
  Dim Uniqs As New Collection
  Dim oldCalc As Long
  Dim Dup As Boolean
  Application.ScreenUpdating = False
  oldCalc = Application.Calculation
  Application.Calculation = xlCalculationManual

  Set AllCells = Selection
  On Error Resume Next
  For Each cell In AllCells
      Uniqs.Add cell.Value, CStr(cell.Value)
      If Err.Number <> 0 Then
        cell = ""
        Dup = True
        Err.Clear
      End If
  Next cell

  If Dup = True Then
      AllCells.SpecialCells(xlCellTypeBlanks).Select
      Selection.EntireRow.Delete Shift:=xlUp
  End If
  Application.ScreenUpdating = True
  Application.Calculation = oldCalc
  Set Uniqs = Nothing
End Sub
Avatar billede Chewie Novice
11. maj 2006 - 08:49 #13
den har samme problem
Avatar billede Chewie Novice
19. maj 2006 - 08:48 #14
jeg har ind til nu klarede det med - hvis den sletter alt er det ingen dub.. men nu er det begyndt at gå mig på

er der en af jer der lige kan lave det sidste så den ikke slettet alt, hvis der ingen dub.. er ?

/s
og så lige smide nogle svar selvfølgelig :)
Avatar billede excelent Ekspert
19. maj 2006 - 20:23 #15
sub 11/05-2006 08:39:39 virker ok her
Avatar billede Chewie Novice
30. maj 2006 - 08:08 #16
ja - jeg har også fået den til at virke

tak for hjælpen

(svar)
Avatar billede bak Forsker
30. maj 2006 - 18:44 #17
ok :-)
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