macro copiase



  • macro copia.se
    di Nicola (utente non iscritto) data: 13/05/2013 11:40:39

    Ho scritto una macro che dovrebbe svolgere questo lavoro: se il valore della cella ("M", i) = "gigi" allora il valore della cella ("B", i) diventa uguale a quello della cella ("BZ", i), altrimenti non fare nulla.
    Ovviamente non funziona:


     
    Sub copia_se()
    
    Dim i As Integer
    
    For i = 1 To 100
    If Trim(Range("m" + Format(i))) = "gigi" Then
        Range("b" + Format(i)).Value = Range("bz" + Format(i)).Value
    End If
    Next i
    
    End Sub



  • di HarryBosch data: 13/05/2013 19:35:19

    Ciao Nicola
    in realtà la routine che hai scritto dovrebbe funzionare.
    Sicuro che le colonne di riferimento siano giuste?

    Ad ogni modo, ti consiglierei di sostituire l'uso del "+" con il più leggibile "&" quando hai a che fare con l'unione di stringhe, evitando anche l'uso del Format per la variabile "i".
    Puoi infine omettere il .value per riferirti al valore del Range richiamato.
     
    Sub copia_se()
        Dim i As Integer
        For i = 1 To 100
            If Trim(Range("m" & i)) = "gigi" Then  Range("b" & i) = Range("bz" & i)
        Next i
    End Sub
    



  • di Vecchio Frac data: 13/05/2013 20:20:36

    +1 per il grande Harry ^_^




  • cambio riferimento
    di Nicola (utente non iscritto) data: 14/05/2013 08:37:11

    In effetti cambiando un riferimento, la macro ha iniziato a funzionare come una scheggia.

    Grazie