La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Salve a tutti. Sono nuovo nel forum e non sono un esperto di excel, anzi direi il contrario...
Ho questa esigenza. Ho creato un catalogo su un foglio Excel di tutti gli album musicali che ho in collezione (oltre 14000)
In questo catalogo sono memorizzati sia album su cd che in digitale. Sul foglio excel ho impostato le colonne per ogni campo: Artista - Titolo Album - Anno - Genere - Formato (cd o digitale)
Ora, per esigenze di spazio, ho dovuto trasformare una parte di cd, circa 3500, in musica digitale e quindi ho necessità di aggiornare il catalogo. Ovviamente vorrei evitare di farlo manualmente.
Solitamente aggiorno il catalogo estrapolando tutte le info dai file .cue degli album digitali e creo un csv in pochi secondi che poi importo e aggiungo nel folgio excel. La mia idea era quella di creare e importare un file csv con i dati dei 3500 cd trasformati e naturalmente mi troverò 3500 righe duplicate in più, con l'unica differenza che 3500 avrenno una colonna con indicato CD e altre 3500 con indicato DIGITAL
La mia esigenza è quindi quella di eliminare le 3500 righe duplicate che hanno però la scritta CD nell'apposita colonna e mantenere quelle che hanno la scritta DIGITAL.
C'è un sistema per farlo velocemente senza doversi mettere lì a farlo una per una? Spero di essere stato sufficientemente chiaro.
Grazie in anticipo
ciao
metti su un modulo questa
e lanciala
Sub cancella_vuote() ur = Range("B" & Rows.Count).End(xlUp).Row For v = ur To 1 Step -1 If Range("B" & v) = "CD" Then Range("B" & v).Select Selection.EntireRow.Delete End If Next v End Sub
chiaramente la colonna B deve essere cambiata con l colonna che contiene CD
intanto grazie per la risposta. Come ho detto Excel non è il mio forte, quindi probabilmente mi mancano le basi per sapere cos'è e come fare un modulo.... 😀
Ho cercato in rete come creare un modulo, ma il massimo del risultato è avere una maschera con i nome dei campi dove inserire i dati. Ma presumo non sia la via giusta.
Tra l'altro, non so se sia utile saperlo, CD appare anche su altre 3000 righe che però non devono sparire... Attendo ulteriori istruzioni for dummies.... Grazie ancora
ciao
servirebbe un file campione per capire
vediamo se indovino
elimina le righe con
Artista - Titolo Album - Anno - Genere
doppi e che abbia CD come formato
al limite si potrebbe prendere solo il titolo o crea problemi
nell'esempio qui sotto ho evidenziato due titoli che hanno il duplicato.
Vorrei eliminare in un solo colpo (o con almeno pochi passaggi) tutti i doppioni che hanno il formato CD.
Ciao, non ti basta filtrare la colonna interessata, visualizzare solo "CD" e cancellare solo quelli?
Forse hai altre righe con "CD" che non vuoi cancellare?
esatto, ci sono altri 3000 cd catalogati che devono rimanere.
ciao
se i dati sono in ordine così
clicca sul pulsante
è un file con macro per aprirlo devo salvarlo
cliccare sull'icona con il dx......proprieta
e sbocca le macro
ATTENTO
CD sopra
DIGITAL sopra
genius!!! Credo sia proprio quello che mi serve. Sto facendo delle prove su una porzione di file, ma credo che ci siamo. Darò una conferma appena lo faccio col file vero e proprio di 14000 righe.
Ho seguito il tuo consiglio di avere le righe duplicate una sopra l'altra (con CD sopra e DIGITALE sotto) mettendo tutto in ordine di artista e di anno. Avevo provato a eseguire la macro senza mettere in ordine il foglio, ma ho visto che se le righe duplicate non sono adiacenti, la macro non sorte effetto. Ho anche fatto un'ulteriore prova modificando la macro, sostituendo "CD" con "CD (EP)" (che uso come sigla per i cd ep) e funziona. Così in due passaggi rimuovo sia gli uni che gli altri.
A meno che ci sia un modo per eliminare sia le righe con CD che quelle con CD (EP) con un solo passaggio.
Per il momento, comunque, grazie mille.
Vi aggiorno sul risultato finale.
ciao
mi sono basato sull'immagine
se fossero sfalsate dovrei usare un conta.se()
per quello speravo nell'aiuto dei vbaisti (io faccio formule)
questa
If Cells(xl, 3) = Cells(xl + 1, 3) And Cells(xl, 7) = "CD" Then
diventa
If Cells(xl, 3) = Cells(xl + 1, 3) And Cells(xl, 7) = "CD" Or Cells(xl, 7) = "CD (EP)" Then
e ti elimina anche la seconda variabile
grazie.
domattina la provo. Per quanto riguarda le righe duplicate sfalzate, il problema lo risolvo mettendole in ordine per Artista-Data e ci aggiungo per sicurezza anche l'ordine alfabetico della colonna FORMATO (così CD viene sicuramente prima di DIGITAL). in fondo sono pochi secondi perchè excel li metta in ordine. Poi con la tua supermacro risolvo la cosa che più mi interessava.
Di nuovo grazie!!!
buongiorno. Ho fatto una prova sul file completo e ho notato che ad un certo punto la macro non esegue l'eliminazione. Ho visto che la cosa succede dopo la riga numero 10000. Nella macro ho visto che su una riga c'era C1:C10000, ho modificato con C20000 e ha funzionato. Era quello? Va bene la modifica fatta così?
grazie
aggiornamento.
Ulteriore prova. Ho aggiunto 10 titoli, ho lanciato la macro e guardando il numero di righe ne risultano 53 di meno anziché tornare al numero di partenza....
ciao
devi mettere un range maggiore delle righe che hai
ora vedo di modificarla perchè lo faccia da solo
ciao
sostituisci
Set xrg = Range("C1:C10000")
con
Set xrg = Range(Cells(1, 3), Cells(1, 3).End(xlDown))