- Codice: Seleziona tutto
Dim offerenti As Range
Dim chioffre As Range
Set chioffre = Range("H:H")
chioffre.Clear
Set offerenti = Range("C:C")
For Each cl In offerenti
If cl.Value = "" Then 'se nome è vuoto allora si ferma uscendo dal ciclo For
Exit For
Else
If Application.CountIf(chioffre, cl.Value) = 0 Then ' se CountIf restituisce zero (quindi "nome" non è presente), allora
cellavuota = cellavuota + 1
Cells(cellavuota, 8) = cl.Value 'e scriviamo "nome dell'offerente" nella colonna H
End If
End If
Next
' riordina celle
Range("H:J").Select
Selection.Sort Key1:=Range("I1"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End With
Con questo codice analizzando i dati delle due colonne C e D così composte
pippo___0,6
pluto____0,54
pippo____0,32
minni____0,23
gastone__0,22
minni____0,19
ricreo una colonna H:H con i singoli nomi... inoltre sul foglio nella colonna I:I ho la formula =CONTA.SE(INDIRETTO("$C$1:$C$10000");H1) copiata per n. righe (che mi conteggia quante volta è presente il nome in H1..Hn) così pure la colonna J riporta =CERCA.VERT(H1;C:D;2;0) che mi cerca il primo valore in colonna D del nome H1
Ora visto che il foglio dove erano riportate queste formule viene ogni volta cancellato/ricreato, come posso convertire questo controllo di Excel in versione VBA ?