Risultati da 1 a 11 di 11

Discussione: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola



  1. #1
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Ciao a tutti,
    mi è stato già spiegato come avviare un software quando nella cella compare un determinato valore, ecco qui la discussione:
    http://www.forumexcel.it/forum/showthread.php?t=3727

    Quello che però adesso chiedo è: come modificare il codice affinchè excel controlli ogni 60 secondi cosa ci sia scritto su quella determinata cella (affinchè verifichi continuamente se compare quella determinata parola e quindi se far avviare o no il software ogni 60 secondi)?

    Grazie anticipatamente!!!!

  2. #2
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    qualcuno mi può aiutare?

  3. #3
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1106
    Versione Office
    2010
    Likes ricevuti
    143
    Likes dati
    1

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    hai detto che hai già un codice che avvia un software quando nella cella compare un determinato valore, perché vuoi che controlli ogni 60 secondi visto che già ora lo fa sempre ?

  4. #4
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Citazione Originariamente Scritto da patel Visualizza Messaggio
    hai detto che hai già un codice che avvia un software quando nella cella compare un determinato valore, perché vuoi che controlli ogni 60 secondi visto che già ora lo fa sempre ?
    Praticamente questa cella è collegata ad una web query e quindi ogni minuto la cella assume un valore diverso. Io voglio che la macro controlli ogni 60 secondi il valore della cella in modo da far avviare o meno il software.
    Riporto di seguito il codice che fa avviare il software quando nella cella compare la scritta APOLLO o il valore 13:


    Codice: 
    Option Explicit
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Programma As String
    
    
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    If Target.Value = "APOLLO" Then
    Programma = "D:\MouseController.exe -f D:\APOLLO.mcd -p -q" 'Da modificare col proprio percorso
    Shell Programma, vbNormalFocus
    End If
    End If
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    If Target.Value = "13" Then
    Programma = "D:\MouseController.exe -f D:\13.mcd -p -q" 'Da modificare col proprio percorso
    Shell Programma, vbNormalFocus
    End If
    End If
    End Sub
    Ultima modifica fatta da:cromagno; 10/07/16 alle 23:03 Motivo: Inserito codice tra i tag CODE...

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Citazione Originariamente Scritto da scienziatone Visualizza Messaggio
    Praticamente questa cella è collegata ad una web query e quindi ogni minuto la cella assume un valore diverso. Io voglio che la macro controlli ogni 60 secondi il valore della cella in modo da far avviare o meno il software.
    Riporto di seguito il codice che fa avviare il software quando nella cella compare la scritta APOLLO o il valore 13:
    Ciao a tutti,

    @scienziatone
    vale sempre quello che ha detto patel.

    Il codice è già legato all'evento "change", cioè parte quando la cella viene modificata.
    Aggiornando la query, se quella cella verrà modificata (credo di si, a quanto hai detto) il codice partirà.
    Quindi non c'è alcun bisogno di far partire il codice ogni 60 secondi.

    [EDIT]
    Se hai dimenticato di dare qualche altra spiegazione allora il discorso cambia.
    Allega comunque un file d'esempio per capire se c'è realmente qualche altro fattore da considerare.

    P.S.
    I codici che metti nei post li devi racchiudere tra i tag CODE.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. #6
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Ciao a tutti
    Non saprei cosa faccia MouseController?
    Comunque per quanto sappia il codice andrebbe scritto in questo modo. Questo interviene solo quando la cella A1 = "APOLLO" oppure "13"
    Ps le righe verdi servirebbero solo se il programma che richiami scrive qualcosa sul foglio

    Codice: 
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Programma As String
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Target.Value = "APOLLO" Then
            'Application.EnableEvents = False
            Programma = "D:\MouseController.exe -f D:\APOLLO.mcd -p -q" 'Da modificare col proprio percorso
            Shell Programma, vbNormalFocus
            'Application.EnableEvents = true
        ElseIf Target.Value = "13" Then
            'Application.EnableEvents = False
            Programma = "D:\MouseController.exe -f D:\13.mcd -p -q" 'Da modificare col proprio percorso
            Shell Programma, vbNormalFocus
            'Application.EnableEvents = true
        End If
    End If
    End Sub

  7. #7
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Mi correggo, meglio non usare il Wooksheets_change, prova i questo modo (inserire in un Modulo)

    Codice: 
    Private bln As Boolean
    Public Sub mStart()
        Application.OnTime Now + TimeValue("00:01:00"), "Programma"
        bln = True
    End Sub
    Public Sub mStop()
        bln = False
    End Sub
    Sub Programma()
    If bln = True Then
        Dim Programma As String
        If Sheets("Foglio1").Range("A1") = "APOLLO" Then
            Programma = "D:\MouseController.exe -f D:\APOLLO.mcd -p -q" 'Da modificare col proprio percorso
            Shell Programma, vbNormalFocus
        ElseIf Sheets("Foglio1").Range("A1") = "13" Then
            Programma = "D:\MouseController.exe -f D:\13.mcd -p -q" 'Da modificare col proprio percorso
            Shell Programma, vbNormalFocus
        End If
        Call mStart
    End If
    End Sub

  8. #8
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Mi correggo, meglio non usare il Wooksheets_change, prova i questo modo (inserire in un Modulo)

    Codice: 
    Private bln As Boolean
    Public Sub mStart()
        Application.OnTime Now + TimeValue("00:01:00"), "Programma"
        bln = True
    End Sub
    Public Sub mStop()
        bln = False
    End Sub
    Sub Programma()
    If bln = True Then
        Dim Programma As String
        If Sheets("Foglio1").Range("A1") = "APOLLO" Then
            Programma = "D:\MouseController.exe -f D:\APOLLO.mcd -p -q" 'Da modificare col proprio percorso
            Shell Programma, vbNormalFocus
        ElseIf Sheets("Foglio1").Range("A1") = "13" Then
            Programma = "D:\MouseController.exe -f D:\13.mcd -p -q" 'Da modificare col proprio percorso
            Shell Programma, vbNormalFocus
        End If
        Call mStart
    End If
    End Sub
    Ciao Raffaele_53, ti ringrazio molto!!! Senza usare il Worksheet_Change ed utilizzando il modulo da te postato, funziona tutto perfettamente!
    Adesso chiedo se è possibile fare in modo che ogni volta che lo script avvia il software, la macro si metta in pausa per 1 minuto per poi riprendere il suo normale funzionamento.

  9. #9
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    dai un'occhiata alla guida relativa alle funzioni

    • Wait
    • OnTime
    • Timer

    Application.Wait Now + TimeValue("00:60:00")
    saluti
    GG

  10. #10
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Metterei dopo >>>Shell Programma, vbNormalFocus
    Application.Wait Now + TimeValue("00:01:00")

  11. #11
    L'avatar di scienziatone
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    napoli
    Età
    28
    Messaggi
    21
    Versione Office
    2003
    Likes ricevuti
    0
    Likes dati
    0

    Re: Avviare software se in una cella che si aggiorna ogni 60 secondi, compare una determinata parola

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Metterei dopo >>>Shell Programma, vbNormalFocus
    Application.Wait Now + TimeValue("00:01:00")
    Grazie 1000!!! Gentilissimo

Discussioni Simili

  1. [Risolto] Calcolare ogni quanto compare un valore
    Di daidardi nel forum Domande su Excel in generale
    Risposte: 18
    Ultimo Messaggio: 11/03/17, 02:28
  2. [Risolto] Sommatoria di "parole" dove ogni parola corrisponde a un numero
    Di Wambra82 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 11/01/17, 18:24
  3. Come avviare un software tramite excel?
    Di scienziatone nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 11/06/16, 01:43
  4. Risposte: 2
    Ultimo Messaggio: 27/03/16, 08:55
  5. Concatenare ogni cella di una colonna con ogni cella di un'altra colonna
    Di Francesco2 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 08/12/15, 14:40

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •