Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCEL Da Formula a Macro

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 Da Formula a Macro

Postdi Francesco53 » 14/02/13 14:50

Buona serata a tutto il Forum,
ho la seguente difficoltà, devo trasformare una formula o funzione in macro, spero ci sia la possibilità.
Ho 3 valori nelle celle B2, C2, D2 e tramite la seguente formula o funzione, riesco a stabilire se il valore
presente è Pari o Dispari,
Codice: Seleziona tutto
=SE((RESTO(B2;2))=0;1;0)

Ora la mia necessità è realizzare questo controllo su macro in quanto devo sommare i due numeri che risultano
o pari o dispari. Pertanto dovrei creare:
Codice: Seleziona tutto
If cells( 2, 2) = 1 and cells( 2, 3) = 1 Then
cells(  2, 5) = cells( 2, 2) + cells( 2, 3)
End if

Spero in un vostro aiuto.
Ringrazio chiunque possa darmi le indicazioni per superare la difficoltà.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: EXCEL Da Formula a Macro

Postdi Anthony47 » 14/02/13 14:56

Scusa, ma il codice che hai pubblicato non e' idoneo?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL Da Formula a Macro

Postdi wallace&gromit » 14/02/13 15:12

ciao francesco,
non è molto bella ma funziona:
Codice: Seleziona tutto
Sub dispari()
If Cells(2, 2) / 2 <> Int(Cells(2, 2) / 2) And Cells(2, 3) / 2 <> Int(Cells(2, 3) / 2) Or Cells(2, 2) / 2 = Int(Cells(2, 2) / 2) And Cells(2, 3) / 2 = Int(Cells(2, 3) / 2) Then
Cells(2, 5) = Cells(2, 2) + Cells(2, 3)
Else: Cells(2, 5) = 0
End If
End Sub


Edit: ho riinserito qui una versione che dovrebbe funzionare
Ultima modifica di wallace&gromit su 14/02/13 15:17, modificato 2 volte in totale.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: EXCEL Da Formula a Macro

Postdi Flash30005 » 14/02/13 15:13

Non è molto chiara l'esposizione del quesito
per quanto riguarda la formula che sostituisce la macro da te postata devi inserire in E2 questa formula
Codice: Seleziona tutto
=SE(E(B2=1;C2=1);B2+C2;"NO")

Non hai detto cosa deve succedere in caso contrario, io ho messo "NO" ma tu puoi metterci qualsiasi altra cosa

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Da Formula a Macro

Postdi Francesco53 » 14/02/13 15:47

Un grazie a tutti,
come chiesto non voglio utilizzare formule in quanto, sfruttando una macro che rileva i tre valori,
volevo tramite la stessa inserire nella prima cella utile il valore della somma dei due numeri su tre
che risultavano pari o dispari.
Utilizzando parte del codice postato da wallace, che ringrazio ho realizzato la seguente macro,
ma ancora qualcosa non và.
Codice: Seleziona tutto
Sub PariDispari()
    a = Cells(2, 2)
    b = Cells(2, 3)
    c = Cells(2, 4)
    If Cells(2, 2) / 2 <> Int(Cells(2, 2) / 2) And Cells(2, 3) / 2 <> Int(Cells(2, 3) / 2) Then
        Cells(2, 5) = Cells(2, 2) + Cells(2, 3)
    End If
    If Cells(2, 2) / 2 <> Int(Cells(2, 2) / 2) And Cells(2, 4) / 2 <> Int(Cells(2, 4) / 2) Then
        Cells(2, 5) = Cells(2, 2) + Cells(2, 4)
    End If
    If Cells(2, 3) / 2 <> Int(Cells(2, 3) / 2) And Cells(2, 4) / 2 <> Int(Cells(2, 4) / 2) Then
        Cells(2, 5) = Cells(2, 3) + Cells(2, 4)
    End If
End Sub

Continuo a provare e se riesco posto la macro giusta, se poi qualcuno di voi riesce prima a realizzare
quanto richiesto, capirò dove sbaglio.
Per chiarezza di informazione i tre numeri possono essere solo o 2 pari e 1 dispari, oppure 2 dispari ed 1 pari.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: EXCEL Da Formula a Macro

Postdi wallace&gromit » 14/02/13 16:00

prova così:
Codice: Seleziona tutto
Sub dispari()
    a = Cells(2, 2)
    b = Cells(2, 3)
    c = Cells(2, 4)
If a / 2 <> Int(a / 2) And b / 2 <> Int(b / 2) Or a / 2 = Int(a / 2) And b / 2 = Int(b / 2) Then
Cells(2, 5) = a + b
End If
If a / 2 <> Int(a / 2) And c / 2 <> Int(c / 2) Or a / 2 = Int(a / 2) And c / 2 = Int(c / 2) Then
Cells(2, 5) = a + c
End If
If c / 2 <> Int(c / 2) And b / 2 <> Int(b / 2) Or c / 2 = Int(c / 2) And b / 2 = Int(b / 2) Then
Cells(2, 5) = c + b
End If

End Sub
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: EXCEL Da Formula a Macro

Postdi Flash30005 » 14/02/13 16:03

@francesco
Non sei un neofita e mi meraviglio l'uso che fai delle variabili
prima le dichiari
a =...
b = ...
c =..
e poi rimetti in gioco il codice delle celle delle variabili
comunque un modo più semplice per sapere se un numero è pari o dispari
è la funzione Mod
quindi puoi usare
A = variabile
Codice: Seleziona tutto
Sub ss()
If A Mod 2 = 0 Then
MsgBox "Pari"
Else
MsgBox "dispari"
End If
End Sub

Per il resto ancora non ho capito se devi sommare solo i valori diapri se tutti e tre se sono dipari o altro...
ma penso che ora riuscirai a risolvere da solo

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Da Formula a Macro

Postdi wallace&gromit » 14/02/13 16:16

grazie a flash semplificherei il tutto così:
Codice: Seleziona tutto
Sub dispari2()
    a = Cells(2, 2)
    b = Cells(2, 3)
    c = Cells(2, 4)
If a Mod 2 = b Mod 2 Then
Cells(2, 5) = a + b
End If
If a Mod 2 = c Mod 2 Then
Cells(2, 5) = a + c
End If
If c Mod 2 = b Mod 2 Then
Cells(2, 5) = c + b
End If

End Sub
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: EXCEL Da Formula a Macro

Postdi Flash30005 » 14/02/13 16:24

Stando alle specifiche e combinazioni possibili indicate da francesco (sommare le celle dispare)
qui non so se una sola deve essere considerata o no.
Nel caso in cui devono essere prese in considerazione se ci sono almeno due celle diaspari per sommarle è possibile evitare di scansionare ogni cella nel caso che la loro somma dia valore dispari quindi con una macro così si saltano dei passaggi
Codice: Seleziona tutto
Sub ContaDisp()
If (Cells(2, 2) + Cells(2, 3) + Cells(2, 4)) Mod 2 <> 0 Then Exit Sub
If Cells(2, 2) Mod 2 = 0 Then MyVal = Cells(2, 3) + Cells(2, 4)
If Cells(2, 3) Mod 2 = 0 Then MyVal = Cells(2, 2) + Cells(2, 4)
If Cells(2, 4) Mod 2 = 0 Then MyVal = Cells(2, 2) + Cells(2, 2)
MsgBox MyVal
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL Da Formula a Macro

Postdi Francesco53 » 14/02/13 16:33

Ringrazio entrambi per le soluzioni proposte.
Per Flash hai perfettamente ragione su quanto affermi per le variabili, è stato solo un eccesso
di chiarezza a farmi inserire quelle prime righe, visto che il mio primo post non era riuscito a
far capire le mie esigenze, ho pensato a torto di renderlo più esplicito.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45


Torna a Applicazioni Office Windows


Topic correlati a "EXCEL Da Formula a Macro":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti