Buongiorno a tutti!
Ho fatto una ricerca nel forum, ed ho trovato un topic in cui si chiedeva come rimuovere le righe uguali in Excel, e dove l'utente icecube_HT ha postato il codice per la macro che effettua questa operazione:
il topic di riferimento è: http://forum.html.it/forum/showthrea...readid=1004792
il codice è:
Ho provato il codice su un foglio di lavoro e funziona perfettamente.codice:Sub EliminaRigheDoppie() Dim i&, j&, ULTIMA&, PRIMA&, COL% COL = 1 'la colonna su cui eseguire il confronto PRIMA = 1 'questa e' la riga da cui iniziare a cercare i = PRIMA Do 'ora cerca l'ultima riga significativa (cioe' <> "") If Cells(i, COL) = "" Then ULTIMA = i - 1: Exit Do i = i + 1 Loop i = PRIMA 'confrontiamo questa riga.... Do j = ULTIMA 'con tutte le successive, partendo dal fondo Do If Cells(i, COL) = Cells(j, COL) Then 'sono uguali, seleziona l'intera riga ed eliminala ! Rows(j).Select Selection.Delete Shift:=xlUp ULTIMA = ULTIMA - 1 'abbiamo eliminato una riga End If j = j - 1 Loop Until j <= i i = i + 1 Loop Until i >= ULTIMA End Sub
Adesso però io dovrei modificarlo in questo modo:
invece di cancellare le righe il cui contenuto di una specifica cella è uguale, voglio cancellare le righe NON uguali a questa.
Il file excel contiene solitamente più di 300 righe.riga1: ciao
riga2: ciao
riga3: ciao
riga4: cane (cancella)
riga5: gatto (cancella)
riga6: gatto (cancella)
riga7: mare (cancella)
Ho pensato che per fare ciò, bastasse modificare il codice sopra, cambiando questa riga:
sostituendo al posto dell'uguale, il simbolo del diverso.. Il problema è che non so come fare il simbolo del diverso su VB e se questa è la soluzione, oppure è più complicatacodice:If Cells(i, COL) = Cells(j, COL) Then
![]()
Se si può risolvere il problema sopra, ovvero modificare il codice di modo che cancelli le righe non uguali, se ne presenta uno nuovo.
Il file di Excel in quesione, mi viene spedito precompilato da terze persone in modo alquanto approssimativo.
Il file è composto da diversi campi:
nome
cognome
indirizzo
codice
note
E' sul campo note che devo far agire lo script.
Devo tenere solo le righe che contengono la scritta "vedi allegato".
Il problema è che in questo campo posso trovare scritto:
- vedi allegato
- VEDI ALLEGATO
- codice 8755858 vedi allegato
- chissacosaltrohannoscritto vedi allegato
Come sottolineato da icecube, lo script è case sensitive, infatti mi riconosce o solo "vedi allegato" o "VEDI ALLEGATO" (a seconda della cella che imposto come riferimento)
Inoltre funziona solo se il contenuto è esattamente lo stesso, ovvero se non c'è altro testo presente oltre a "vedi allegato"
E' possibile modificare lo script in modo che mi riconosca ad esempio solo la parola "allegato" sia maiuscola che minuscola, tralasciando la presenza di altro testo?
Grazie

Rispondi quotando