Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Excel] Contare celle con testo sottolineato

    Salve.
    Tramite una piccola macro trovata qui sono riuscito a contare le celle colorate in un intervallo scelto da me...
    Vorrei però che si potessero contare anche le celle con caratteri sottolineati, è possibile?

  2. #2
    Ciao.
    Non so se ti dico una banalità, vista comunque la tua esperienza (noto il numero dei messaggi), ho fatto un sacco di prove (non lavoro in Access e quindi guida e prove) e ho scoperto che es.:
    codice:
    Range(Cells(R, C), Cells(R, C)).Font.Underline
    Ti dice se la cella a quelle coordinate, ha un font sottolineato o no e questo lo fa restituendo un 2 se vero e un n. negativo se falso.
    Prove su Excel 2003.
    Ripeto, potrei aver detto qualcosa di assurdo o inutile.
    Un salutone dall'Alta Maremma...!

  3. #3
    Non capisco che c'entri il numero messaggi con l'esperienza nell'usare Excel...
    Che ci dovrei fare con quella stringa di codice?

  4. #4
    Ciao.
    Scusa, non intendevo dire chissà cosa, solo il pensiero che i tuoi oltre 4000 msg, teoricamente anche fossero tutti di domande e se anche lo fossero dovrebbero comunque averti 'comunicato qualcosa...' o sbaglio...? , mi era parso che molti dei quali, siano stato orientati anche nell'aiutare gli altri, nel senso che ho ardito pensare che fossi una persona 'smaliziata' nel campo... .
    Ma posso equivocare, come sicuramente è.
    (Quella riga di codice - era il 'cuore' per l'identificazione della sottolineatura)
    Senti, comunque ho speso un po del pomeriggio per trovare una 'Routine' che abbinata ad un pulsante, mi conta in un range definito nella stessa, le celle con scritte sottolineate...
    Ho cercato di trasformarla in routine, credo cosa fattibile, magari passandogli proprio il 'RANGE' come argomento, ma non so come, non me la riconosce. Non sono esperto nell'uso di VBA di Office...
    Ad ogni buon fine, sperando che ti possa almeno dare uno spunto per trovare la tua soluzione:
    (Pulsante33 dovrà essere il nome del Pulsante che creerai sul foglio)

    codice:
    Private Sub Pulsante33_Click()
    
        Dim sh As Worksheet
        Dim rng As Range
        Dim c As Range
        Dim Ct As Long
        
        Set sh = ThisWorkbook.Worksheets("Foglio2")
        ' --- metti il range interessato...
        Set rng = sh.Range("A1:b10")
        
        For Each c In rng
            If c.Font.Underline = 2 Then
                Ct = Ct + 1
            End If
        Next
        Set c = Nothing
        Set rng = Nothing
        Set sh = Nothing
        
        ' --- totale in una MessageBox
        MsgBox Ct
        ' --- totale in una cella
        Range("G1").Value = Ct
    End Sub
    Un salutone dall'Alta Maremma...!

  5. #5
    Putroppo, mancandomi le basi del Visual Basic, non so come programmare con Excel... Fosse per me, per quanto è complesso e versatile il foglio di calcolo Microsoft, dovrebbe già incorporare tutta una serie di funzioni... Per me il conteggio di celle formattate in un certo modo è come applicare uno dei filtri predefiniti del programma, e ho sempre cercato di usare le funzioni già esistenti per ottenere il mio obiettivo. A volte ci sono riuscito, altre ho fatto ricorso a spunti/soluzioni trovati con Google, altre volte (come in questo caso) ho chiesto al mio forum informatico preferito.
    Diciamo che i miei oltre 4.000 messaggi sono per il 60/70% di assistenza fornita, infatti, ma su argomenti differenti dall'uso spinto di Excel...
    Se sapessi "fare tutto", non avrebbe molto senso frequentare un forum solo per "dare" , visto tra l'altro il poco tempo libero che ho.

    Ti ringrazio del codice, vedrò di provarlo appena possibile.

  6. #6
    Ciao Gas,
    se hai bisogno di contare le celle a cui è applicata la sottolineatura si può usare la FONT.UNDERLINE (posta la macro, per favore, perché non posso aprire quel link, e te la adatto volentieri), se invece devi contare le celle che contengono (anche) testo sottolineato non so come si possa fare, forse bisognerà esaminare uno ad uno i caratteri per cercare le singole sottolineature, ci posso provare ma non ti asssicuro niente.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Devo conteggiare separatamente le celle colorate e quelle sottolineate: quindi se una cella è colorata e sottolineata, dev'essere contata una volta dalla macro per le celle colorate (già funzionante), un'altra dalla macro per le celle sottolineate.

    Questo è il codice che ho usato
    codice:
    Function CountByColor(InRange As Range, _
    WhatColorIndex As Integer, _
    Optional OfText As Boolean = False) As Long
    '
    ' This function return the number of cells in InRange with
    ' a background color, or if OfText is True a font color,
    ' equal to WhatColorIndex.
    '
    Dim Rng As Range
    Application.Volatile True
    
    For Each Rng In InRange.Cells
    If OfText = True Then
    CountByColor = CountByColor - _
    (Rng.Font.ColorIndex = WhatColorIndex)
    Else
    CountByColor = CountByColor - _
    (Rng.Interior.ColorIndex = WhatColorIndex)
    End If
    Next Rng
    
    End Function
    Poi sul foglio di lavoro vado nelle celle dove voglio effettuare la somma e scrivo

    =COUNTBYCOLOR(intervallo_celle;numero_colore;FALSO )

  8. #8
    Allora,
    questa che segue

    codice:
    Function CountUnderline(InRange As Range) As Long
    '
    ' This function return the number of underlined cells in InRange
    '
    Dim RngU As Range
    Application.Volatile True
    CountUnderline = 0
    
    For Each RngU In InRange.Cells
       If RngU.Font.Underline = 2 Then
          CountUnderline = CountUnderline + 1
       End If
    Next RngU
    
    End Function
    è una macro fatta sul modello di quella che mi hai passato che invece di contare le celle colorate conta quelle sottolineate.

    Per utilizzarla devi sono copiarla nello stesso posto in cui si trova l'altra e richiamarla con:

    codice:
    =CountUnderline(intervallo_celle)

    Come per l'altra funzione, anche questa viene attivata nel momento in cui una qualsiasi cella del foglio cambia valore, ma non se cambia solo formattazione (colore o sottolineatura).
    E' possibile poi anche attivarla a mano con F9.

    Come ti dicevo prima, vengono contate le celle che presentano la formattazione sottolineata non a livello di carattere ma a livello di cella, anche se vuote.

    Spero che ti vada bene perché non sono riuscito a trovare né un modo per attivarle anche al variare della formattazione né un modo per contare i caratteri sottolineati interni.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9
    Funziona benissimo!
    Conta le celle sottolineate indipendentemente da quelle colorate.

    Grazie mille!

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.