Originariamente inviato da gaetes
Salve, ho controllato bene(la lista è lunga),il codice non funziona correttamente.
Non mi elimina le doppie righe, anzi se lo ripeto più volte elimina sempre fino a cancellarle tutte.
Gentilmente potreste aiutarmi a risolvere questo problema?
Grazie
Ero stato un po' troppo ottimista sulle modifiche al codice, c'era da cambiare anche qualcos'altro...
Questa e' la versione corretta:
codice:
Sub EliminaRigheDoppie()
Dim i&, j&, ULTIMA&, PRIMA&, COL%, flag As Boolean
COL = 1 'la colonna su cui eseguire il confronto
PRIMA = 1 'questa e' la riga da cui iniziare a cercare
i = PRIMA
Do 'ora cerca l'ultima riga significativa (cioe' <> "")
If Cells(i, COL) = "" Then ULTIMA = i - 1: Exit Do
i = i + 1
Loop
i = PRIMA 'confrontiamo questa riga....
Do
flag = False
j = ULTIMA 'con tutte le successive, partendo dal fondo
Do
If Cells(i, COL) = Cells(j, COL) Then
'sono uguali, seleziona l'intera riga ed eliminala !
Rows(j).Select
Selection.Delete Shift:=xlUp
ULTIMA = ULTIMA - 1 'abbiamo eliminato una riga
flag = True ' annotiamoci che va eliminata anche la riga i
End If
j = j - 1
Loop Until j <= i
If flag Then 'abbiamo eliminato qualche riga ?
Rows(i).Select 'allora eliminiamo anche la riga base
Selection.Delete Shift:=xlUp
ULTIMA = ULTIMA - 1
Else
i = i + 1
End If
Loop Until i >= ULTIMA
End Sub