Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

Parametrare una formula

  1. #1
    L'avatar di Hollywood
    Hollywood non è in linea Scolaretto
    Dunque sto cercando di inserire in una cella questa formula: =CONTA.SE(M2:O10;">0") dove le celle di inizio e fine dell'intervallo dovrebbero essere parametrate, ovvero io cambio il contenuto di altre due celle, e la formula i restituisce ciò che cerco, ma relativamente ad un'altra area del foglio.
    Dopo avere provato quasi tutto, ho pensato: la faccio scrivere a VBA, diamine, ne sarò ben capace.
    Quindi scrivo:
    Range("B2").Select
    a = Range("a1")
    b = Range("a2")
    ActiveCell.FormulaLocal = "=CONTA.SE(M2:O10;"">0"")"
    
    e funziona, però non sono riuscito a cambiare il "2" con la variabile "a" ed il "10" con la variabile "b".
    Forse non è nemmeno questo l'approccio corretto, ma se riuscissi ad usare delle variabili come parametri nella formula riuscirei nel mio intento.
    Grazie a tutti coloro che vorranno dire la loro.
    Saluti

  2. #2
    Sgrubak non è in linea Scribacchino
    No, non è l'approccio corretto. In prima battuta, ti suggerisco di provare la formula INDIRETTO, annidata nel CONTA.SE.

    =CONTA.SE(INDIRETTO("M" & A1 & ":" & "O" & A2); ">0")
    
    Come seconda opzione, se proprio vuoi cimentarti col VBA, servono più accorgimenti:
    1) Le variabili vanno dichiarate. L'editor non è così rigido, ma a prendere il buon vizio da subito, ti risparmi un sacco di grattacapi poi. Quindi avrai:
    Dim a As Long
    Dim b as Long
    
    a = Range("A1").Value
    b = Range("A2").Value
    
    Nota: Usa Long con le nuove versioni di Excel. Per le vecchie, che hanno al massimo 65000 e rotte righe, basta un Integer

    2) Impara le basi del linguaggio, e quindi anche a concatenare le stringhe. La formula finale sarà appunto una stringa. Conviene mantenerla in una variabile, elaborarla concatenando quel che ti serve, e poi assegnarla alla proprietà FormulaLocal. Quindi:
    Dim formula As String
    formula = "=CONTA.SE(M" & a & ":O" & b & "; "">0"")"
    ActiveCell.FormulaLocal = formula
    
    Nulla vieta di fare l'assegnazione direttamente alla proprietà, senza passare dalla variabile, ma un po' di verbosità non ha mai ucciso nessuno, meno che mai all'inizio...

    Sostituisci ActiveCell, con la cella in cui vuoi che finisca la formula...

  3. #3
    L'avatar di Hollywood
    Hollywood non è in linea Scolaretto
    Grazie per l'attenzione e per la risposta.
    Mi permetto una osservazione sul punto 2: programmo in VB da molto tempo, e le basi, a forza di consigli e, permettimi il termine, "cazziate" da tutti voi più esperti credo di averne a sufficienza. Nel caso specifico per postare ho omesso alcune righe che riguardavano appunto la dichiarazione delle variabili.
    Fra l'altro non molto tempo fa, mi hai dato un grande aiuto su di un problema similare, e la "formula" era una stringa "concatenata" a mio avviso anche più complessa di questa.

    Nel caso specifico avevo già provato quanto da te suggerito, ma il mio errore era passare l'argomento della formula, e non tutta la formula, in pratica uno dei miei tentativi, sbagliato, è stato:

    Dim formula As String
    formula = "M" & a & ":O" & b 
    ActiveCell.FormulaLocal = "=CONTA.SE(formula;">0")"
    
    Comunque sia: ben vengano tutti i consigli e gli aiuti, sempre che siano costruttivi, come i tuoi. In fin dei conti l'invito migliorarsi studiando è sempre una bella cosa.
    Quindi GRAZIE ancora per l'aiuto.

    P.S.
    Ho usato l' "INDIRETTO" come suggerito al punto 1

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Formula Iif
    Da Tatò nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 04-07-2019, 18:12
  2. Formula SE - THEN
    Da Agostino:-: nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 20-01-2016, 15:06
  3. Parametrare array costanti.
    Da dodo47 nel forum Microsoft Excel
    Risposte: 2
    Ultimo Post: 21-01-2013, 09:31
  4. formula
    Da ffiron nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 05-06-2012, 22:30
  5. Come parametrare il controllo calendario
    Da perlasca nel forum Microsoft Word
    Risposte: 5
    Ultimo Post: 16-06-2008, 10:23