Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro: nome programma+esito = risultato

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro: nome programma+esito = risultato

Postdi Tool » 27/05/09 12:54

ciao prima di spiegarvi quello che devo fare, vi posto la pagina excel sulla quale devo lavorare:

[img=http://img35.imageshack.us/img35/9284/testl.th.gif]

le colonne rimangono sempre le stesse, mentre le righe cambiano a seconda del file che importo, ho bisogno di controllare ad esempio l'esito di 3Dmark03.exe, quando il result è SUCCESS il programma deve fare qualcosa, a quello poi ci penso io, il mio unico problema è fare questo controllo, ovvero abbinare il process name al result sulla sua riga, inoltre non necessito di tutti i process name, ma solo di quelli che voglio io.

grazie1000.
ciao.
Avatar utente
Tool
Utente Junior
 
Post: 37
Iscritto il: 21/04/09 13:26

Sponsor
 

Re: macro: nome programma+esito = risultato

Postdi Flash30005 » 27/05/09 13:31

Non hai specificato se deve controllare lo start o l'exit del processo in questione comunque puoi sempre aggiungere tu stesso il controllo per questo evento.
La macro che potrebbe andare bene è questa
Codice: Seleziona tutto
Sub TrovaProc()
 UR = Worksheets("Foglio1").Range("F" & Rows.Count).End(xlUp).Row
 For i = 2 To UR
 Processo = Worksheets("Foglio1").Cells(i, 2).Value
 If Processo = "3DMark03.exe" And Worksheets("Foglio1").Cells(i, 6).Value = "SUCCESS" Then
 MsgBox Processo & " Ok" '<<<< comando con il quale fare quello che vuoi
 End If
 Next i
End Sub

Chiaramente dovrai mettere il nome del tuo foglio se diverso da foglio1

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro: nome programma+esito = risultato

Postdi Tool » 28/05/09 06:57

ti ringrazio ;)
ciao
Avatar utente
Tool
Utente Junior
 
Post: 37
Iscritto il: 21/04/09 13:26

Re: macro: nome programma+esito = risultato

Postdi Tool » 28/05/09 13:27

ciao, quello che mi hai mandato è perfetto, ora prova a guardare l'immagine linkata qui sotto:

http://img40.imageshack.us/img40/9404/test2l.gif

le caratteristiche sono le medesime di prima, ovvero la posizione delle righe cambia, ma on quella delle colonne, quello che mi interessa fare è che il programma faccia qualcosa (poi ci penso io) quando ad esempio "User Time" nella colonna G di "3DMark03.exe sia minore di 465 e qualcos'altro quando è uguale o maggiore.

grazie1000.
ciao.
Avatar utente
Tool
Utente Junior
 
Post: 37
Iscritto il: 21/04/09 13:26

Re: macro: nome programma+esito = risultato

Postdi Flash30005 » 28/05/09 14:33

A questo punto abbandono il controllo colonna F con "SUCCESSO" e prendo in esame la colonna D in quanto è il Process Exit che genera l'User Time
Alla luce di questo prova questa macro
Codice: Seleziona tutto
Sub TrovaProc()
 UR = Worksheets("Foglio1").Range("F" & Rows.Count).End(xlUp).Row
 Status = ""
 For i = 2 To UR
 Processo = Worksheets("Foglio1").Cells(i, 2).Value
 'MsgBox Worksheets("Foglio1").Cells(i, 4).Value
 If Processo = "3DMark03.exe" And Worksheets("Foglio1").Cells(i, 4).Value = "Process Exit" Then
    Status = Worksheets("Foglio1").Cells(i, 7).Value
    StatusU = Mid(Status, InStrRev(Status, "User Time:") + 11, InStrRev(Status, ".") - InStrRev(Status, "User Time:") - 11)
    If StatusU < 465 Then
        MsgBox " Minore"
    Else
        MsgBox " Maggiore o Uguale"
    End If
 End If
 Next i
End Sub

Dall'immagine non si vede se ci sono spazi tra le varie stringhe e forse si dovrà intervenire con piccole correzioni e/o aggiustamenti.
Nel test da me effettuato funziona tutto.
Ciao

P.s. Come potrai notare ho condizionato il risultato al valore 465 (valore intero come da te richiesto) quindi sono stati esclusi i decimali (troncati e non arrotondati es. 464.9999 darà come risultato "minore" di 465)
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro: nome programma+esito = risultato

Postdi Tool » 28/05/09 14:56

grazie1000 :D
Avatar utente
Tool
Utente Junior
 
Post: 37
Iscritto il: 21/04/09 13:26

Re: macro: nome programma+esito = risultato

Postdi Tool » 11/06/09 15:11

Ciao,
ho un problema, anche se il valore di StatusU è minore del valore campione il msgbox mi dice sempre maggiore uguale.
Avatar utente
Tool
Utente Junior
 
Post: 37
Iscritto il: 21/04/09 13:26

Re: macro: nome programma+esito = risultato

Postdi Anthony47 » 11/06/09 16:12

In attesa di sentire Flash, a me sembra che sia sbagliata questa istruzione
StatusU = Mid(Status, InStrRev(Status, "User Time:") + 11, InStrRev(Status, ".") - InStrRev(Status, "User Time:") - 11) che forse dovrebbe invece essere
Codice: Seleziona tutto
StatusU = Mid(Status, InStrRev(Status, "User Time:") + 11, InStr(1, Status, ".") - InStrRev(Status, "User Time:") - 11)

Prova e fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro: nome programma+esito = risultato

Postdi Tool » 16/06/09 11:06

PERFETTO
GRAZIE1000
ciaociao
Avatar utente
Tool
Utente Junior
 
Post: 37
Iscritto il: 21/04/09 13:26


Torna a Applicazioni Office Windows


Topic correlati a "macro: nome programma+esito = risultato":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti