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

    [excel] Rimuovere in automatico tutti i valori non evidenziati

    Cerco di spiegarmi meglio...

    Avrei necessità di rimuovere (magari cliccando un bottone)

    tutti i valori che si trovano nelle celle non evidenziate (in rosso)

    E' possibile? Se si come?

    Grazie agli/alle esperti/e di questo foglio di calcolo elettronico



    Ps: Possibilmente , ma credo questo sia molto piu' difficile, dovrei avere riga x riga i valori
    evidenziati l'uno accanto all'altro intervallati da un carattere separatore (es. una virgola)

    Provo a fare un es. "grafico..."

    ho...

    cellaA1 1 cellaB1 2 *cellaC1 70* *cellaD1 80* cellaE1 82 cellaF1 90

    clicco il bottone...

    e ottengo magari nella cellaH1 solo i valori (evidenziati dall'asterisco) : 70,80


  2. #2
    Ciao,
    se ho capito bene questo dovrebbe fare quello che chiedi:

    codice:
    Private Sub CommandButton1_Click()
    
       With Range("H:H")
          .Value = ""
       End With
       
       For Each casella In Range("a1", "g10")
    
           If casella.Interior.ColorIndex = xlColorIndexNone Then
              casella.Value = ""
           Else
              If Cells(casella.Row, 8).Value = "" Then
                 Cells(casella.Row, 8).Value = casella.Value
              Else
                 Cells(casella.Row, 8).Value = Cells(casella.Row, 8).Value & "," & casella.Value
              End If
           End If
    
       Next
    
    End Sub

    Il with iniziale ripulisce la colonna H da precedenti contenuti e poi il ciclo esplora il range dei dati (impostalo con il tuo range) e, casella per casella si chiede se il colore interno è impostato o meno.

    Se non è impostato cancella il contenuto della cella.

    Se invece è impostato accoda il contenuto della cella a quanto già presente nella cella H (che è la numero 8).

    Vedi un po' se va bene
    Ciao
    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
    Originariamente inviato da NonCeLaFaccio+
    Ciao,
    se ho capito bene questo dovrebbe fare quello che chiedi:

    codice:
    Private Sub CommandButton1_Click()
    
       With Range("H:H")
          .Value = ""
       End With
       
       For Each casella In Range("a1", "g10")
    
           If casella.Interior.ColorIndex = xlColorIndexNone Then
              casella.Value = ""
           Else
              If Cells(casella.Row, 8).Value = "" Then
                 Cells(casella.Row, 8).Value = casella.Value
              Else
                 Cells(casella.Row, 8).Value = Cells(casella.Row, 8).Value & "," & casella.Value
              End If
           End If
    
       Next
    
    End Sub

    Il with iniziale ripulisce la colonna H da precedenti contenuti e poi il ciclo esplora il range dei dati (impostalo con il tuo range) e, casella per casella si chiede se il colore interno è impostato o meno.

    Se non è impostato cancella il contenuto della cella.

    Se invece è impostato accoda il contenuto della cella a quanto già presente nella cella H (che è la numero 8).

    Vedi un po' se va bene
    Ciao
    Grazie mille! Non vedo l'ora di provarla! Ma quando ci provo assegnandola ad una forma scelta per il pulsante... quando ci clicco mi dice

    Impossibile eseguire la macro "miofile-nomemacro" . E' possibile che tale macro non sia disponibile nella cartella di lavoro o che tutte le macro siano disattivate...

    Ora in seguito a questo messaggio ho provato ad attivare tutte le macro da opzioni di excel e a salvare in fase di assegnamento macro la macro stessa in ognuna delle tre opzioni di destinazione macro possibili.. a chiudere e riavviare excel ogni volta... ma sempre al momento del click sul pulsante mi da il solito errore...


    Adesso sono riuscito a farla attivare (togliendo il Private)
    Ma anzichè cancellarmi solo i valori "non rossi" del range preimpostato A1:BC2
    mi cancella tutto

    codice:
    Sub provanuovamacro()
       With Range("A1:BC2")
          .Value = ""
       End With
       
       For Each casella In Range("A1", "BC2")
    
           If casella.Interior.ColorIndex = xlColorIndexNone Then
              casella.Value = ""
           Else
              If Cells(casella.Row, 8).Value = "" Then
                 Cells(casella.Row, 8).Value = casella.Value
              Else
                 Cells(casella.Row, 8).Value = Cells(casella.Row, 8).Value & "," & casella.Value
              End If
           End If
    
       Next
    End Sub

  4. #4
    La With deve restare sulla colonna H
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da NonCeLaFaccio+
    La With deve restare sulla colonna H
    Niente da fare... anche lasciando la with con H:H mi cancella tutto...

    codice:
    Sub provanuovamacro()
       With Range("H:H")
          .Value = ""
       End With
       
       For Each casella In Range("A1", "BH2")
    
           If casella.Interior.ColorIndex = xlColorIndexNone Then
              casella.Value = ""
           Else
              If Cells(casella.Row, 8).Value = "" Then
                 Cells(casella.Row, 8).Value = casella.Value
              Else
                 Cells(casella.Row, 8).Value = Cells(casella.Row, 8).Value & "," & casella.Value
              End If
           End If
    
       Next
    End Sub
    Più nel dettaglio...

    Io avrei l'esigenza di gestire le prime due righe 1 e 2 dalla colonna A alla colonna BH incluse, ovvero sia due righe di 60 celle, contenenti tutte valori numerici da 1 a 90

    Mi potresti provare a postare lo script relativo visto che, provando e riprovando a riadattare il tuo, io annaspo inutilmente?

    Grazie 1000 comunque amico!


  6. #6
    Credo che il problema nasca dal fatto che la colonna H è all'interno del range di dati e questo porta a risultati imprevedibili.

    Prova quest'altro script che esamina il range A1-BH2 e scrive nella colonna BI

    codice:
    Private Sub CommandButton1_Click()
    
       With Range("BI:BI")
          .Value = ""
       End With
       
       For Each casella In Range("A1", "BH2")
    
           If casella.Interior.ColorIndex = xlColorIndexNone Then
              casella.Value = ""
           Else
              If Cells(casella.Row, 61).Value = "" Then
                 Cells(casella.Row, 61).Value = casella.Value
              Else
                 Cells(casella.Row, 61).Value = Cells(casella.Row, 61).Value & "," & casella.Value
              End If
           End If
    
       Next
    End Sub
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da NonCeLaFaccio+
    Credo che il problema nasca dal fatto che la colonna H è all'interno del range di dati e questo porta a risultati imprevedibili.

    Prova quest'altro script che esamina il range A1-BH2 e scrive nella colonna BI

    codice:
    Private Sub CommandButton1_Click()
    
       With Range("BI:BI")
          .Value = ""
       End With
       
       For Each casella In Range("A1", "BH2")
    
           If casella.Interior.ColorIndex = xlColorIndexNone Then
              casella.Value = ""
           Else
              If Cells(casella.Row, 61).Value = "" Then
                 Cells(casella.Row, 61).Value = casella.Value
              Else
                 Cells(casella.Row, 61).Value = Cells(casella.Row, 61).Value & "," & casella.Value
              End If
           End If
    
       Next
    End Sub
    Provato subito ma purtroppo anche questo script mi porta via tutto...

  8. #8
    Ma sei sicuro che le caselle non siano tutte bianche?
    Lo script cancella tutto ciò che non ha un colore di sfondo.

    Prova a dare a mano un colore ad alcune caselle e vedi cosa succede e occhio che il risultato e in BI quindi per vederlo devi spostarti a destra
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da NonCeLaFaccio+
    Ma sei sicuro che le caselle non siano tutte bianche?
    Lo script cancella tutto ciò che non ha un colore di sfondo.

    Prova a dare a mano un colore ad alcune caselle e vedi cosa succede e occhio che il risultato e in BI quindi per vederlo devi spostarti a destra
    Allora forse ho capito l'inghippo...
    Le celle sono alcune colorate ma non dal colore di sfondo... bensì dalla funzione seleziona duplicati (rosso chiaro...) ecco secondo me i due "tipi" di colore non sono contemplati dal programma e dalla macro in egual modo. Però bisognerebbe che la macro "recepisse" il colore della funzione "evidenzia duplicati" piuttosto che quello "di cambio sfondo a mano" altrimenti sono costretto a ricolorare a mano tutti i risultati duplicati... perdendo di efficienza ugualmente

  10. #10
    Eh già, il problema è quello.
    Cerco di risponderti stasera perché ho bisogno di documentarmi.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.