PopAds.net - The Best Popunder Adnetwork

Lanciare processi in parallelo VBA

  • In parallelo di il piccolo Alex
    vorrei creare un'applicazione che esegua due istruzioni in parallelo... come posso fare?

    di Oceanoblue
    La Tua domanda è generica.
    Puoi essere più preciso?

    di il piccolo Alex
    la mia intenzione è di visualizzare una progressBar che avanza in una maschera nuova mentre il resto del programma esegue altre operazioni per ora mi sono arrangiato cioè ho calcolato il numero di operazioni da effettuare e poi ho fatto in modo che il programma esegua un'istruzione e vada un po' avanti con la progressBar, esegua un'istruzione e vada un po' avanti con la progressBar... e così via fino a finire sia le operazioni che la progressBar...
    il codice che ne salta fuori è un disastro e difficile da capire...
    aiuto!!

    di Oceanoblue
    In effetti è complicato.
    Se ho ben capito, ti consiglio di semplificare la funzione scindendola.
    Crea le funzioni singolarmente e indipendenti, poi alla fine delle funzioni poni il commando "Call nome-routine", così da creare la progressione tra gli eventi che ti servono.
    Lo sò è un po generico. Il mio è solo un consiglio.
    Prova e faci sapere.

    di Mauro
    Se non ho capito male, tu hai una gestione tipo questa:

    'Associato ad una Userform contenente una progressbar ed un pulsante.
    Private Sub CommandButton1_Click()

    Dim Conta, riga, colonna As Integer

    'Imposta il valore minimo
    ProgressBar1.Value = ProgressBar1.Min

    'Esegue il ciclo di incremento.
    riga = 1
    colonna = 0
    For Conta = 1 To 100
    ProgressBar1.Value = Conta
    colonna = colonna + 1
    resto = Conta Mod 10
    If resto = 0 Then
    riga = riga + 1
    colonna = 1
    End If
    Cells(riga, colonna).Value = Conta
    Next Conta

    ProgressBar1.Value = ProgressBar1.Min

    End Sub

    …ma questa gestione non ti soddisfa perchè tu vorresti lavorare con 2 processi separati e paralleli. Ovvero in multithreading. Sbaglio?

    di il piccolo Alex
    Grazie per il consiglio...appena letto il tuo
    messaggio l'ho messo in pratica e...
    qualcosa di simile a quello che volevo è finalmente giunto sullo schermo probabilmente è meglio se ci lavoro su ancora un po'...
    comunque grazie il tuo aiuto è stato molto utile

    per mauro di il piccolo Alex
    No non sbagli per niente...
    la mia intenzione sarebbe proprio quella perchè fino a qualche giorno fa veniva eseguita prima un'operazione e poi un'altra...
    se puoi darmi qualche dritta sul multithreading te ne sarei molto grato...

    di Mauro
    La programmazione multithreading è uno dei punti di forza del linguaggio Java e permette di gestire in un’applicazione più processi contemporaneamente. Purtroppo però non mi risulta che questo sia possibile anche nell’ambiente VBA.
    L’unica cosa è cercare di gestire il problema con l’approccio consigliato da Oceanoblue, tuttavia si tratta solo di gestire la proprietà value della progressbar.

    di il piccolo Alex
    Grazie per l'interessamento, e comunque grazie ai suggerimenti che mi avete fornito sono riuscito a migliorare un po' il codice... almeno ora è leggibile