Condividi tramite

da una formula di excel alla macro in VBA

Anonimo
2011-08-09T20:04:04+00:00

Un saluto a tutti...

gentilmente vorrei un parere per gestire questa formula in VBA tramite

una macro

=CONFRONTA(2;MATR.PRODOTTO(CONTA.SE(N1:W1;$C$2:$L

$65536);RIF.RIGA($1:$10)^0);0)

siccome debbo creare un for cioè molteplici calcoli di molte righe  e

quindi quando incolli in N1 la decina di valori il calcola ci impiega

una vita

c'è una possibilità di velocizzare rispettando questi campi

Ricerca = CONFRONTA(2  ------> ambo  (3 terno------ 4 quaterna ecc..

sino a 10 decina

il range = CONTA . SE(N1:W1   sono le celle dove inserisco i dati da

controllare

la matrice ;$C$2:$L$65536

numeri max   RIF.RIGA($1:$10)^0)

ecco i dati primari....

mi accontento anche di una macro  dove mi velocizza il tutto...

ringrazio tutti... della Vs collaborazione

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2011-08-10T19:47:37+00:00

    Sì, sicuramente. Personalmente però, non rispondo a domande su giochi e classifiche campionati vari. Me ne scuso ma è così.

    Grazie cmq .... meno male .. allora .. ho risparmiato tempo e denaro...  :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-08-10T17:47:27+00:00

    attualmente ho 5000 dati (righe)

    avevo messo nelle celle le 10 formule ma il tempo tra copiare e incollare e memorizzare idati e trascriverli è diventato una attesa di 1 ora e 30 min ..... col portatile

    c'è una possibilità maggiore per ridurre il tempo della elaborazione citata ?

    Sì, sicuramente. Personalmente però, non rispondo a domande su giochi e classifiche campionati vari. Me ne scuso ma è così.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-08-10T10:28:10+00:00

    ok col registra macro ho ottenuto questa macro

    Sub Macro1()

    '

    ' Macro1 Macro

    '

    '

        Range("L3576").Select

        ActiveCell.FormulaR1C1 = _

            "=MATCH(3,MMULT(COUNTIF(R[-2]C:R[-2]C[8],R2C3:R5398C9),ROW(R1:R7)^0),0)"

        Range("L3577").Select

    End Sub

    e questa praticamente trova 3 numeri ed ha impiegato 1 secondo dicendomi che il primo evento è avvenuto alla riga X

    per fare quello che servirebbe a me senza appoggiarmi alla cella (L3576)

    come posso interaggire chiedendo alla macro

    sub Macro1

    Dim N,Terno(10000)

    For N = 1 to max ' (max righe occupate)

    'seleziono i dati da confrontare

    Range(cells(N+1,3),cells(N+1.9)).copy

    Range("L3574").Select

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

            :=False, Transpose:=False

    'estraggo il ritardo del terno

    Range("L3576").Select

        ActiveCell.FormulaR1C1 = _

            "=MATCH(3,MMULT(COUNTIF(R[-2]C:R[-2]C[8],R2C3:R5398C9),ROW(R1:R7)^0),0)"

    ' memorizzo il dato

    Terno(N)=Range("L3576")

    next N

    'ora trasporto la memorizzazione fatta il un altro foglio

    For N = 1 to max

    trascrivo il dato nella 12

    sheets("Foglio-Ritardi").cells(N.12).value=Terno(N)

    next N

    end sub

    ora siccome mi serve anche di sapere il ritardo

    Ambata 1 num dei tot trasportati

    Ambo 2 num dei tot trasportati

    quaterna 4 num dei tot trasportati

    cinquina 5 num dei tot trasportati

    sestina 6 num dei tot trasportati

    settina 7 num dei tot trasportati

    ottina 8 num dei tot trasportati

    novina 9 num dei tot trasportati

    decina 10 num dei tot trasportati

    attualmente ho 5000 dati (righe)

    avevo messo nelle celle le 10 formule ma il tempo tra copiare e incollare e memorizzare idati e trascriverli è diventato una attesa di 1 ora e 30 min ..... col portatile

    c'è una possibilità maggiore per ridurre il tempo della elaborazione citata ?

    La risposta è stata utile?

    0 commenti Nessun commento