Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

È possibile trasformare questa formula matriciale in VBA ?

  • Messaggi
  • OFFLINE
    melaverde74
    Post: 81
    Registrato il: 03/05/2016
    Città: MILANO
    Età: 50
    Utente Junior
    Excel 2011
    00 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



  • OFFLINE
    dodo47
    Post: 2.307
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 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
  • OFFLINE
    melaverde74
    Post: 81
    Registrato il: 03/05/2016
    Città: MILANO
    Età: 50
    Utente Junior
    Excel 2011
    00 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
  • OFFLINE
    dodo47
    Post: 2.308
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 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
  • OFFLINE
    tanimon
    Post: 1.268
    Registrato il: 27/06/2011
    Utente Veteran
    excel 2007
    00 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...
  • OFFLINE
    melaverde74
    Post: 82
    Registrato il: 03/05/2016
    Città: MILANO
    Età: 50
    Utente Junior
    Excel 2011
    00 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