indirizzo cella attiva



  • indirizzo cella attiva
    di maxp72 data: 01/10/2013 10:30:16

    Ho creato un'altra discussione visto che l'argomento e' diverso.
    ho una cella colorata (es.B1),una volta che mi sposto da questa ho la necessita' che la cella(B1) diventi con sfondo trasparente.
    Con il codice sotto ottengo quello che voglio.
    il problema e' nella riga 2:
    ActiveCell.Offset(-1, 0).Select
    Sul mio pc va benissimo, ma non so se sul pc di altri colleghi excel sia settato come il mio che quando digito nella cella exel vada nella cella sotostante.
    Com'e' possbile ottenere l'inidrizzo della cella in cui ho digitato il valore?


     
    Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Interior.ColorIndex = 6 Then
    ActiveCell.Interior.ColorIndex = xlNone
    End If
    End Sub



  • di maxp72 data: 01/10/2013 10:55:52

    Risolto....
    posto la soluzione se a qualcuno interessa.
     
    Range(Target.Address).Select
    If ActiveCell.Interior.ColorIndex = 6 Then
    ActiveCell.Interior.ColorIndex = xlNone
    End If



  • di Vecchio Frac data: 01/10/2013 14:32:33

    Con questo codice semplicemente inibisci il passaggio ad una cella diversa.
    Puoi sintetizzare con
    Target.Select
    perchè "Target" è già un oggetto Range, quindi inutile far calcolare a Excel l'Address di un Range per poi farglielo attivare.
    La risposta alla domanda iniziale "Com'e' possbile ottenere l'inidrizzo della cella in cui ho digitato il valore? " è abbastanza visibile, perchè se guardi la firma di "Private Sub Worksheet_Change" noti proprio l'oggetto Target (che è di tipo Range): Target vuol dire bersaglio, obiettivo, perciò l'evento Change si riferisce alla cella che è correntemente il bersaglio del cursore :) (io l'ho imparata così... poco tecnicamente, ma molto intuitivamente)