Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

VBA Excel conta numeri all'interno di una cella

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

VBA Excel conta numeri all'interno di una cella

Postdi macio66 » 28/09/22 19:59

Buonasera
Se in una cella ho questo contenuto "2-8-10-13 y", dove ad ogni numero corrisponde una età. C'è la possibilità con il VBA, di trovare quanti hanno meno di 10 anni, e quanti piu di 10 anni?
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59

Sponsor
 

Re: VBA Excel conta numeri all'interno di una cella

Postdi Anthony47 » 29/09/22 00:09

Ti suggerisco questa funzione:
Codice: Seleziona tutto
Function GimmeEtaZ(ByRef myRan As Range, Optional ByVal Soglia As Long = 10) As Variant
Dim mySplit, I As Long, OArr(1 To 2) As Long

mySplit = Split(Replace(myRan.Cells(1, 1).Value & "-ZZ", " ", "-", , , vbTextCompare), "-", , vbTextCompare)
For I = 0 To UBound(mySplit) - 1
    If IsNumeric(mySplit(I)) Then
        If mySplit(I) <= Soglia Then
            OArr(1) = OArr(1) + 1
        Else
            OArr(2) = OArr(2) + 1
        End If
    End If
Next I
GimmeEtaZ = OArr
End Function

Metti il codice in un modulo standard del tuo vba. Poi se vuoi il risultato su foglio Excel, selezioni due celle in due colonne adiacenti, nella barra della formula scrivi
Codice: Seleziona tutto
=GimmeAtaZ(A2;10)
Confermi la formula con Contr-Maiusc-Enter e dovresti ottenere il risultato
Nella formula il primo parametro e' la cella contenente la stringa, e il secondo e' la "soglia" da utilizzare, inteso "fino a tanti anni compreso, e oltre tanti anni"

Se invece ti serve all'interno di altro codice vba allora puoi usare la funzione ad esempio tramite
Codice: Seleziona tutto
Dim LeEta As Variant
'
LeEta = GimmeEtaZ(Range("A11"), 10)

La variabile LeEta sara' una matrice dove LeEta(1) è "fino a 10 anni" e LeEta(2) è "oltre 10"
Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 18464
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: VBA Excel conta numeri all'interno di una cella

Postdi macio66 » 29/09/22 10:25

Ciao Anthony
E' perfetto!!!!
Per quello che serve a me, ho usato la seconda, ma anche la prima, se non si deve usare all'interno di un codice vba, può essere utile (quindi me la tengo in archivio).
Grazie e buona giornata
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59


Torna a Applicazioni Office Windows


Topic correlati a "VBA Excel conta numeri all'interno di una cella":


Chi c’è in linea

Visitano il forum: raimea e 35 ospiti

cron