Visualizza messaggio singolo
Vecchio 19-03-2017, 16.45.10   #9
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
Grazie ancora Alexsandra, ma non voglio farti "impazzire" per una questione che non è di vitale importanza, visto che hai già risolto brillantemente per il formato numerico.
Tuttavia, se posso approfittare ancora della tua disponibilità, quando avrai del tempo, potresti provare a risolvere la questione utilizzando le stringhe, le più generiche possibili; in tal modo ingloberemmo qualsiasi formato, dal più generico, al più particolare.
Cioè: una funzione VBA che confrontasse i valori di stringa qualsiasi sarebbe valida sia per il formato "123abc" che per il formato "abc123" e ciò mi parrebbe una soluzione universale e definitiva: sempre che sia possibile tecnicamente.
Io credo che la stringa sia valutata in funzione dei caratteri ASCII da cui è composta: ad es. "1" vale 48 nella tabella ASCII, "A" vale 65, per cui è > di "1" e così via.
Grazie ancora.

Cordialmente, Riccardo


Ho provato ad elaborare questa formula, scopiazzando qua e là, ma non funziona...............
Chiedo suggerimenti, grazie
Ciao



Function ComparaStringheArea(AreaValori As Range, Criterio As String, Riferimento As String)
' Crietrio può assumere solo i valori: "=", ">", "<", ">=", "<="
Dim cella As Range
'If Criterio = ">" Then MsgBox ("criterio = " & Criterio)
On Error Resume Next
For Each rng In AreaValori
Set cella = Cells(rng.Row, AreaValori.Column)
If Criterio = "=" Then
If StrComp(cella, Riferimento) = 0 Then
Res = Res + 1
End If
ElseIf Criterio = ">=" Then
If StrComp(cella, Riferimento) >= 0 Then
Res = Res + 1
End If
ElseIf Criterio = "<=" Then
If StrComp(cella, Riferimento) <= 0 Then
Res = Res + 1
End If
ElseIf Criterio = "<" Then
If StrComp(cella, Riferimento) < 0 Then
Res = Res + 1
End If
ElseIf Criterio = ">" Then
If StrComp(cella, Riferimento) > 0 Then
Res = Res + 1
End If
End If
Next

ComparaStringheArea = Res

End Function
riccardonard non è collegato   Rispondi citando