Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - elimina doppi nomi
Forum - Altri Linguaggi - elimina doppi nomi

Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 18:32
Martedì, 22/05/2012
È possibile creare una macro che mi cancelli tutti i nominativi  in un foglio’ di excel 2003 che si chiama “usciti”, se questi nominativi risultano anche in un foglio chiamato “presenti” dello stesso file.
I nominativi sono in una sola cella composti da nome e cognome, ma anche da più nomi, separati da uno spazio tra loro, in entrambi i fogli.
i nominativi del foglio “usciti” si trovano solo nella colonna “A” fino in fondo, mentre i nominativi del foglio “presenti” si trovano nelle colonne A-E-I-M-Q-U-Y-AC-AG-AK-AO-AS-AW-BA-BE-BI-BM-BQ-BU-BY-CC-CG-CK-CO-CS-CW-DA-DE  ed arrivano fino alla riga 100. in tutte e due i fogli e in tutte le colonne i nominativi iniziano dalla riga due, alla riga 1 c’è l’intestazione.
E poi se ci sono doppioni nel foglio “usciti” colonna “A” che ne resti uno solo. grazie!

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:40
Martedì, 22/05/2012

si è possibile.

PM Quote
Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 13:49
Mercoledì, 23/05/2012
ho buttato giu questo ma ancora non lo provo cosa ne pensi?
Option Explicit

Function EliminaDoppioni()
Dim Area, cl
Dim c As Long, r As Long, n As Integer
Dim myColonna

myColonna = 50 '

With Sheets("usciti")
Set Area = .Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1))
End With


With Sheets("presenti")
For r = 2 To 100
For c = 1 To 109 Step 4
For Each cl In Area
If .Cells(r, c) <> "" And .Cells(r, c) = cl.Value Then
Sheets("usciti").Cells(cl.Row, cl.Column).Clear
n = n + 1
End If
Next
Next c
Next r
End With

With Sheets("usciti")
Set Area = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1))
Area.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess

.Columns(myColonna).Clear
Area.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Cells(1, myColonna), Unique:=True

Application.CutCopyMode = False
.Columns(myColonna).Copy
.Range("a1").PasteSpecial xlPasteAll
Application.CutCopyMode = False
.Columns(myColonna).Clear
End With

MsgBox "Fine elaborazione" & Chr(13) _
& "trovati e cancellati " & n & " nominativi"

End Function

PM Quote