IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Excel
  New Posts New Posts RSS Feed - [Risolto] Calcola media Mobile
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

[Risolto] Calcola media Mobile

 Post Reply Post Reply Page  <12
Author
Message
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 494
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 21/Apr/2019 at 18:35
ciao e Auguri a tutti Voi 
---------------
ho provato a lanciare la macro inserendo il pulsante macro in altro foglio che funge da menù ma inaspettatamente mi da errore runtime 13... e si bocca al rigo evidenziato con con questa istruzione:
 " anno = anno + Cells(i, j) 'media 12 mesi escluso Lug e Ago"

grazie per la pazienza
------------
Sub MedieVarie()
Dim j As Long, i As Long, m As Integer
Dim LugAgo As Double, anno As Double, sixM As Double
Range("C18:K22").ClearContents
For j = 3 To 11
  For i = 3 To 14
    If Cells(i, 2) = "luglio" Or Cells(i, 2) = "agosto" Then
      LugAgo = LugAgo + Cells(i, j) 'media solo luglio e agosto
    ElseIf Cells(i, 2) <> "luglio" Or Cells(i, 2) <> "agosto" Then
      anno = anno + Cells(i, j) 'media 12 mesi escluso Lug e Ago
    End If
  Next i
  Cells(20, j) = Round(anno / 10, 0)
  Cells(22, j) = Round(LugAgo / 2, 0)
  anno = 0
  LugAgo = 0
  For i = 9 To 14
    If Cells(i, 2) <> "luglio" Or Cells(i, 2) <> "agosto" Then
      sixM = sixM + Cells(i, j) 'media 12 mesi escluso Lug e Ago
      m = m + 1
    End If
  Next i
  Cells(18, j) = Round(sixM / m, 0)
  sixM = 0
  m = 0
Next j
End Sub





Edited by antoniomlg - 05/Mag/2019 at 21:22
Back to Top
Sponsored Links


Back to Top
Marius44 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 02/Gen/2017
Location: Catania
Status: Offline
Points: 493
Post Options Post Options   Thanks (1) Thanks(1)   Quote Marius44 Quote  Post ReplyReply Direct Link To This Post Posted: 22/Apr/2019 at 07:28
Ciao
Ricambio gli auguri.
Credo che si blocchi al "primo" passaggio del ciclo ed il motivo è quasi certamente dovuto al fatto che la macro è impostata sul foglio che postato come esempio.
Per fare quello che vorresti devi fare riferimento al Foglio in cui ci sono i dati- Mi spiego:
ipotizziamo che il Foglio dove sono i dati è il Foglio2 mentre il Foglio dove vuoi mettere il pulsante è il Foglio1:
Foglio1 - inserisci il tuo pulsante e come codice metti: Call MedieVarie
Macro MedieVarie - inserisci, subito dopo le Dichiarazioni e prima della riga che pulisce le celle: With Sheets("Foglio2"), cioè le tre righe di codice diventano
...
Dim LugAgo As Double, anno As Double, sixM As Double
With Sheets("Foglio2")
.Range("C16:K20").ClearContents
...
Attento all'ultima riga sopra. Nota che prima c'è un punto.
Ecco, in ogni riga del codice che fa riferimento ad una cella devi mettere un punto.
Quindi le rimanenti righe diventano

For j = 3 To 11
  For i = 3 To 14
    If .Cells(i, 2) = "luglio" Or .Cells(i, 2) = "agosto" Then
      LugAgo = LugAgo + .Cells(i, j) 'media solo luglio e agosto
    ElseIf .Cells(i, 2) <> "luglio" Or .Cells(i, 2) <> "agosto" Then
      anno = anno + .Cells(i, j) 'media 12 mesi escluso Lug e Ago
    End If
  Next i
  .Cells(18, j) = Round(anno / 10, 0)
  .Cells(20, j) = Round(LugAgo / 2, 0)
  anno = 0
  LugAgo = 0
  For i = 9 To 14
    If .Cells(i, 2) <> "luglio" Or .Cells(i, 2) <> "agosto" Then
      sixM = sixM + .Cells(i, j) 'media 12 mesi escluso Lug e Ago
      m = m + 1
    End If
  Next i
  .Cells(16, j) = Round(sixM / m, 0)
  sixM = 0
  m = 0
Next j

Prova e fai sapere.
Ciao,
Mario
Back to Top
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 494
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 22/Apr/2019 at 09:43
grazie della cortese risposta

io avevo risolto inserendo proprio in quella riga indicata da te, il focus del foglio stesso 
Sheets("media semes").Select
e funziona..

però vorrei capire quale dei due metodi è quello giusto....

grazie

Back to Top
Marius44 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 02/Gen/2017
Location: Catania
Status: Offline
Points: 493
Post Options Post Options   Thanks (0) Thanks(0)   Quote Marius44 Quote  Post ReplyReply Direct Link To This Post Posted: 22/Apr/2019 at 10:14
Ciao
In Excel e VBA non c'è il modo giusto! Qualsiasi cosa si può fare in tanti modi diversi (ferme, ovviamente, le regole principali). Molto dipende dalla preparazione personale, dall'inventiva, dal gusto e ... da tante altre cose.
Ciò doverosamente premesso,  mi piace ripetere quello che diceva un GURU: 
"Se funziona, va bene. Avrai tempo per eventualmente affinarlo."

Ciao,
Mario 
Back to Top
 Post Reply Post Reply Page  <12
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,063 seconds.