Newsgroup: it.comp.lang.visual-basic
Titolo: problema macro in VBasic

Salve avevo postato ieri il messaggio ma ero ancora all'inizio, stamattina
guardando qua e la sono riuscito a partorire questo modulo per eseguire la
macro in excel, se elimino il ciclo for to next e la riga che fa riferimento
alla variabile i, il modulo funziona, ma ho bisogno di eseguirla 100 volte!
E per questo ho messo il ciclo for to next, il problema č quello di
immettere i valori trovati in una colonna, in maniera da ritrovarmi alla
fine dell'esecuzione della macro nelle caselle M3:M103 i valori cercati, ma
non conosco la sintassi corretta per generalizzare il numero
di riga della cella che deve contenere il valore cercato, per questo ho
messo range ("M(i+2)") tanto per farvi capire cosa devo generalizzare.
Se qualcuno fosse cosě gentile da aiutarmi, si tratta della tesi di laurea.
Sotto ho riportato il codice
grazie.
Sub trovabeta()
'
' trovabeta Macro
' Macro registrata il 26/01/01 da Giancarlo
'
' Scelta rapida da tastiera: CTRL+p
'
    Dim i As Integer
    Dim pi
    pi = 4 * Atn(1) 'calcola il valore di pigreco
    For i = 1 To 3
        Range("H14").Value = Rnd * 2 * pi 'assegna alla cella H14 un numero
casuale moltiplicato per 2pigreco
        Range("H15").Value = Rnd * 2 * pi
        Range("H16").Value = Rnd * 2 * pi
        Range("H17").Value = Rnd * 2 * pi
        Range("H18").Value = Rnd * 2 * pi
        Range("B16").Value = "1.35" 'assegna alla cella B16 il valore
iniziale
        Range("G19").Select
        Do While Range("G19").Value <> Range("E4").Value 'imposta un ciclo
condizionato al verificarsi della condizione
            Range("B16").Select
            Selection.Copy
            Range("B17").Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
                False, Transpose:=False
            Application.CutCopyMode = False
            Range("B16").Select
            ActiveCell.FormulaR1C1 = "=R[1]C[0]+0.01" 'incrementa B16 di
0.01 perchč la condizione non č soddisfatta
        Loop
        Range("M(i+2)").Value = Range("B17").Value 'mette nella cella
M(i+2)(ad esempio nel primo ciclo la cella M3) il valore di B17 calcolato ad
ogni iterazione
        Range("B17").Select
        Selection.Copy
        Range("M2").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
        False, Transpose:=False 'copia il valore precedente a quello che ha
soddisfatto la condizione e lo mette in M2
            Application.CutCopyMode = False
    Next i
        MsgBox "Operazione completata"
End Sub

 fine dell'esecuzione della macro nelle caselle M3:M103 i valori cercati,
ma
[...]

         Range("M(i+2)").Value
ovvero:
            Range("M" & cStr(i+2)).Value
beppe
-----------------------------------------------------------
Visita il sito del WWF AltoFerrarese
http://www.comune.cento.fe.it/wwfaf
-----------------------------------------------------------

dovrebbe essere cells(riga,colonna).value = [valore]
dove riga è il numero di riga e colonna quello della colonna. quindi colonna
dovrebbe essere sempre 13 (lettera M) e riga deve aumentare ogni volta.
mario

 wrote in message
94rped$p8f$1...@news.mclink.it...
