Condividi:        

rimuovi duplicati (solo alcuni)

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

rimuovi duplicati (solo alcuni)

Postdi calculon » 04/08/11 19:28

vorrei eseguire una macro che mi consenta di eliminare i duplicati di alcuni valori (es. CASA) e lasci immutati gli eventuali altri.

casa
mamma
babbo
gioco
casa
mamma
mamma
babbo

comando: elimina questo in neretto e lascia immutato il resto.
calculon
Utente Senior
 
Post: 161
Iscritto il: 07/01/11 15:08

Sponsor
 

Re: rimuovi duplicati (solo alcuni)

Postdi calculon » 05/08/11 13:14

allora, una soluzione al mio problema potrebbe essere quella di guidare la macro sulla cella specifica attraverso un altro riferimento.

Vorrei dirgli:

Dim prl As String, rng As range

prl = "ente"
Cells.Find(What:=prl, After:=ActiveCell, LookAt:=xlPart).Activate

set rng = Cells.Find(What:=prl, After:=ActiveCell, LookAt:=xlPart).Activate
Application.ActiveCell.Offset(0, 4).select

If ActiveCell.select = "mamma" then cancella la riga (non so come si scrive)
altrimenti non fare niente.

In italiano:
1) trova la parola "ente"
2) sali di una riga e leggi il risultato della cella soprastante
3) se questo contiene mamma allora cancella la riga
4) altrimenti non fare nulla e continua per tutto il range A:A

Ho molta difficoltà a capire le condinzioni. uff

if activecell.activate
calculon
Utente Senior
 
Post: 161
Iscritto il: 07/01/11 15:08

Re: rimuovi duplicati (solo alcuni)

Postdi Flash30005 » 05/08/11 20:52

calculon ha scritto:In italiano:
1) trova la parola "ente"
2) sali di una riga e leggi il risultato della cella soprastante
3) se questo contiene mamma allora cancella la riga
4) altrimenti non fare nulla e continua per tutto il range A:A


Sei sicuro di aver capito bene?
riguarda questo codice
calculon ha scritto:Application.ActiveCell.Offset(0, 4).select

offest (spostati di) 0 = righe, 4 = colonne (a destra)
Pensi invece sia così?
calculon ha scritto:2) sali di una riga e leggi il risultato della cella soprastante


calculon ha scritto:If ActiveCell.select = "mamma" then cancella la riga (non so come si scrive)

Si scrive:
Codice: Seleziona tutto
Rows(NumRiga & ":" & NumRiga).Delete Shift:=xlUp


Sai come ho ricavato questo codice?
1) Registrando una macro
2) cancellando una riga
3) fermando la macro e..
4) andando a vedere il codice cha ha scritto
5) modificando il valore della riga da valore fisso a variabile
del resto non posso mica ricordare tutta la sintassi del Vba di excel!? :D

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: rimuovi duplicati (solo alcuni)

Postdi Anthony47 » 06/08/11 11:58

Se il problema e' quello esposto nel primo messaggio, allora puoi anche farlo con formule:
-I tuoi dati sono in col A
-In una cella libera, es H1, scrivi la parola da cercar
-In una colonna libera, es in B2, usi la formula
Codice: Seleziona tutto
=CONTA.SE(A$1:A2;$H$1)*(A2=$H$1)
Poi trascini B2 verso il basso.
-Infine applichi un filtro automatico alla colonna B, filtri per valori >1, selezioni le righe (duplicate) che ti compaiono e le elimini con Menu /Modifica /Elimina righe

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: rimuovi duplicati (solo alcuni)

Postdi calculon » 06/08/11 13:05

Preferisco continuare sulla strada del vba anche se per ora mi blocca questo comando

If ActiveCell.select = "mamma" then ...

forse perché la parola mamma è una delle tante contenute nella stessa cella?

Infatti il suo contenuto esatto è "la mamma è sempre gentile"
e ancora, "la mamma è la figlia di nonno"
ecc..

Insomma, forse dovrei impostare un comando capace di individuare solo la costante mamma.

Qualche idea?
calculon
Utente Senior
 
Post: 161
Iscritto il: 07/01/11 15:08

Re: rimuovi duplicati (solo alcuni)

Postdi Anthony47 » 07/08/11 10:37

forse perché la parola mamma è una delle tante contenute nella stessa cella?
Ma questo e' "alquanto" diverso da cosa avevi scritto nel primo messaggio... Non mi stanchero' mai di raccomandare di descrivere bene l' obiettivo che si vuol raggiungere; perche' altrimenti vi risolviamo (in genere bene) un problema che non avete.
Da vba la soluzione che in genere raccomando e' l' uso di una logica del tipo
Codice: Seleziona tutto
If Len(Activecell) > len(replace(activecell, "mamma","")) Then

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "rimuovi duplicati (solo alcuni)":


Chi c’è in linea

Visitano il forum: raimea e 34 ospiti

cron