Condividi:        

[Excel] verifica macro finale

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] verifica macro finale

Postdi macio66 » 05/08/13 17:30

Il file di esempio:http://wikisend.com/download/608136/Esempio.xls
Ciao a tutti,
Ho creato una macro per il controllo delle temperature, che prende i dati di partenza dal foglio "Dati orig." ( in questo esempio la riga di inizio controllo e la n° 20).
La tabella finale nel foglio "220°C" è suddivisa in due parti di 30 minuti ciascuna dove, i dati provenienti dal foglio "Dati orig.), vengono sommati ai fattori correttivi della riga 5,8 con a lato i valori di aumento della temperatura ogni 2 minuti. La macro di partenza si chiama "Inserisci_CellaDati" che poi viene integrata da altre 2 macro "Range_Colora" e "Temperatura_InizioFine" (di cui mi sono servito del prezioso aiuto di "Flash").
A questo punto mi farebbe molto piacere avere un vostro giudizio sul risultato finale, ma soprattuto sapere se la macro "Inserisci_CellaDati" così come è strutturata va bene o se c'è la possibilità di renderla un pò meno macchinosa.
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59

Sponsor
 

Re: [Excel] verifica macro finale

Postdi macio66 » 05/08/13 17:39

Ciao
Mi sa che prima non sono riuscito a inserire il file di esempio
Adesso ci riprovo
http://wikisend.com/download/610970/Esempio.xls
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59

Re: [Excel] verifica macro finale

Postdi Flash30005 » 06/08/13 17:52

Puoi sostituire tutte le routine con la X, X1,X2 etc
con queste poche righe (ti do come riferimento le tue esistenti tra le quali dovrai inserire questo codice)
Codice: Seleziona tutto
   MX = (InputBox("Immettere n° riga di inizio controllo"))  '  '<<<<<<<<<<<<<<<< Esistente
' <<<<<<<<<<<<< inizio modifica
    If MX = "" Then Exit Sub
        'On Error Resume Next
        For VX = 0 To 31
        X(VX) = MX + Agg
        Agg = Agg + 2
        Next VX
    For Riga = 12 To 43
 '
    Range("B" & Riga).Value = Worksheets("Dati orig.").Range("A" & X(Riga - 12))
   Range("C" & Riga).Value = Worksheets("Dati orig.").Range("B" & X(Riga - 12))
   Range("D" & Riga).Value = Worksheets("Dati orig.").Range("C" & X(Riga - 12)) + [D8] + [D5]
   Range("E" & Riga).Value = Worksheets("Dati orig.").Range("D" & X(Riga - 12)) + [E8] + [E5]
   Range("F" & Riga).Value = Worksheets("Dati orig.").Range("E" & X(Riga - 12)) + [F8] + [F5]
   Range("G" & Riga).Value = Worksheets("Dati orig.").Range("F" & X(Riga - 12)) + [G8] + [G5]
   Range("H" & Riga).Value = Worksheets("Dati orig.").Range("G" & X(Riga - 12)) + [H8] + [H5]
   Range("I" & Riga).Value = Worksheets("Dati orig.").Range("H" & X(Riga - 12)) + [I8] + [I5]
   Range("J" & Riga).Value = Worksheets("Dati orig.").Range("I" & X(Riga - 12)) + [J8] + [J5]
   Range("K" & Riga).Value = Worksheets("Dati orig.").Range("J" & X(Riga - 12)) + [K8] + [K5]
   Range("L" & Riga).Value = Worksheets("Dati orig.").Range("K" & X(Riga - 12)) + [L8] + [L5]
   Next Riga
'
' <<<<<<<<<<<<<< fine modifica
    Range("P1").Value = Range("A4").Value   '<<<<<<<<<<<<<<<< Esistente


Noterai che ora la tabella non sarà formata da formule ma da valori, quindi più "snella"
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] verifica macro finale

Postdi macio66 » 06/08/13 19:11

Ciao
Ho provato a fare come mi hai detto, ma al momento dell'avvio della macro si blocca all'altezza della riga di comando " X(VX) = MX + Agg " e mi da come errore di compilazione: Sub o Function non definita
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59

Re: [Excel] verifica macro finale

Postdi Flash30005 » 06/08/13 20:52

Certo perché non ti ho passato i codice di dichiarazione del vettore che era nella prima parte della macro
quindi ora ti dò le prime righe
Codice: Seleziona tutto
Sub Inserisci_CellaDati()
'
    Range("B12:L43").Select
    Selection.ClearContents
    Selection.Interior.ColorIndex = xlNone
    Selection.FormatConditions.Delete
    Range("Q13:Y27").ClearContents   '<<<< esistente
'<<<< qui ho eliminato righe inutili

    Dim X(31) As Integer  '<<<<< aggiungere
    Agg = 0    '<<<<<< aggiungere
'
    On Error GoTo 0  '<<<< esistente


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] verifica macro finale

Postdi macio66 » 06/08/13 21:07

Ciao
Adesso funziona. Però nella mia macro la riga 27 che è l'ultima del controllo della prima mezzora, era anche la prima del controllo della seconda mezzora (cioè la riga 28)
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59

Re: [Excel] verifica macro finale

Postdi macio66 » 06/08/13 21:39

Ciao
Ho provato a risolverla in questo modo e funziona (secondo te è il modo corretto?):

Dim X(31) As Integer
Agg = 0
'
On Error GoTo 0

MX = (InputBox("Immettere n° riga di inizio controllo"))
If MX = "" Then Exit Sub
On Error Resume Next
For VX = 0 To 15
X(VX) = MX + Agg
Agg = Agg + 2
Next VX
Agg = Agg - 2
For VX = 16 To 16
X(VX) = MX + Agg
Agg = Agg + 2
Next VX
For VX = 17 To 31
X(VX) = MX + Agg
Agg = Agg + 2
Next VX
For Riga = 12 To 43
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59

Re: [Excel] verifica macro finale

Postdi Flash30005 » 06/08/13 23:57

Assolutamente no!

E' sufficiente inserire (modificare) una riga condizione nel ciclo for next della macro che ti ho inviato
Codice: Seleziona tutto
        For VX = 0 To 31
        X(VX) = MX + Agg
        If VX <> 16 Then Agg = Agg + 2  '<<<<<<< modificare così la riga
        Next VX


per il resto la macro deve rimanere invariata

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] verifica macro finale

Postdi macio66 » 07/08/13 16:39

Come sempre ti ringrazio per il tuo preziosissimo aiuto.
Spero che a forza di sbagliare e con i vostri suggerimenti, prima o poi qualcosa di funzionale riuscirò a farla anche io
ciao
macio66
Utente Senior
 
Post: 147
Iscritto il: 13/06/13 14:59


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] verifica macro finale":


Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti