Condividi:        

vorrei svuotare le celle con dati uguali

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

vorrei svuotare le celle con dati uguali

Postdi libraio » 12/07/12 19:41

In un foglio Excel 2003 ho un foglio con un "corposo" elenco di dati.
L'elenco riporta una lista di titoli di libri (colonne B:H) associati alle scuole che li adottano (colonna I). I Dati sono ordinati per codice in colonna B.
Poichè diversi titoli si ripetono, essendo adottati da più scuole, vorrei pulire le celle nelle colonne B:H i cui dati sono ripetuti, prendendo a riferimento i codici in colonna B. La colonna "I" non va ovviamente coinvolta nella pulizia.
Ho provato con la formattazione condizionale, ma senza esito...

Cerco di esemplificare. Partendo dalle seguenti righe:
|Codice |Titolo | Autore |.......|Scuola
|11111 |Scrivere | Rossi |.......| Dante
|11111 |Scrivere | Rossi |.......| Nobel
|11111 |Scrivere | Rossi |.......| Leopardi
|22222 |Leggere | Rossi |.......| Dante
vorrei ottenere:
|Codice |Titolo | Autore |.......|Scuola
|11111 |Scrivere | Rossi |.......| Dante
| | | | | Nobel
| | | | | Leopardi
|22222 |Leggere | Rossi |.......| Dante

Se poi ogni titolo fosse separato da un bordo tra le colonne B:I otterrei un risultato perfetto!

Grazie per l'aiuto
libraio
libraio
Utente Senior
 
Post: 329
Iscritto il: 04/01/10 20:31

Sponsor
 

Re: vorrei svuotare le celle con dati uguali

Postdi Flash30005 » 12/07/12 21:17

Ho considerato due fogli: "Foglio1" origine e "Foglio2" destinazione
Codice: Seleziona tutto
Sub CompilaElenco()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
Ws2.Cells.Clear
Ws1.Range("B1:I1").Copy Destination:=Ws2.Range("B1")
Ws2.Range("B1:I1").Borders(xlEdgeLeft).LineStyle = xlContinuous
Ws2.Range("B1:I1").Borders(xlEdgeTop).LineStyle = xlContinuous
Ws2.Range("B1:I1").Borders(xlEdgeBottom).LineStyle = xlContinuous
Ws2.Range("B1:I1").Borders(xlEdgeRight).LineStyle = xlContinuous
UR1 = Ws1.Range("B" & Rows.Count).End(xlUp).Row
MCodice = ""
For RR1 = 2 To UR1
    Codice = Ws1.Range("B" & RR1).Value
    UR2 = Ws2.Range("I" & Rows.Count).End(xlUp).Row + 1
    If MCodice <> Codice Then
        Ws1.Range("B" & RR1 & ":I" & RR1).Copy Destination:=Ws2.Range("B" & UR2)
        Ws2.Range("B" & RR1 & ":I" & RR1).Borders(xlEdgeLeft).LineStyle = xlContinuous
        Ws2.Range("B" & RR1 & ":I" & RR1).Borders(xlEdgeTop).LineStyle = xlContinuous
        Ws2.Range("B" & RR1 & ":I" & RR1).Borders(xlEdgeBottom).LineStyle = xlContinuous
        Ws2.Range("B" & RR1 & ":I" & RR1).Borders(xlEdgeRight).LineStyle = xlContinuous
        MCodice = Codice
    Else
        Ws1.Range("I" & RR1).Copy Destination:=Ws2.Range("I" & UR2)
    End If
Next RR1
End Sub


Fai sapere
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: vorrei svuotare le celle con dati uguali

Postdi Anthony47 » 13/07/12 00:21

Volendo farlo con formattazione condizionale:
-selezioni B2:Ixxx (xxx e' l' ultima riga che vuoi prendere in considerazione)
-imposti la formattazione condizionale, con La formula e', come formula usi =$B2=$B1, come formato metti un colore del carattere simile allo sfondo cella; Ok, Ok

Questo in alternativa alla macro di Flash (vedi sopra).

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

Re: vorrei svuotare le celle con dati uguali

Postdi libraio » 13/07/12 15:47

Ho applicato la macro di Flash ed ho ottenuto ciò che auspicavo!
Siete insostituibili :)
grazie
libraio
libraio
Utente Senior
 
Post: 329
Iscritto il: 04/01/10 20:31


Torna a Applicazioni Office Windows


Topic correlati a "vorrei svuotare le celle con dati uguali":


Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti