aiutooo ciclo for



  • aiutooo ciclo for
    di mauro (utente non iscritto) data: 18/02/2014 19:31:16

    visto che sono un pivello, avrei bisogno un aiuto nella creazione di un ciclo for su un foglio di Excel.
    E1 = E1 + A1 (valore che cambia dopo un aggiornamento del foglio)
    spiego con un esempio:
    Range("e1").Value = Range("e1").Value + Range("A1").Value

    devo ripeterlo per n righe 400/500
    vorrei evitare di scrivere
    Range("e2").Value = Range("e2").Value + Range("A2").Value
    Range("e3").Value = Range("e3").Value + Range("A3").Value
    Range("e4").Value = Range("e4").Value + Range("A4").Value

    qualcuno mi può aiutare ??????

    Grazie

     
    Range("e2").Value = Range("e2").Value + Range("A2").Value
    Range("e3").Value = Range("e3").Value + Range("A3").Value
    Range("e4").Value = Range("e4").Value + Range("A4").Value
    
    



  • di patel data: 18/02/2014 19:41:33

    prova così
     
    for i=2 to 500
      Range("e" & i).Value = Range("e" & i).Value + Range("A" & i).Value
    next
    






  • di MAURO (utente non iscritto) data: 18/02/2014 19:47:47

    GRAZIE 10000 PETEL FUNZIONA PERFETTAMENTE.



  • di gaetanopr data: 18/02/2014 19:48:44

    Oppure con evaluate senza ciclo for
     
    Sub xxxxx()
    Set xRange = Range("E1:E10")
    Set yRange = Range("A1:A10")
    
    yRange = Evaluate("(" & xRange.Address & ") + (" & yRange.Address & ")")
    Set xRange = Nothing
    Set yRange = Nothing
    
    End Sub
    



  • di gaetanopr data: 18/02/2014 19:50:30

    Naturalmente indicando i range giusti e lanciando la macro dal foglio attivo
    Ciao



  • di MAURO (utente non iscritto) data: 18/02/2014 19:54:27

    chiedo troppo se invece di fare il ciclo fino alla riga 500 lo facessi fino alla riga della colonna A che contiene un valore ?

    ringrazio anticipatamente



  • di gaetanopr data: 18/02/2014 19:59:28

    Quella precedente non era corretta
     
    Sub xxxxx()
    Set xRange = Range("E2:E" & Range("A" & Rows.Count).End(xlUp).Row)
    Set yRange = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
    
    xRange.Value = Evaluate("(" & xRange.Address & ") + (" & yRange.Address & ")")
    Set xRange = Nothing
    Set yRange = Nothing
    
    End Sub



  • di MAURO (utente non iscritto) data: 18/02/2014 20:01:20

    gaetanopr ho provato ma non succede nulla



  • di gaetanopr data: 18/02/2014 20:04:05

    Allego un esempio



  • di gaetanopr data: 18/02/2014 20:04:40

    nome esempio "EVALUATE"



  • di MAURO (utente non iscritto) data: 18/02/2014 20:06:13

    Gaetano funziona perfettamente ed è la risposta alla mia seconda richiesta.

    Grazie



  • di patel data: 18/02/2014 20:17:59

    per completezza e per i principianti
     
    for i=2 to Range("A" & Rows.Count).End(xlUp).Row
      Range("e" & i).Value = Range("e" & i).Value + Range("A" & i).Value
    next






  • di Vecchio Frac data: 18/02/2014 20:21:47

    Richiamo l'autore del thread a fare più attenzione col titolo della discussione (valga pro futuro).
    "Aiutooo ciclo for" non è un titolo accettabile, soprattutto per motivi di indicizzazione e ricerca. Ma anche per chiarezza sull'argomento proposto.
    Facciamo più attenzione, sembra una banalità ma è importante, grazie.





  • di panpos data: 18/02/2014 20:27:51

    chiedo scusa per il titolo
    e ringrazio tutti per l'aiuto.

    Buona serata