Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB in excel] un aiutino con le macro

    ciao a tutti!
    volevo sottopormi il mio problema:
    ho un foglio excel XLS con attivazione macro (.xlsm) che lascio girare in background su windows.
    questo foglio contiene dati dinamici che si aggiornano ogni secondo/minuto/ora...dipende da loro, non hanno dei tempi precisi.

    a me serve che XLS mi dia una messaggio POPUP sullo schermo al verificarsi di un dato evento.

    ho scritto questo codice nel VBA di XLS:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Cells(1, 1) > 1 Then MsgBox ("messaggio")
    End Sub


    funziona perfettamente se si aggiunge qualcosa su excell e si preme invio poiche effettua il controllo richiesco (ad esempio se vado sulla cella c9 e digito "a" e premo invio il controllo viene fatto sulla cella richiesta e mi appare il popup).
    a me servirebbe il comando che gli fa fare automaticamente il controllo ogni X secondi in modo che posso tenere il programma in background.

    vi ringrazio e spero di essere riuscito a spiegare correttamente il problema.
    ciao

    Andrea

  2. #2

    informazioni timer

    ciao quello che tu chiedi potrebbe essere risolto attraverso l'inserimento di un timer

    ho trovato questo articolo:

    http://en.kioskea.net/faq/1115-vba-a...e-second-timer

    ciao L.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Aggiungi un modulo al tuo progetto e poi inserisci il seguente codice:

    codice:
    Public TimeRun As Double
    
    Public Sub StartMyTimer()
        TimeRun = Now + TimeSerial(0, 0, 5)
        Application.OnTime EarliestTime:=TimeRun, Procedure:="DoSomething", _
        Schedule:=True
    End Sub
    
    Public Sub DoSomething()
       '-----------------------
       'Tuo codice da eseguire
       MsgBox ("messaggio")
       '-----------------------
        StartMyTimer
    End Sub
    In questo caso utilizzo un timer da 5 secondi

    Per fermare il Timer:

    codice:
    Sub StopMyTimer()
        Application.OnTime EarliestTime:=TimeRun ,Procedure:="DoSomething", _
            Schedule:=False
    End Sub
    Sbagliare è umano, perseverare è diabolico.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.