Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Rirportare i dati doppi dopo averli eliminati

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Rirportare i dati doppi dopo averli eliminati

Postdi Rossi Vincenzo » 24/06/11 18:00

Salve, ho questa istruzione che come vedete mi elimina i doppioni
Codice: Seleziona tutto
.
Gradirei che i dati eliminati fossero copiati in un altra colonna dello stesso
foglio e non so come posso fare.

N.B. In Colonna A vi è la progressiva 1,2 3............
In colonna B i nomi e cogmomi
In colonna C i numeri di telefono formattati come testo
In colonna G gradirei che fossero copiati i nomi doppi eliminati dall'elenco

Codice: Seleziona tutto
Sub EliminaDoppioni()
'Questo codice ordina i dati del range di
'colonna scelto  ed elimina le righe che
'contengono dati duplicati.
Application.ScreenUpdating = False
Range("A1:C300").Select 'Considera la zona A1 C300 e senza alterare nomi e numeri di telefono
' da considerare come testo e non numeri
' e partendo in questo caso dalla colonna C li ordina in ordine crescente
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Set currentCell = Worksheets("Elenco").Range("C1") ' ed elimina i doppioni
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
currentCell.EntireRow.Delete
End If
Set currentCell = nextCell
Loop
Range("C1").Select

End Sub
Rossi Vincenzo
Utente Junior
 
Post: 35
Iscritto il: 28/04/09 14:11

Sponsor
 

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Avatar3 » 24/06/11 18:39

Prova questa macro (è la tua modificata)
Codice: Seleziona tutto
Sub EliminaDoppioni()
'Questo codice ordina i dati del range di
'colonna scelto  ed elimina le righe che
'contengono dati duplicati.
Application.ScreenUpdating = False
Range("A1:C300").Select 'Considera la zona A1 C300 e senza alterare nomi e numeri di telefono
' da considerare come testo e non numeri
' e partendo in questo caso dalla colonna C li ordina in ordine crescente
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Set currentCell = Worksheets("Elenco").Range("C1") ' ed elimina i doppioni
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
currentCell.Offset(0, -1).Copy Destination:=Cells(Rows.Count, 7).End(xlUp).Offset(1, 0)
currentCell.EntireRow.Delete
End If
Set currentCell = nextCell
Loop
Range("C1").Select

End Sub


Anche se ho dei forti dubbi a registrare sullo stesso foglio i duplicati cancellati
sarebbe meglio copiarli in un secondo foglio
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Rossi Vincenzo » 24/06/11 21:17

Grazie Avatar,

mi va bene.

Non vorrei approfittare ma volendo trasferire in

un altro foglio quale istruzione dovrei dare ?

Se esagero nel chiedere mi va bene quanto mi hai fornito

Siete bravi

Grazie
Rossi Vincenzo
Utente Junior
 
Post: 35
Iscritto il: 28/04/09 14:11

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Avatar3 » 24/06/11 21:25

devi solo cambiare questa riga da così
Codice: Seleziona tutto
currentCell.Offset(0, -1).Copy Destination:=Cells(Rows.Count, 7).End(xlUp).Offset(1, 0)

a così
Codice: Seleziona tutto
currentCell.Offset(0, -1).Copy Destination:=worksheets("Nomefoglio").Cells(Rows.Count, 7).End(xlUp).Offset(1, 0)

In Nomefoglio metti il nome del foglio che vuoi e che hai nella cartella

P.s. una cosa ho notato nella tua macro mette in ordine crescente i numeri di telefono (colonna C)
e il controllo lo effettua su questa colonna (controlla se ci sono dei numeri di telefono identici e non il cognome e nome di colonna B), era questo che volevi?
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Rossi Vincenzo » 24/06/11 22:53

Si mi va benissimo

Ti sono grato

Grazie
Rossi Vincenzo
Utente Junior
 
Post: 35
Iscritto il: 28/04/09 14:11

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Avatar3 » 27/06/11 00:38

:)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Rossi Vincenzo » 28/06/11 10:58

Salve a tutti,

in merito all'istruzione su descritta se volessi selezionare della riga che contiene il dato doppio
da colonna "A"a colonna "C" riportandolo su "Nomefoglio" come dovrei fare ?
Rossi Vincenzo
Utente Junior
 
Post: 35
Iscritto il: 28/04/09 14:11

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Avatar3 » 28/06/11 11:19

Usando la stessa macro modificata così
Codice: Seleziona tutto
Sub EliminaDoppioni()
'Questo codice ordina i dati del range di
'colonna scelto  ed elimina le righe che
'contengono dati duplicati.
Application.ScreenUpdating = False
Range("A1:C300").Select 'Considera la zona A1 C300 e senza alterare nomi e numeri di telefono
' da considerare come testo e non numeri
' e partendo in questo caso dalla colonna C li ordina in ordine crescente
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Set currentCell = Worksheets("Elenco").Range("C1") ' ed elimina i doppioni
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
'<<<< la seguente riga è stata modificata
Range(currentCell.Offset(0, -2), currentCell.Offset(0, 0)).Copy Destination:=Worksheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
currentCell.EntireRow.Delete
End If
Set currentCell = nextCell
Loop
Range("C1").Select

End Sub


Al posto di "Foglio2" potrai inserire il nome del tuo foglio
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Rossi Vincenzo » 28/06/11 12:26

Immensamente, Grazie

Non ti dico quanto tempo ho perso per non riuscirci.

Per fortuna che ci siete.

Ancora Grazie
Rossi Vincenzo
Utente Junior
 
Post: 35
Iscritto il: 28/04/09 14:11

Re: Rirportare i dati doppi dopo averli eliminati

Postdi Avatar3 » 28/06/11 13:23

:)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04


Torna a Applicazioni Office Windows


Topic correlati a "Rirportare i dati doppi dopo averli eliminati":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti