Non posso dirti quante volte ho ricevuto dati grezzi da qualche programma o da qualche persona, e la prima cosa che devo fare è rimuovere i duplicati dall’elenco. Se ti trovi nella stessa situazione, la seguente macro sarà di grande aiuto:

Sub DelDups()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove cells that are empty     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Cells(J, ThisCol).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

La macro funziona su una selezione effettuata prima di chiamarla. Pertanto, se è necessario rimuovere celle duplicate dall’intervallo C15: C59, selezionare semplicemente quell’intervallo e quindi eseguire la macro. Se selezioni più di una singola colonna nell’intervallo (ad esempio, C15: E59), viene influenzata solo la prima colonna dell’intervallo. Quando la macro è completa, le celle duplicate vengono rimosse, così come le celle vuote.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2109) si applica a Microsoft Excel 97, 2000, 2002 e 2003.