Risultati da 1 a 12 di 12

Discussione: Dubbi su SOMMA.SE



  1. #1
    L'avatar di gmf58
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    milano
    Età
    58
    Messaggi
    12
    Versione Office
    2010
    Utile ricevuti
    0
    Utile dati
    15

    Dubbi su SOMMA.SE

    Grazie Alf e Dillina per il caloroso benvenuto, si preannunciano ottimi scambi di informazioni!!!!
    Passo subito ai primi dubbi:
    a) ho guardato un po' di post ma sono così tanti e anche se mi sembra strano che nessuno abbia avuto il mio stesso problema (che parolona!!!), non l'ho trovato. Può essere che gli altri utilizzino linguaggi + adeguati del mio......
    b) non ho capito bene dove posso postare il quesito nel modo giusto.
    in breve si tratta di questo:
    utilizzo un file Excel con diversi fogli uno per ciascuna sede dove sono contenuti dei codici in una colonna e dei quantitativi in un altra colonna. I quantitativi devono essere sommai per tipo di codice. Mi serve fare la somma dei quantitativi di tutte le sedi in un foglio di riepilogo.
    Non sono riuscita a farlo usando il comando Somma.se né sul foglio di riepilogo annuale né in quello di ciascuna sede
    avrei un piccolo esempio... che allego.
    Inoltre io ho caricato al posto dell'avatar la foto della mia miciotta (morta la settimana scorsa), non so bene se le regole del forum lo permettono oppure se devo toglierla.
    grazie per il modo carino con cui avete risposto.
    ci rileggiamo dopo le 17,adesso pausa pranzo (buona pappa a tutti) e poi riunoncina grrrr
    bye
    gmf58
    File Allegati File Allegati
    Ultima modifica fatta da:Canapone; 05/07/17 alle 13:24

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    4871
    Versione Office
    2007 - 2013
    Utile ricevuti
    537
    Utile dati
    93

    Re: Ciao a tutti sono giovanna

    Ciao Giovanna

    Il forum ha varie sezioni distinte per tipologia di argomento.

    Relativamente ad Excel abbiamo

    Domande su Excel in generale
    Domande su Excel VBA e macro
    Domande sui grafici di Excel

    quindi in base alla natura del tuo quesito devi postare nella sezione dedicata.

    Poi ci sono sezioni relative agli altri programmi della suite Microsoft Office ossia Access, Word e PowerPoint dove puoi chiedere relativamente a questi applicativi.

    Ora passo a guardare il tuo file.
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  3. #3

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    4871
    Versione Office
    2007 - 2013
    Utile ricevuti
    537
    Utile dati
    93

    Re: Ciao a tutti sono giovanna

    Ciao Giovanna

    Perché dici che con il SOMMA.SE non risolvi?

    Nel foglio Riepilogo metti la formula

    Codice: 
    =SOMMA.SE('SEDE A'!$E$2:$E$9;A2;'SEDE A'!$H$2:$H$9)
    da adattare poi nelle altre celle cambiando il foglio della sede e la cella del criterio (codice).

    Ti allego il file.

    Spero che era questo quello che volevi.
    File Allegati File Allegati
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  4. I seguenti 2 utenti hanno dato un "Like" a alfrimpa per questo post:


  5. #4

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    4871
    Versione Office
    2007 - 2013
    Utile ricevuti
    537
    Utile dati
    93

    Re: Ciao a tutti sono giovanna

    Giovanna la prossima volta posta la tua richiesta nella sezione "Domande su Excel in generale".

    Non credo che, al momento, tu necessiti di aiuto sul VBA (Sai cosa e? )
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  6. I seguenti utenti hanno dato un "Like"


  7. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    4871
    Versione Office
    2007 - 2013
    Utile ricevuti
    537
    Utile dati
    93

    Re: Ciao a tutti sono giovanna

    Ciao Giovanna

    Giusto per divertimento ho scritto una funzione in VBA (Visual Basic for Application che è un linguaggio di programmazione comune alle applicazioni di Office) che fa lo stesso lavoro del SOMMA.SE ma più "semplice" da scrivere sul foglio.

    Codice: 
    Function sommasevba(fgl As String, crit As Range)
    Dim incrit As Range
    Dim insomma As Range
    Set incrit = Worksheets(fgl).Range("e2:e99")
    Set insomma = Worksheets(fgl).Range("h2:h99")
    sommasevba = Application.WorksheetFunction.SumIf(incrit, crit, insomma)
    End Function
    Sul foglio, una volta presente la funzione nel file, basterà scrivere in una cella

    Codice: 
    =sommasevba("SEDE A";A2)
    oppure

    Codice: 
    =sommasevba("SEDE B";A2)
    o ancora

    Codice: 
    =sommasevba("SEDE C";A2)
    ed avrai gli stessi risultati del classico SOMMA.SE.

    Se un domani andrai ad inserire altri fogli (strutturalmente uguali ai precedenti) la funzione sarà utilizzabile anche per questi basta che come primo parametro indicare tra le virgolette il nome del nuovo foglio.

    Sono andato troppo oltre?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  8. I seguenti 2 utenti hanno dato un "Like" a alfrimpa per questo post:


  9. #6
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    57
    Messaggi
    994
    Versione Office
    Office 2013
    Utile ricevuti
    970
    Utile dati
    1754

    Re: Ciao a tutti sono giovanna

    Ciao gmf58, e un saluto a tutti, un altro modo di risolvere il problema, alternativo alla già valida soluzione proposta da alfrimpa, che cordialmente saluto, potrebbe essere il seguente:

    In H10 dei fogli "SEDE C", "SEDE B", "SEDE A":
    =SOMMA.SE($E$2:$E$9;$I10;$H$2:$H$9)
    da tirare giù.

    In B2, "Riepilogo Annuale":
    =SE.ERRORE(AGGREGA(15;6;(INDIRETTO("'"&B$1&"'!$H$10:$H$12"))/(INDIRETTO("'"&B$1&"'!$I$10:$I$12")=$A2);1);"")
    da trascinare verso destra e successivamente da tirare giù.
    Allego il file di prova, Ciao.
    File Allegati File Allegati

  10. I seguenti 3 utenti hanno dato un "Like" a pkrome59 per questo post:


  11. #7
    L'avatar di gmf58
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    milano
    Età
    58
    Messaggi
    12
    Versione Office
    2010
    Utile ricevuti
    0
    Utile dati
    15

    Re: Ciao a tutti sono giovanna

    Sì era esattamente questo, ma non capisco che errore facevo!
    grazie mille sei stato magnifico!
    giuro che dopo aver scoperto questo forum tutti i giorni passo a fare un saluto e a imparare qualcosa.
    ancora grazie!
    Ultima modifica fatta da:Canapone; 05/07/17 alle 13:24

  12. #8
    L'avatar di gmf58
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    milano
    Età
    58
    Messaggi
    12
    Versione Office
    2010
    Utile ricevuti
    0
    Utile dati
    15

    Re: Ciao a tutti sono giovanna

    No Alf spero che il tuo post non scompaia perchè domani mattino in ufficio faccio le prove sul file. Io non conosco VBA e mi piacerebbe imparare a utilizzare i codici....perciò accetto ogni informazione e la provo sui miei file così imparo, ma ti avviso in tempo, queste cose per me sono come le ciliege.....una tira l'altra...
    buona notte.
    gmf
    Ultima modifica fatta da:Canapone; 06/02/17 alle 12:54

  13. #9

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    980
    Versione Office
    .
    Utile ricevuti
    322
    Utile dati
    0

    Re: Ciao a tutti sono giovanna

    Ciao,
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    ....Giusto per divertimento ho scritto una funzione in VBA (Visual Basic for Application che è un linguaggio di programmazione comune alle applicazioni di Office) che fa lo stesso lavoro del SOMMA.SE ma più "semplice" da scrivere sul foglio....
    Vorrei fare presente che quando si scrive una UDF, cioè una funzione utilizzabile "lato celle", si dovrebbero rispettare certi canoni per renderle assimilabili alle funzioni native di Excel.
    Nel caso in oggetto sarebbe assolutamente da evitare, all'interno del codice, il riferimento ad uno specifico range di celle.Ho detto "si dovrebbe" perché non è un comandamento, e alla fine ognuno è libero di fare come crede, però .....
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  14. #10

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    4871
    Versione Office
    2007 - 2013
    Utile ricevuti
    537
    Utile dati
    93

    Re: Ciao a tutti sono giovanna

    @ scossa

    Avevo precisato di aver scritto questa function solo per divertimento non essendovi una reale necessità di ricorrere, in questo caso, al VBA ed anche per una sfida con me stesso ed il fatto di esserci riuscito è per me motivo di soddisfazione.

    Quanto poi al modo di scrivere il codice questo dipende dal livello di conoscenze/esperienze di chi lo redige.

    Riconosco che la function, così come è scritta, è un obbrobrio ma funziona e non riesco ad intravvedere una situazione in cui potrebbe non funzionare.

    Ma esiste un elenco delle cose che in VBA non si devono/dovrebbero fare? Io di testi sull'argomento ne ho diversi ma non ho mai trovato una lista di questo tipo e non essendo un programmatore né avendo mai seguito corsi su nessun linguaggio di programmazione (tantomeno sul VBA) dove dovrei andare a prendere tale tipo di informazioni che non si trovano sulla manualistica corrente (o anche su Internet se non con ricerche assai specifiche)?

    Poi mi spieghi qual è la differenza tra una function e una UDF?

    Ed infine tu quella function (o UDF) come l'avresti scritta?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  15. #11

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    980
    Versione Office
    .
    Utile ricevuti
    322
    Utile dati
    0

    Re: Ciao a tutti sono giovanna

    Ciao Alfredo,

    @ scossa
    riconosco che la function, così come è scritta, è un obbrobrio ma funziona e non riesco ad intravvedere una situazione in cui potrebbe non funzionare.
    Ma infatti, non ho detto che non funzioni, solo che non dovrebbe contenere riferimenti statici all'interno del codice.
    Hai mai visto/usato funzioni native di Excel che facciano riferimento a range di celle prestabiliti?

    Ma esiste un elenco delle cose che in VBA non si devono/dovrebbero fare?
    No, purtroppo (o per fortuna) un tale elenco credo non esista, però qualche linea guida te la crei con l'esperienza: una funzione da usare in una cella deve poter essere usata in qualsiasi cella e non deve essere vincolata al contenuto di celle prestabilite nel "dna" della funzione.
    Come sopra: sei a conoscenza di funzioni native di Excel che facciano riferimento a range di celle prestabiliti?

    Più difficile è stabilire una linea guida in caso di errore della funzione (p.e. =SOMMA(2;1/5;1/0) restituisce giustamente errore): in teoria una udf che volesse simulare SOMMA() non dovrebbe gestire l'errore al suo interno ma restituirlo; ma effettivamente può comodo (per evitare di dover usare SE.ERRORE) gestirlo al suo interno.

    Poi mi spieghi qual è la differenza tra una function e una UDF?
    In realtà in VBA non fa alcuna differenza, la differenza esiste nell'interfaccia Excel (lato celle): se una function può essere usata in una cella, cioè funziona correttamente anche se usata in una cella, allora si tratta di una UDF (User Defined Function) termine usato per distinguerla dalle funzioni native.

    Ed infine tu quella function (o UDF) come l'avresti scritta?
    Passando anche i range incrit e insomma come parametri della UDF:
    Function sommasevba(crit As Range, incrit as rangem insomma as range)
    sommasevba = Application.WorksheetFunction.SumIf(incrit, crit, insomma)
    End Function
    =sommasevba("SEDE A";A2;Foglio1!e2:e99;Foglio1!h2:h99)
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  16. #12

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    4871
    Versione Office
    2007 - 2013
    Utile ricevuti
    537
    Utile dati
    93

    Re: Ciao a tutti sono giovanna

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Passando anche i range incrit e insomma come parametri della UDF:
    Function sommasevba(crit As Range, incrit as rangem insomma as range)
    sommasevba = Application.WorksheetFunction.SumIf(incrit, crit, insomma)
    End Function
    =sommasevba("SEDE A";A2;Foglio1!e2:e99;Foglio1!h2:h99)
    Era quello che ovviamente avevo tentato di fare inizialmente ma poi, non so perché, mi sono "incartato".
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

Discussioni Simili

  1. MACRO: una somma "dinamica" in una cella che mi salvi tale somma ogni 24 ore
    Di armandino nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 15/10/15, 20:36

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •