| | Post: 81 | Registrato il: 03/05/2016
| Città: MILANO | Età: 50 | Utente Junior | Excel 2011 | | OFFLINE |
|
03/07/2019 14:16 | |
Ciao a tutti avrei bisogno di un vostro graditissimo aiuto.
Sarebbe possibile ottenere lo stesso risultato che mi fornisce la formula matriciale contenuta nella colonna B con solo codice vba? Al Change della cella C1 o pulsante ?
La formula permette di estrarre i valori della colonna A eliminando i valori doppi e elencandoli in ordine alfabetico
=SE.ERRORE(INDICE($A$2:$A$30;CONFRONTA(PICCOLO(SE(CONTA.SE($B$1:B1;$A$2:$A$30)=0;1;GRANDE((CONTA.SE($A$2:$A$30;"<"&$A$2:$A$30)+1)*2;1))*(CONTA.SE($A$2:$A$30;"<"&$A$2:$A$30)+1);1);CONTA.SE($A$2:$A$30;"<"&$A$2:$A$30)
Un enorme grazie per ogni aiuto
Simone
|
|
| | Post: 2.307 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
03/07/2019 15:00 | |
ciao
in breve, puoi alimentare una collection con i valori univoci di colonna A e poi fare il sort della stessa, stampandone il risultato.
saluti
[Modificato da dodo47 03/07/2019 16:11] Domenico
Win 10 - Excel 2016 |
| | Post: 81 | Registrato il: 03/05/2016
| Città: MILANO | Età: 50 | Utente Junior | Excel 2011 | | OFFLINE |
|
03/07/2019 16:14 | |
Grazie Dodo per l’intervento.
Non so se quello che intendi è la stessa cosa
siccome il risultato lo dovrei usare come convalida dati con formula scarto per poter eliminare le celle vuote, avevo provato a fare un copia e incolla valori della colonna soltanto che anche le celle che non contengono valori risultano lo stesso celle piene, ( le ho verificate con la formula Esempio: = Se(val.vuoto(…..);”vuota;”non vuota”)
Avreste un’idea come potrei ovviare a questo problema?
Grazie
Simone |
| | Post: 2.308 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
03/07/2019 17:24 | |
ciao
val.vuoto ti restituisce NON vuoto perchè c'è la formula. Lo stesso (se ho capito cosa vuoi fare) ti restiuirà la formula scarto assegnata ad un nome, in quanto il conta.valori (di Scarto) conteggia pure le celle vuote dove è presente la formula.
Ciò premesso, l'unica cosa che mi viene in mente è quella che ti ho detto, creare l'elenco di col. B da vba.
Ti passo un codice che crea una collection di valori univoci. Per il sort fai tu qualche ricerca.
Nella variabile TuaColl avrai i nomi univoci di col. A. E' buona norma aggiungere anche una gestione di errori.
Sub DatiUnivoci()
Dim TuaColl As New Collection, ur As Long
ur = Range("A" & Rows.Count).End(xlUp).Row
For j = 2 To ur
If Cells(j, 1) <> "" Then
On Error Resume Next
TuaColl.Add Cells(j, 1), CStr(Cells(j, 1))
On Error GoTo 0
End If
Next j
End Sub
saluti
[Modificato da dodo47 03/07/2019 19:08] Domenico
Win 10 - Excel 2016 |
| | Post: 1.268 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
03/07/2019 23:17 | |
ciao a tutti
ciao melaverde,
ed un saluto a Domenico
non ho guardato il tuo file,
ma se la proposta di Domenico non risolve (e ne dubito),
come alternativa alla convalida dati potresti usare una ComboBox
sul foglio ed utilizzare un codice di questo tipo da inserire in un modulo standard
valorizza a piacere B2 e B4 e prova a mettere =C5 in B3,
poi lancia questo codice e verifica la ComboBox
vb Sub riempi_combo()
ur = Range("B" & Rows.Count).End(xlUp).Row
For r = 2 To ur
If Cells(r, 2).Value = 0 Then
Else
ActiveSheet.ComboBox1.AddItem Cells(r, 2).Value
End If
Next r
End Sub
ciao
Frank
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 82 | Registrato il: 03/05/2016
| Città: MILANO | Età: 50 | Utente Junior | Excel 2011 | | OFFLINE |
|
04/07/2019 10:55 | |
Tantissimi grazie Domenico & Frank per il graditissimo aiuto,durante il weekend provo a metterli in pratica... a questo punto penso e spero proprio di riuscirci
Un saluto
Simone |
|
|