Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

È possibile trasformare questa formula matriciale in VBA ?

Ultimo Aggiornamento: 04/07/2019 10:55
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 [SM=x423028]
ciao melaverde,
ed un saluto a Domenico [SM=g27811]

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 [SM=x423028]

Un saluto

Simone
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:11. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com