Visual Basic Wait Until

Anonimo
2020-08-05T14:50:41+00:00

Ciao a tutti,

Spero qualcuno riesca ad aiutarmi in questo problema che sto riscontrando in Visual Basic. Il problema riguarda il fatto che non conosco bene Visual Basic e dunque non so che strumento utilizzare in un certo contesto.

Sono all'interno di un For Loop, in cui devo copiare ed incollare dei valori da celle ad altre. Nel mezzo però, utilizzando un software dati esterno, tra una copia e l'altra Excel fa un refresh dei dati, cioè calcola i dati e li aggiorna per ogni singola iterazione del ciclo. Vorrei dunque sapere come far aspettare il ciclo for a copiare e incollare il dato solamente dopo averlo calcolato (in quanto se non aspetta mi incolla "#VALORE"). Qui di seguito vi copio il testo della programmazione:

For x = 1 To 30

        Cells(x, 1).Select

        Selection.Copy

        Range("F2").Select

        ActiveSheet.Paste

QUI IL CICLO DEVE ASPETTARE CHE EXCEL RICALCOLI I DATI

 Range("F3").Select

        Selection.Copy

        Cells(x, 2).Select

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

            :=False, Transpose:=True

    Next

Spero riusciate ad aiutarmi, nell'attesa vi ringrazio della disponibilità.

Davide

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

11 risposte

Ordina per: Più utili
  1. Anonimo
    2020-08-06T12:39:58+00:00

    Ti ringrazio per l'aiuto Donata e per il tempo che ci hai dedicato. 

    Sono riuscito a risolvere inserendo un comando apposito del software esterno che permette di aspettare il Retrieving dei dati prima che la macro prosegua nei comandi.

    Grazie ancora.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-08-05T18:24:52+00:00

    Nelle prove in locale che faccio sembra funzionare. Forse non potendo provare come fai tu probabilmente mi perdo qualcosa.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-08-05T17:56:33+00:00

    Ho provato anche così ma niente. Io ti ringrazio molto per il tempo che ci stai impiegando in quanto molto importante per me. Sto provando anche io in tutti i modi a farlo girare, anche con un Do Loop o qualcosa così, ma niente. Il problema persiste proprio nel fatto che Excel deve aggiornare i dati (tramite un software esterno) ogniqualvolta la cella F2 viene riscritta. Non so proprio come fare.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-08-05T17:37:36+00:00

    Prova in questo modo:

    x = Range("F3").Value
    
    If x = "#VALORE!" Then
    
    Else
    
    Range("F3").Select
            Selection.Copy
            Cells(x, 2).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=True
    
    Next
    
    End If
    

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2020-08-05T17:11:11+00:00

    Può sembrare una giusta soluzione ma non riesco a risolvere comunque. Come errore da run-time 13 sulla parte di IsNumeric.

    Potrebbe essere un problema che all'interno della cella F3 è inserita una formula? Si tratta di una variazione percentuale tra i due valori in grassetto (=(K11-I11)/I11) la quale si aggiorna all'aggiornarsi dei dati sopra.

    La risposta è stata utile?

    0 commenti Nessun commento