Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Macro Vb Opzioni
guayas
Inviato: Wednesday, May 11, 2005 2:08:33 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Salve. Avrei bisogno di un aiuto da qualcuno più pratico di me con le macro e Vb. Faccio direttamente un esempio di quello di cui ho bisogno. Ho, poniamo in a3 una formula il cui risultato varia al variare del valore iscritto in a1. Quest'ultimo varia grazie ad un ciclo For...Next. Vorrei copiare ogni risultato della formula in celle successive. per es. per a1 = 1 --> a3 = 8 da copiare in b1, per a1 = 2 ---> a3 = 9 da copiare in b2 e così via in b3, b4, b5....tante volte quanto dura il ciclo. Come passo fare ? vi ringrazio
Sponsor
Inviato: Wednesday, May 11, 2005 2:08:33 PM

 
a10n11
Inviato: Wednesday, May 11, 2005 5:35:07 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
non è mica tanto chiaro quello che ti serve.
ad esempio il ciclo for su cosa opera e su cosa riversa i risultati, la formula è definita nel codice del VBA?
a lume di naso non conoscendo la struttura del tuo codice suppongo che sia sufficiente applicare la propietà offset dell'oggetto Range o Cells. Se ci potessi mostrare il codice che hai realizzato o fare un esempio più chiaro sarebbe più facile esserti d'aiuto.
saluti
Andrea

guayas
Inviato: Wednesday, May 11, 2005 11:03:58 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Innanzitutto, grazie mille per la risposta andrea. Scusa, cerco di essere più chiaro. Questo è un esempio molto semplice di quanto ho scritto finora :

Dim i As Integer
For i = 2 To 10 Step 2
Range("c34").Value = i
Range("c36").Select
Selection.Copy
Range("f36").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Next i

In C36 io ho, poniamo un esempio semplice, la seguente formula =C34+2
In questo modo il valore iscritto nella cella C34 varia da 2 a 10, e influenza il risultato della formula iscritta nella cella C36. Così per c34 = 2,4,6,8,10 avrò c36 = 4,6,8,10,12. Io vorrei che questi risultati vengano via via copiati e incollati nelle celle da f36 in giù ( f37,f38,f39...), in modo che al termine della routine, io avrò la lista di tutti i risultati ottenuti in C36 al variare di i ( ovvero al variare di c34 ). Nella mia macro sono sempre copiati in f36.
Spero di essere stato più chiaro. Ti prego aiutami. Grazie
c.broggio
Inviato: Wednesday, May 11, 2005 11:09:01 PM
Rank: Member

Iscritto dal : 10/4/2000
Posts: 0
ciao
condivido con a10n11 sei stato molto impreciso comunque provo una macro
da cio' che ho capito dal tuo messaggio in a1 hai un dato che varia con un ciclo for , in a2 hai un dato fisso , mi sembra 7 , in a 3 hai la somma dei 2 dati
con un ciclo for da 1 a 10 ottieni nella cella a3 il dato 17 cioe a2=7+il ciclo for da 1 a 10 .
adesso tu vuoi sviluppare il ciclo for nella colonna b da b1 a b 10 (nel mio esempio)
di conseguenza devi fare cosi
Public Sub aaa()
For i = 1 To 10
Range("a3") = i + Range("a2")
Cells(i, 2) = i + Range("a2")
Next i
End Sub
nella colonna b per tutto il ciclo for a partire da b1 ti verra copiato il dato relativo alla cella a1 (ciclo for )+ la cella a2 (valore fisso )

spero di aver capito cio che volevi , al massimo spiegati meglio

ciao
guayas
Inviato: Wednesday, May 11, 2005 11:24:49 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Ciao. Si lo so, sono stato impreciso. Ho cercato di rimediare nel mio nuovo post. Pensi sia abbastanza chiaro ? Se sì, la tua macro è valida per il caso che ho esposto ?
Ti ringrazio molto.
guayas
Inviato: Wednesday, May 11, 2005 11:41:36 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Scusate nuovamente.
La soluzione proposta da C.Broggio va nella direzione di ciò che voglio, tuttavia devo aggiungere un'ulteriore elemento : i varia da 2 a 10 solo per semplificare. Se, come nel mio secondo post, i varia in ragione di uno step 2 ( ma potrebbe essere 100 o qualsiasi altro numero, così come i potrebbe variare da 21 a 70, tanto per dire ), io vorrei comunque sviluppare il ciclo in celle successive come f36, f37, f38... ( o b1,b2,b3...). Come fare ? Grazie ancora.
a10n11
Inviato: Thursday, May 12, 2005 8:53:10 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
ora è un pochino più chiaro.
prova avedere se ti risolver questa
Sub ricopia()
dim riga,colonna
riga=1
colonna=4
for i=2 To 10 step 2
cells(1,1)=i
cells(3,1).select
Selection.copy
cells(riga,colonna).select
selection.PasteSpecial Paste:=xlvalues
riga=riga+1
Next
end sub

evidentemente come riferimenti di cella dai quelli che ti servono.
saluti
andrea


c.broggio
Inviato: Thursday, May 12, 2005 10:19:14 AM
Rank: Member

Iscritto dal : 10/4/2000
Posts: 0
ciao
andrea ha dimenticato una riga di codice
ti scrivo la macro completa
Sub ricopia()
Dim riga, colonna
riga = 1
colonna = 4
For i = 2 To 10 Step 2
Cells(1, 1) = i
Cells(3, 1).Select
Selection.Copy
Cells(riga, colonna).Select
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
riga = riga + 1
Next
End Sub

ciao
a10n11
Inviato: Thursday, May 12, 2005 11:52:30 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
Broggio, grazie per l'integrazione.
non ho usato i comandi screenupdating e cutcopymode perchè visto che guayas conosce Vba pareva superfluo.
saluti andrea

guayas
Inviato: Thursday, May 12, 2005 1:29:01 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
E' semplicemente perfetto!!!
Che dire ? Grazie ad entrambi, per aver risolto il mio problema e per avermi dedicato un pò del vostro tempo !! In pratica sto cercando di svilupparmi un file per testare trading systems per conto mio. Ora, mi basta sostituire inizio e fine del ciclo for ( che sono, nel mio caso, gli estremi del range entro i quali far variare i parametri temporali di qualsivoglia indicatore ) con riferimenti ad altre celle, ed il gioco è fatto...Io sono alle prime armi con Vba ( quindi vi invidio ) e sto scoprendo possibilità illimitate !!!
Ancora grazie ! ciao
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.