Ritorno su cella iniziale



  • Ritorno su cella iniziale
    di delfi data: 18/02/2014 10:59:51

    ciao, sono profano di VBA.
    Gradirei sapere se possibile disporre la macro in modo che, terminata l'esecuzione, sia visualizzata la posizione iniziale di avvio.
    Esempio :
    1) con un pulsante avvio la macro in B15 (n.b. ci sono più pulsanti sul foglio con lo stesso comando macro)
    2) si completa l'attività macro, compreso aprire un pdf o anteprime
    3) il cursore si posiziona in B15 da dove originariamente era avviata la macro, con visualizzazione adeguata.
    Si noti che potri avere lo stesso pulsante in cella C45 o L120 e in quanto unica la macro serve un comando che memorizzi il punto di partenza per tornarvi poi (scusate la spiegazione "primordiale")

    Grazie
    ciao



  • di Lucas87 data: 18/02/2014 11:15:16

    Ciao
    Inserisci

    Set pos = Selection

    come prima istruzione, in modo che la cella selezionata venga memorizzata.
    Alla fine del codice inserisci

    pos.Select





  • di delfi data: 18/02/2014 11:39:00

    La macro ritorna in effetti sulla posizione iniziale del "cursore".
    Questa però NON sempre è la posizione del pulsante (che evidentemente non viene percepito come cella al momento dell'inizio)

    Potrebbe bastare cmq.
    Ti ringrazio



  • di patel data: 18/02/2014 12:06:34

    la posizione del pulsante non viene percepito come cella, tu puoi avere un pulsante a cavallo di più celle, quindi devi selezionare una cella, cliccare sul pulsante ed alla fine ritroverai selezionata la cella






  • di Lucas87 data: 18/02/2014 12:09:17

    Forse ti può andare bene questo
     
    CommandButton1.Select
    



  • di scossa data: 18/02/2014 14:38:59

    cit. delfi: "Gradirei sapere se possibile disporre la macro in modo che, terminata l'esecuzione, sia visualizzata la posizione iniziale di avvio"

    Se si evita di usare *inutilmente* il metodo Select (nel 90% dei casi non serve) la cella che era attiva prima della macro resta quella attiva anche alla fine.

    Altrimenti puoi memorizzarla tra le prime istruzioni con
    Set CellaDoveEro = ActiveCell
    e alla fine riselezionarla con
    cella.Parent.Activate
    cella.Select



  • di delfi (utente non iscritto) data: 18/02/2014 16:12:35

    Vi ringrazio, ma ho risolto eliminando l'istruzione; infatti anche senza "scegliere" la cella del pulsante, quando la macro è completa rientra nel foglio con la medesima visualizzazione di partenza (indipendentemene da dove si trova il "cursore" o cella attiva.
    A volte troppa perfezione non serve ... specie per i principianti !!
    Grazie



  • di scossa data: 18/02/2014 16:36:53

    cit.: "Vi ringrazio, ma ho risolto eliminando l'istruzione"

    che è quello che intendevo con: "Se si evita di usare *inutilmente* il metodo Select (nel 90% dei casi non serve) la cella che era attiva prima della macro resta quella attiva anche alla fine."



  • di scossa data: 18/02/2014 20:22:19

    errata:
    Set CellaDoveEro = ActiveCell
    e alla fine riselezionarla con
    cella.Parent.Activate
    cella.Select

    corrige:
    Set CellaDoveEro = ActiveCell
    e alla fine riselezionarla con
    CellaDoveEro.Parent.Activate
    CellaDoveEro.Select