Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [excel] Cancellare con comando VB determinate celle a sfndo giallo e contarne altre a sfondo rosso per ogni riga

    Cerco di spiegarmi meglio (anche con un'immagine) ho delle celle in 5 colonne contenenti valori numerici: alcune sono con sfondo giallo e altre sono evidenziate in rosso (perchè hanno elementi in comune con un altro gruppo di valori numerici). Ora io vorrei con un click poter eliminare tutti i valori con sfondo giallo e lasciare solo quelli con sfondo rosso e contare questi ultimi riga x riga mettendone la quantità nella cella adiacente.

    es.
    click su un bottone -> mi si cancella tutti i valori dalle celle a sfondo giallo
    click su un altro bottone -> accanto alle celle a sfondo rosso rimaste con il valore compare il numero di celle a sfondo rosso presente in ogni riga...

    Allego foto per maggiore chiarezza comunque sono disponibile 24h su 24 per maggiori eventuali chiarimenti in merito


    cancellare-gialli-e-contare-rossi.jpg



    GRZ



    "Vero sapiente è colui che sa di non sapere" (Socrate)

  2. #2
    Ciao,
    dovresti farcela così:

    codice:
    Private Sub CommandButton1_Click()
       
       Set area = Range("a1:e10")
       giallo = RGB(255, 255, 0)
       rosso = RGB(255, 0, 0)
       
       counter = 0
       ultima_colonna = area.Column + 4
       
       For Each cella In area
          If cella.Interior.Color = giallo Then
             cella.Clear
          Else
             If cella.Interior.Color = rosso Then
                counter = counter + 1
             End If
          End If
          If cella.Column = ultima_colonna And counter > 0 Then
             Cells(cella.Row, ultima_colonna + 1) = counter
             counter = 0
          End If
       Next
    End Sub

    Devi solo inserire nelle prime tre righe il range di dati da esaminare (escludendo la colonna delle date, solo le cinque colonne di numeri), e poi la composizione RGB del giallo e del rosso che usi in modo che possano essere riconosciuti.

    Riguardo al range puoi anche indicarne uno più lungo, in alto o in basso, di quello reale in modo che possa gestire diverse quantità di dati senza dover ogni volta aggiornare il codice.

    La composizione RGB la trovi facilmente sullo stesso excel selezionando la freccetta dell'icona "colore riempimento" e poi andando su "altri colori" e su "personalizzati".

    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Quote Originariamente inviata da NonCeLaFaccio+ Visualizza il messaggio
    Ciao,
    dovresti farcela così:

    codice:
    Private Sub CommandButton1_Click()
       
       Set area = Range("a1:e10")
       giallo = RGB(255, 255, 0)
       rosso = RGB(255, 0, 0)
       
       counter = 0
       ultima_colonna = area.Column + 4
       
       For Each cella In area
          If cella.Interior.Color = giallo Then
             cella.Clear
          Else
             If cella.Interior.Color = rosso Then
                counter = counter + 1
             End If
          End If
          If cella.Column = ultima_colonna And counter > 0 Then
             Cells(cella.Row, ultima_colonna + 1) = counter
             counter = 0
          End If
       Next
    End Sub

    Devi solo inserire nelle prime tre righe il range di dati da esaminare (escludendo la colonna delle date, solo le cinque colonne di numeri), e poi la composizione RGB del giallo e del rosso che usi in modo che possano essere riconosciuti.

    Riguardo al range puoi anche indicarne uno più lungo, in alto o in basso, di quello reale in modo che possa gestire diverse quantità di dati senza dover ogni volta aggiornare il codice.

    La composizione RGB la trovi facilmente sullo stesso excel selezionando la freccetta dell'icona "colore riempimento" e poi andando su "altri colori" e su "personalizzati".

    Grazie 1000 grandissimo!
    Lo script cancella esattamente tutte le celle con sfondo giallo... solo che siccome inizialmente sono necessariamente tutte gialle... e solo successivamente con la funzione "formattazione condizionale" trova duplicati alcune di queste divengono rosse ma forse sotto.. conservano... anche il giallo... quando clicco sul bottone apposito mi vengono cancellate tutte senza distinzione... come posso ovviare a questo mio piccolo dilemma? Grazie ancora mito ciao
    "Vero sapiente è colui che sa di non sapere" (Socrate)

  4. #4
    Quote Originariamente inviata da freetom Visualizza il messaggio
    Grazie 1000 grandissimo!
    Lo script cancella esattamente tutte le celle con sfondo giallo... solo che siccome inizialmente sono necessariamente tutte gialle... e solo successivamente con la funzione "formattazione condizionale" trova duplicati alcune di queste divengono rosse ma forse sotto.. conservano... anche il giallo... quando clicco sul bottone apposito mi vengono cancellate tutte senza distinzione... come posso ovviare a questo mio piccolo dilemma? Grazie ancora mito ciao

    Sì, hai ragione, ho fatto una prova e il problema è proprio quello, praticamente la formattazione condizionale attiva una proprietà diversa da Interior.Color quindi è come se la cella avesse due colori, quello di fondo e quello condizionale e il mio codice va a interrogare quello di fondo.

    Il problema è che non so come interrogare l'altro e in questi giorni non ho tempo di studiare la cosa perché sto cambiando lavoro e in ufficio non ho un attimo libero quindi dovrai aspettare un po', sorry, oppure speriamo che qualcun'altro sappia come fare.

    A presto.
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.