Condividi:        

Cancella righe con meno di due celle colorate

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

Cancella righe con meno di due celle colorate

Postdi M@rtyn@ » 16/02/14 18:43

Ciao, mi serve una macro che cancelli le righe con meno di due celle colorate
pensavo di iniziarla con:
For Row = 1 To 366
Next
inserire per spostarmi
ActiveCell.Offset(1, 0).Range("A2:Bd").Select
e per cancellare i dati che non mi servono:
Selection.EntireRow.Delete
così:
For Row = 1 To 366
ActiveCell.Offset(1, 0).Range("A2:BD").Select
______________
______
Selection.EntireRow.Delete
Next

ma la ricerca delle istruzioni che mi servono si è fermata con "trova le celle gialle(.Color = 65535) colorate con formattazione condizionale in excel 2007"
Praticamente in italiano sarebbe così:
Dalla cella 1 alla 366 conta quante celle gialle ci sono su ogni riga e cancella le righe con meno di due.
Grazie.Ciao
xp con Excel 2007
windows 8 con excel 2013
M@rtyn@
Utente Junior
 
Post: 88
Iscritto il: 02/03/11 21:03

Sponsor
 

Re: Cancella righe con meno di due celle colorate

Postdi Flash30005 » 16/02/14 18:48

Se è una formattazione condizionale non potrai rilevare il colore in quanto il fondo è neutro anche se lo vedi colorato (giallo)
conviene inserire la condizione nella macro, la stessa condizione che hai messo nella formattazione condizionale.
In altri termini con quale condizione quelle determinate celle si colorano di giallo?
se posti la formula potremmo pensare di inserirla nella macro

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: Cancella righe con meno di due celle colorate

Postdi M@rtyn@ » 16/02/14 20:31

Il procedimento che ho usato per colorare le celle è questo:
Formattazione condizionale / Regole evidenziazione celle / Uguale a...
inserito il codice prodotto esempio 0206
ripetuto tutto per un altro codice prodotto 0106
ripetuto tutto per un altro codice prodotto 0205
xp con Excel 2007
windows 8 con excel 2013
M@rtyn@
Utente Junior
 
Post: 88
Iscritto il: 02/03/11 21:03

Re: Cancella righe con meno di due celle colorate

Postdi ricky53 » 16/02/14 20:56

Ciao,
segui il suggerimento di Flash.

Quanti sono i codici che hai utilizzato nelle condizioni? Solo tre?
In quale intervallo dati vuoi agire?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Cancella righe con meno di due celle colorate

Postdi M@rtyn@ » 17/02/14 13:58

Ciao, si ho usato solo tre codici, il foglio riempie le celle A1 BD 366 di cui la prima colonna per le date e la prima riga per le descrizioni modelli .
xp con Excel 2007
windows 8 con excel 2013
M@rtyn@
Utente Junior
 
Post: 88
Iscritto il: 02/03/11 21:03

Re: Cancella righe con meno di due celle colorate

Postdi M@rtyn@ » 17/02/14 21:21

Me lo date un aiutino per cambiare completamente approccio, prima cancellare il contenuto di tutte le celle diverso da quello che ho colorato e poi cancellare le righe con le celle vuote?
Se cerco i comandi che ricordo (clearcontents _EntireRow.Delete )mi escono tutte cose in inglese, ma la mia seconda lingua è il francese :oops:
xp con Excel 2007
windows 8 con excel 2013
M@rtyn@
Utente Junior
 
Post: 88
Iscritto il: 02/03/11 21:03

Re: Cancella righe con meno di due celle colorate

Postdi Flash30005 » 18/02/14 00:27

Quindi le celle si colorano di giallo se il valore cella è:
1) 0206
2) 0106
3) 0205
Giusto?
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: Cancella righe con meno di due celle colorate

Postdi ricky53 » 18/02/14 00:47

Ciao,
faccio un breve riepilogo di quanto ho capito:

a) se una cella contiene uno dei tre codici (106, 205, 206) il suo colore diventerà "giallo"!

b) se su una riga vi è una sola cella gialla allora la riga va cancellata!

c) l'intervallo su cui lavorare è A1:BD366 !

CONFERMI quanto ho scritto ?


I codici sono codici numerici ?
Ossia lo zero iniziale non è presente
oppure
sono "testi" e lo zero c'è?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Cancella righe con meno di due celle colorate

Postdi ricky53 » 18/02/14 01:29

Ciao,
in attesa avevo iniziato a scrivere qualcosa ... e visto che è tardi e vado a dormire provalo e ci sentiamo domani
Codice: Seleziona tutto
Option Explicit

Sub Cancella_Righe_con_Condizione()
    Dim Cella As String, I As Long, J As Long, Colonne As Integer, Trovato As Integer, Cancellate As Integer
   
    Sheets("Foglio1").Select
    Cella = "BD1"
    Colonne = Range(Cella).Column
    Cancellate = 0
    For I = 366 To 1 Step -1
        Trovato = 0
        For J = 1 To Colonne
            If Cells(I, J) = 106 Or Cells(I, J) = 205 Or Cells(I, J) = 206 Then
                Trovato = Trovato + 1
            End If
        Next J
        If Trovato = 1 Then
            Rows(I).Delete
            Cancellate = Cancellate + 1
        End If
    Next I
   
    MsgBox "Sono state cancellate:   '" & Cancellate & "'  righe", vbInformation
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Cancella righe con meno di due celle colorate

Postdi Flash30005 » 18/02/14 02:30

Provo anche io a inviare una macro che elimina le righe se non hanno almeno due dei valori menzionati (dalla colonna A a BD)

Codice: Seleziona tutto
Sub EliminaRigheSe()
UR = Range("A" & Rows.Count).End(xlUp).Row
For RR = UR To 1 Step -1
ContaC = 0
For cc = 1 To 56
If Cells(RR, cc).Value = "0106" Or Cells(RR, cc).Value = "0205" Or Cells(RR, cc).Value = "0206" Then
ContaC = ContaC + 1
End If
Next cc
If ContaC < 2 Then Rows(RR).Delete
Next RR
End Sub


Prima di avviare la macro fai una copia del file originale: le righe vengono eliminate sul foglio attivo

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: Cancella righe con meno di due celle colorate

Postdi M@rtyn@ » 18/02/14 12:58

Ciao, e grazie a tutti e due,
@Flash30005 ho risolto con la tua ma perchè 1To 56 e non 1To 366?
@Richy53 la tua cancella le righe con una casella gialla ma le righe con zero caselle gialle rimangono.
xp con Excel 2007
windows 8 con excel 2013
M@rtyn@
Utente Junior
 
Post: 88
Iscritto il: 02/03/11 21:03

Re: Cancella righe con meno di due celle colorate

Postdi ricky53 » 18/02/14 14:44

Ciao,
avevo capito che si dovessero cancellare le righe che avevano solo una cella gialla.
Ecco la versione che cancella tutte le righe che hanno:
1. zero celle colorate
2. una sola cella colorata

Codice: Seleziona tutto
Option Explicit

Sub Cancella_Righe_con_Condizione()
    Dim Cella As String, I As Long, J As Long, Colonne As Integer, Trovato As Integer, Cancellate As Integer
   
    Sheets("Foglio1").Select
    Cella = "BD1"
    Colonne = Range(Cella).Column
    Cancellate = 0
    For I = 366 To 1 Step -1 '<<====== Cambia il "366" se le righe dell'intervallo dovessero essere diverse
        Trovato = 0
        For J = 1 To Colonne
            If Cells(I, J) = 106 Or Cells(I, J) = 205 Or Cells(I, J) = 206 Then
                Trovato = Trovato + 1
            End If
        Next J
        If Trovato = <1 Then ' <<===== CAMBIATA !!!!!
            Rows(I).Delete
            Cancellate = Cancellate + 1
        End If
    Next I
   
    MsgBox "Sono state cancellate:   '" & Cancellate & "'  righe", vbInformation
End Sub



Nel codice di Flash il "56" rappresenta le colonne su cui fare il ciclo. Nel mio codice corrisponde a Colonne
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Cancella righe con meno di due celle colorate

Postdi M@rtyn@ » 18/02/14 17:20

Grazie
xp con Excel 2007
windows 8 con excel 2013
M@rtyn@
Utente Junior
 
Post: 88
Iscritto il: 02/03/11 21:03


Torna a Applicazioni Office Windows


Topic correlati a "Cancella righe con meno di due celle colorate":


Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti