problema copia incolla



  • problema copia incolla
    di ludagi data: 01/04/2015 11:03:06

    problema

    se uso copia e prima di fare incolla premo il tasto F9 (aggiorna) il copia si azzera...

    siccome ho una macro che aggiorna ogni 5 secondi il foglio trovo molto difficile fare copia e incolla .

    esiste una soluzione per mantenere il copia anche dopo un aggiornamento del foglio in modo da portare a compimento l'incolla ?

    grazie




  • di Luca.Donati data: 01/04/2015 13:17:41

    Faccio un ragionamento tutto teorico:
    per annullare un copia-incolla col codice, scrivo: Application.CutCopyMode = False
    Allora, forse, si può pensare di poter controllare lo stato di Application.CutCopyMode? Tipo, per esempio:

    If Application.CutCopyMode is True then...
    A quel punto, potresti infilare questo controllo nella tua macro che aggiorna e sottoporre l'aggiornamento a questa condizione.
    Perché non ci fai vedere il codice?
    (E intanto, se ho detto una fesseria, ditelo pure.)



  • di Lucas87 data: 01/04/2015 14:47:15

    Ciao
    Con cutcopymode semplicemente viene tolta la cornice intermittente alla selezione che viene copiata/tagliata. È solo per un fattore estetico.
    La funzione di copia e taglia utilizza gli appunti di windows, che sono un'area di archiviazione temporanea. Se utilizzi copia/incolla in una qualsiasi contesto di windows, la parte copiata rimane fino a quando non si copia qualcos'altro. In Office invece gli appunti vengono cancellati anche in seguito ad alcuni eventi: stampa,salva, tasto esc, invio,...e molto probabilmente anche con il ricalcolo delle formule. Non puoi evitarlo...semplicemente excel perde i dati che doveva copiare.

    Potresti allegare il file?
    Magari si può sostituire il copia/incolla con qualcos'altro



  • di ludagi data: 01/04/2015 15:57:31

    faccio un normale copia e incolla sul foglio .... cio' che servirebbe e di disabilitare la cancellazione degli appunti in excel ...... non so se è possibile ....



  • di Marius44 data: 01/04/2015 18:47:06

    Se i dati da copiare/incollare sono sempre nella stessa posizione si potrebbe usare la macro sottoriportata da associare ad un pulsante ad hoc.

    Se invece la posizione da copiare/incollare è variabile la "a= Range("B3")" deve riferirsi all'intervallo interessato. Ti sembra possibile?

    PS. Nell'esempio ho supposto che il dato da copiare è nella cella B3 e deve essere incollato nella cella D3
     
     Sub copia/incolla()   
        a = Range("B3")
        Calculate
        ActiveSheet.Range("D3").FormulaR1C1 = a
    End sub



  • di ludagi data: 02/04/2015 08:37:20

    cio' che vorrei è che la memoria di excel interessata al copia si azzeri solo dopo il comando incolla ......... invece si azzera con l'aggiornamento del foglio che avviene tramite una macro ripetitiva per cui quando devo fare incolla si è azzerato la selezione fatta con il copia.

    il copia e incolla che faccio è casuale...........



  • di Lucas87 data: 02/04/2015 09:23:03

    cit "cio' che vorrei è che la memoria di excel interessata al copia si azzeri solo dopo il comando incolla"

    Chiama il mio amico Guglielmo Cancelli (Bill Gates) e chiedigli se può aiutarti.
    Non puoi far fare a excel qualcosa che va contro quello per cui è stato progettato.

    cit "il copia e incolla che faccio è casuale"
    Questa me la devi spiegare.

    Ribadito che NON PUOI fare copia/incolla con in mezzo un ricalcolo delle formule, l'unica soluzione è trovare un altro sistema.
    È impossibile farlo se non alleghi un file o il codice che usi (meglio il file).
    Un esempio alternativo è quello sotto che riporta i valori dell'intervallo senza usare copia/incolla
     
    Range("a7:d7")=Range("a1:d1").value



  • di Luca.Donati data: 02/04/2015 09:25:09

    Quello che ho capito io (correggimi se sbaglio) è che il tuo copia-incolla NON sta in una macro, ma lo fai manualmente come si fa di solito.
    In questo caso, forse sarebbe opportuno allungare i tempi di aggiornamento della macro e invece che ogni cinque secondi, settarla a trenta o anche sessanta. Dipende a che serve la tua macro... Perché non ci fai vedere il codice?



  • di ludagi data: 02/04/2015 10:20:18

    effettivamente spesso aumento l'intervallo di esecuzione della macro ....inoltre metto ricalcolo in manuale .......ma la macro è collegata ai dati di borsa tramite Fineco ed è molto importante che si aggiorni velocemente ....

    va beh ... mi sa che non vi è una soluzione ............ anche se secondo me la memoria di copia si dovrebbe azzerare solo dopo il comando incolla........ altrimenti che copia è



  • di Luca.Donati data: 02/04/2015 10:29:24

    ... e alla macro non potresti aggiungere una specie di interruttore on-off?
    Così la potresti spegnere un attimo quando devi fare copia-incolla, poi la riaccendi, come la luce.
    Supponiamo che tu abbia una cella libera che puoi usare a questo scopo (A1)...
    (Codice sotto scritto a mano libera senza controllare in Excel)
     
    Sub TuaMacroAggiorna()
    If Range("A1").Value = "Off" Then exit sub
    
    '(tutto il resto della tua macro senza cambiare niente)
    
    End Sub



  • di ludagi data: 02/04/2015 10:43:54

    novita'

    forse ho scoperto l'arcano.......

    nella macro vi erano diversi comandi "calculate" (in effetti inutili) eliminati queste righe ... sembra che il copia incolla funzioni regolarmente....

    ho fatto anche una controprova in questa sequenza

    1º fatto comando copia

    2º premuto tasto "F9"

    3º il comando incolla diventa grigio quindi non piu' eseguibile....

    continuero' la verifica........




  • di Lucas87 data: 02/04/2015 10:48:13

    Se avessi postato il codice qualcuno se ne sarebbe accorto prima.



  • di ludagi data: 02/04/2015 10:57:26



    quindi confermi che il problema era legato al comando "Calculate" ??????????



  • di Lucas87 data: 02/04/2015 11:02:53

    Sei di coccio....
    Come faccio a confermare senza il file e il codice?
    Posso solo dire che potrebbe essere quello il motivo



  • di ludagi data: 02/04/2015 11:26:18

    il problema era quello

    grazie a tutti