Ritorna alla cella precedente



  • Ritorna alla cella precedente
    di Kipudda (utente non iscritto) data: 18/08/2015 16:44:22

    Buongiorno,

    ho provato ad inserire la seguente istruzione con la funzione “Set” in modo che il cursore, una volta terminata l’istruzione che viene attivata premendo l’apposito pulsante, ritorni sulla cella precedentemente selezionata:

    Sub PVC_1_Click()

    Set CellaDoveEro = ActiveCell

    If Range("BD6") = "" And Range("C6") > 0 And Range("Q28") = Worksheets("Riferimenti").Range("L127") Then
    Range("BD6").Select
    ActiveCell.FormulaR1C1 = "1"

    Else
    Range("BD6").Select
    Selection.ClearContents

    CellaDoveEro.Parent = Activate
    CellaDoveEro.Select

    End If

    End Sub

    Purtroppo l’istruzione, così come l’ho scritta, non funziona!
    Potete aiutarmi?? Grazie!!



  • di Vecchio Frac data: 18/08/2015 17:09:35

    A me sembra tutto un inutile guazzabuglio.
    Quando premi un pulsante, di solito Excel non dimentica la cella attiva che, pertanto, non si sposta.
    Se lo scopo di tutto l'ambaradan è inserire un numero in una cella oppure cancellare il contenuto di una cella, non è necessario spostare con Select la cella attiva.
     
    Sub PVC_1_Click()
        If Range("BD6") = "" And Range("C6") > 0 And Range("Q28") = Worksheets("Riferimenti").Range("L127") Then 
            Range("BD6") = 1
        Else 
            Range("BD6").ClearContents 
        End If
    End Sub





  • Ritorna alla cella precedente
    di Kipudda (utente non iscritto) data: 18/08/2015 19:29:57

    Grazie per l'aiuto!!
    Il punto è che ho un'altra istruzione che sfrutta la proprietà select per determinare certi valori su un'altra cella (tramite il metodo intersect).....
    Quindi la proprietà select mi serve......



  • di scossa data: 18/08/2015 20:05:19

    cit.: "Il punto è che ho un'altra istruzione che sfrutta la proprietà select ....
    Quindi la proprietà select mi serve
    "

    Solo una precisazione (senza entrare nel merito del codice): Select è un metodo non una proprietà.


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.(George Bernard Shaw)



  • di Vecchio Frac data: 18/08/2015 20:38:19

    Se dite le cose a metà, o nascondete particolari, non aspettatevi soluzioni pronte all'uso ma solo suggerimenti e spunti.
    Comunque il discorso non cambia. Non hai quasi mai bisogno di pre-selezionare una cella per conoscerne il valore. Nell'ambito della precisazione fatta, Select non serve affatto "per determinare certi valori su un'altra cella"; Intersect lavora con due parametri di tipo Range che non devono essere dapprima selezionati.
    E durante queste riflessioni ti invito anche a non sorvolare nemmeno sulla necessità di usare Option Explicit e di dichiarare correttamente le variabili che usi.
    Comunque se vuoi scrivere codice poco efficiente, prova almeno la correzione che ti indico.
     
    Option Explicit
    
    Sub PVC_1_Click()
    Dim CellaDoveEro As Range
    
        Set CellaDoveEro = ActiveCell
    
        If Range("BD6") = "" And Range("C6") > 0 And Range("Q28") = Worksheets("Riferimenti").Range("L127") Then
            Range("BD6").Select
            ActiveCell.FormulaR1C1 = "1"
        Else
            Range("BD6").Select
            Selection.ClearContents
            CellaDoveEro.Parent.Activate
            CellaDoveEro.Select
        End If
    
    End Sub





  • Ritorna alla cella precedente
    di Kipudda (utente non iscritto) data: 19/08/2015 16:54:46

    Problema risolto!! L'istruzione funziona a dovere!!