| | Post: 28 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
19/05/2017 17:16 | |
Buongiorno.
Avrei un lavoro da portare avanti ma ho riscontrato qualche problema. Premetto che ho provato ad allegare il file, ma in questo momento ho dei problemi tecnici che non mi permettono di farlo.
Provo a spiegare.
Nella colonna A e nella colonna C ho una serie di codici. Mi serve un risultato, nella colonna P, che mi riporti i codici presenti nella colonna C che non sono già presenti nella colonna A.
Ma ciò, con la Macro che ho costruito, non accade.
Sub rimuovi_doppioni()
Dim i As Integer
Dim cella, trova As Range
i = 8
For Each cella In Range("c8:c100")
Set trova = Range("n8:n100").Find(What:=cella, LookAt:=xlPart)
If trova Is Nothing Then
Range("p" & i) = cella
i = i + 1
End If
Next cella
End Sub
Potete aiutarmi?
Grazie, Nigel. |
|
| | Post: 3.213 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
20/05/2017 15:04 | |
Nigel se vuoi aiuto un file di esempio con dati (fittizi), spiegazione e risultato desiderato inserito a mano lo devi allegare.
Alfredo |
| | Post: 28 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
22/05/2017 10:21 | |
Ecco, ce l'ho fatta.
Il risultato nella colonna P deve essere 127 e 132. |
| | Post: 3.218 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
22/05/2017 11:44 | |
Ma nella colonna A non c'è né il 127 né il 132.
Non capisco.
Alfredo |
| | Post: 29 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
22/05/2017 12:30 | |
Infatti: mi serve un risultato, nella colonna P, che mi riporti i codici presenti nella colonna C che non sono già presenti nella colonna A. |
| | Post: 3.221 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
22/05/2017 12:41 | |
|
| | Post: 3.224 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
22/05/2017 14:31 | |
Ciao Nigel
Ti riallego il tuo file nel quale ho inserito la macro che vedi qui.
vb Sub prova()
Dim ur As Long
Dim lr As Long
Dim rng As Range
Dim cel As Range
Dim intervallo As Range
lr = Cells(Rows.Count, "C").End(xlUp).Row
Set intervallo = Range("c8:c" & lr)
For Each cel In intervallo
ur = Cells(Rows.Count, "P").End(xlUp).Row
With Sheets("Foglio1").Range("A:A")
Set rng = .Find(What:=cel.Value, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
Else
Cells(ur + 1, "P").Value = cel.Value
End If
End With
Next cel
End Sub
Importante: per il corretto funzionamento del tutto è necessario che la cella P7 sia valorizzata (mettici una X e poi dai il colore bainco al carattere in modo da renderla invisibile; se invece c'è qualcosa lascia tutto com'è.
Fai sapere.
P.S. la prossima vota posta nella sezione "Domande e risposte".
Alfredo |
| | Post: 96 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Junior | 2016 | | OFFLINE |
|
22/05/2017 22:02 | |
Buonasera a tutti oltre alla sempre ottima soluzione in VBA di Alfredo (un saluto) il risultato richiesto si può ottenere anche con le formule in P8
=SE.ERRORE(INDICE($C$8:$C$1000;PICCOLO(SE($C$8:$C$1000<>"";SE(CONTA.SE($A$8:$A$1000;$C$8:$C$1000)=0;RIF.RIGA($C$8:$C$1000)-RIF.RIGA($C$8)+1));RIGHE($P$7:P7)));"")
da attivare con i tasti CTRL+SHIFT+INVIO e trascinare in basso
ho messo 1000 ma si può allungare o accorciare a piacere [Modificato da DANILOFIORINI 22/05/2017 22:02] |
|
|