MICHELESAMM Inserito: 8 novembre 2004 Segnala Inserito: 8 novembre 2004 (modificato) Ciao a tutti....Ho sviluppato un piccolo programmino che prende i dati da un plc s5 siemens , e li trasferisce su un fogliodi excel in determinati orari, e questo funziona bene.Il mio problema è che non riesco a lanciare le macro, cioè utilizzo sempre l'istruzione "if then" come fattonegli altri casi , ma in questo non funziona.Se invece modifico l'orologio , e metto l'ora indicata per entrare nel blocco if-then e faccio una prova tutto funziona . Il tutto è stato fatto in un timer inpostato a 10000 ms.L'intenzione è utilizzare le macro per fare un archivio.Grazie della collaborazione . Private Sub Timer1_Timer() On Error Resume Next Dim Ricezione As DB_Read Dim DB As Byte Dim DW As Byte Dim Start As Integer DB = CInt(204) DW = CInt(0) Ricezione = FunDB_READ(MSComm1, DB, DW) Select Case Ricezione.Errore Case E_Porta_Occupata: Exit Sub Case E_Time_Out: MsgBox ("ERRORE: Superamento tempo AG."): Exit Sub Case E_NE_DB: MsgBox ("Errore: DB inesistente"): Exit Sub Case E_Non_Senso: MsgBox ("ERRORE: Dati senza senso."): Exit Sub Case E_NE_DW: MsgBox ("Errore: DW inesistente"): Exit Sub End Select For n = 0 To UBound(Ricezione.Valore) risultatolist.AddItem Ricezione.Valore(n) Next n 'Scarto linee revisione finale 1°turno oggi Text1.Text = risultatolist.List(1) Text2.Text = risultatolist.List(3) Text3.Text = risultatolist.List(5) Text4.Text = risultatolist.List(7) Text5.Text = risultatolist.List(9) 'Scarto linee revisione finale 2°turno oggi Text6.Text = risultatolist.List(11) Text7.Text = risultatolist.List(13) Text8.Text = risultatolist.List(15) Text9.Text = risultatolist.List(17) Text10.Text = risultatolist.List(19) 'Scarto linee revisione finale 3°turno oggi Text11.Text = risultatolist.List(21) Text12.Text = risultatolist.List(23) Text13.Text = risultatolist.List(25) Text14.Text = risultatolist.List(27) Text15.Text = risultatolist.List(29) 'Scarto linee revisione finale 1°turno ieri Text16.Text = risultatolist.List(31) Text17.Text = risultatolist.List(33) Text18.Text = risultatolist.List(35) Text19.Text = risultatolist.List(37) Text20.Text = risultatolist.List(39) 'Scarto linee revisione finale 2°turno ieri Text21.Text = risultatolist.List(41) Text22.Text = risultatolist.List(43) Text23.Text = risultatolist.List(45) Text24.Text = risultatolist.List(47) Text25.Text = risultatolist.List(49) 'Scarto linee revisione finale 3°turno ieri Text26.Text = risultatolist.List(51) Text27.Text = risultatolist.List(53) Text28.Text = risultatolist.List(55) Text29.Text = risultatolist.List(57) Text30.Text = risultatolist.List(59) 'Scarto linee revisione finale 1°turno L'altoieri Text31.Text = risultatolist.List(61) Text32.Text = risultatolist.List(63) Text33.Text = risultatolist.List(65) Text34.Text = risultatolist.List(67) Text35.Text = risultatolist.List(69) 'Scarto linee revisione finale 2°turno L'altoieri Text36.Text = risultatolist.List(71) Text37.Text = risultatolist.List(73) Text38.Text = risultatolist.List(75) Text39.Text = risultatolist.List(77) Text40.Text = risultatolist.List(79) 'Scarto linee revisione finale 3°turno L'altoieri Text41.Text = risultatolist.List(81) Text42.Text = risultatolist.List(83) Text43.Text = risultatolist.List(85) Text44.Text = risultatolist.List(87) Text45.Text = risultatolist.List(89) 'Eseguo la somma Scarto linee revisione finale 1°turno oggi Text46 = Val(Text1) + (Text2) + (Text3) + (Text4) + (Text5) Text50.Text = risultatolist.List(91) 'Scocche di by-pass Cabina fondo 1°turno oggi Text51.Text = risultatolist.List(93) 'Scocche di by-pass Cabina fondo 2°turno oggi Text52.Text = risultatolist.List(95) 'Scocche di by-pass Cabina fondo 3°turno oggi Text53.Text = risultatolist.List(97) 'Scocche di by-pass Cabina fondo 1°turno ieri Text54.Text = risultatolist.List(99) 'Scocche di by-pass Cabina fondo 2°turno ieri Text55.Text = risultatolist.List(101) 'Scocche di by-pass Cabina fondo 3°turno ieri Text56.Text = risultatolist.List(103) 'Scocche di by-pass Cabina fondo 1°turno L'altroieri Text57.Text = risultatolist.List(105) 'Scocche di by-pass Cabina fondo 2°turno L'altroieri Text58.Text = risultatolist.List(107) 'Scocche di by-pass Cabina fondo 3°turno L'altroieri Text59.Text = risultatolist.List(109) 'cambio colore linea 1 smalto smalto Text60.Text = risultatolist.List(111) 'cambio colore linea 2 smalto smalto Text61.Text = risultatolist.List(113) 'cambio colore linea 3 smalto smalto Text62.Text = risultatolist.List(115) 'scocche di scarto linea ritocchi Text63.Text = risultatolist.List(117) 'ko invio pulsantiera Text64.Text = risultatolist.List(119) 'eventi elevatore Dim today today = Now Text49 = today risultatolist.Clear On Error Resume Next Dim CARTELLAEXCELL As New Excel.Application Dim FOGLIOEXCELL As Excel.Worksheet Set CARTELLAEXCELL = Excel.Workbooks.Open("c:\windows\desktop\radar2\SCARTO_REV.XLS") Set FOGLIOEXCELL = Excel.Worksheets.Item(1) CARTELLAEXCELL.Activate FOGLIOEXCELL.Cells(8, 3) = Val(Text1) FOGLIOEXCELL.Cells(8, 4) = Val(Text2) FOGLIOEXCELL.Cells(8, 5) = Val(Text3) FOGLIOEXCELL.Cells(8, 6) = Val(Text4) FOGLIOEXCELL.Cells(8, 7) = Val(Text5) FOGLIOEXCELL.Cells(9, 3) = Val(Text6) FOGLIOEXCELL.Cells(9, 4) = Val(Text7) FOGLIOEXCELL.Cells(9, 5) = Val(Text8) FOGLIOEXCELL.Cells(9, 6) = Val(Text9) FOGLIOEXCELL.Cells(9, 7) = Val(Text10) FOGLIOEXCELL.Cells(10, 3) = Val(Text11) FOGLIOEXCELL.Cells(10, 4) = Val(Text12) FOGLIOEXCELL.Cells(10, 5) = Val(Text13) FOGLIOEXCELL.Cells(10, 6) = Val(Text14) FOGLIOEXCELL.Cells(10, 7) = Val(Text15) FOGLIOEXCELL.Cells(16, 3) = Val(Text16) FOGLIOEXCELL.Cells(16, 4) = Val(Text17) FOGLIOEXCELL.Cells(16, 5) = Val(Text18) FOGLIOEXCELL.Cells(16, 6) = Val(Text19) FOGLIOEXCELL.Cells(16, 7) = Val(Text20) FOGLIOEXCELL.Cells(17, 3) = Val(Text21) FOGLIOEXCELL.Cells(17, 4) = Val(Text22) FOGLIOEXCELL.Cells(17, 5) = Val(Text23) FOGLIOEXCELL.Cells(17, 6) = Val(Text24) FOGLIOEXCELL.Cells(17, 7) = Val(Text25) FOGLIOEXCELL.Cells(18, 3) = Val(Text26) FOGLIOEXCELL.Cells(18, 4) = Val(Text27) FOGLIOEXCELL.Cells(18, 5) = Val(Text28) FOGLIOEXCELL.Cells(18, 6) = Val(Text29) FOGLIOEXCELL.Cells(18, 7) = Val(Text30) FOGLIOEXCELL.Cells(24, 3) = Val(Text31) FOGLIOEXCELL.Cells(24, 4) = Val(Text32) FOGLIOEXCELL.Cells(24, 5) = Val(Text33) FOGLIOEXCELL.Cells(24, 6) = Val(Text34) FOGLIOEXCELL.Cells(24, 7) = Val(Text35) FOGLIOEXCELL.Cells(25, 3) = Val(Text36) FOGLIOEXCELL.Cells(25, 4) = Val(Text37) FOGLIOEXCELL.Cells(25, 5) = Val(Text38) FOGLIOEXCELL.Cells(25, 6) = Val(Text39) FOGLIOEXCELL.Cells(25, 7) = Val(Text40) FOGLIOEXCELL.Cells(26, 3) = Val(Text41) FOGLIOEXCELL.Cells(26, 4) = Val(Text42) FOGLIOEXCELL.Cells(26, 5) = Val(Text43) FOGLIOEXCELL.Cells(26, 6) = Val(Text44) FOGLIOEXCELL.Cells(26, 7) = Val(Text45) FOGLIOEXCELL.Cells(1, 1) = Text49 FOGLIOEXCELL.Cells(8, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(9, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(10, 1) = Format(Now, "dddd dd mmmm yyyy") 'FOGLIOEXCELL.Range("h7").AddComment "Il totale è solo per le quattro linee" 'FOGLIOEXCELL.Range("h15").AddComment "Il totale è solo per le quattro linee" 'FOGLIOEXCELL.Range("h23").AddComment "Il totale è solo per le quattro linee" Set FOGLIOEXCELL = Excel.Worksheets.Item(2) FOGLIOEXCELL.Cells(6, 3) = Val(Text50) FOGLIOEXCELL.Cells(7, 3) = Val(Text51) FOGLIOEXCELL.Cells(8, 3) = Val(Text52) FOGLIOEXCELL.Cells(12, 3) = Val(Text53) FOGLIOEXCELL.Cells(13, 3) = Val(Text54) FOGLIOEXCELL.Cells(14, 3) = Val(Text55) FOGLIOEXCELL.Cells(18, 3) = Val(Text56) FOGLIOEXCELL.Cells(19, 3) = Val(Text57) FOGLIOEXCELL.Cells(20, 3) = Val(Text58) FOGLIOEXCELL.Cells(1, 1) = Text49 FOGLIOEXCELL.Cells(6, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(7, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(8, 1) = Format(Now, "dddd dd mmmm yyyy") '''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Alle ore 06.00 memorizzo i dati del terzo turno oggi sulle celle indicate ora = Time Dim abilita1 As Variant Dim disabilita1 As Variant abilita1 = #6:00:00 AM# disabilita1 = #6:02:00 AM# If ora > abilita1 Then If ora < disabilita1 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(1, 10) = Val(Text11) FOGLIOEXCELL.Cells(1, 11) = Val(Text12) FOGLIOEXCELL.Cells(1, 12) = Val(Text13) FOGLIOEXCELL.Cells(1, 13) = Val(Text14) FOGLIOEXCELL.Cells(1, 14) = Val(Text15) Range("J4:M5").Select Selection.ClearContents End If End If 'Dalle ore 06 ,per due ore memorizzo i dati del terzo turno oggi sulle celle indicate Dim abilita11 As Variant Dim disabilita11 As Variant abilita11 = #6:02:00 AM# disabilita11 = #7:50:00 AM# If ora > abilita11 Then If ora < disabilita11 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(2, 10) = Val(Text11) FOGLIOEXCELL.Cells(2, 11) = Val(Text12) FOGLIOEXCELL.Cells(2, 12) = Val(Text13) FOGLIOEXCELL.Cells(2, 13) = Val(Text14) FOGLIOEXCELL.Cells(2, 14) = Val(Text15) End If End If 'Dalle ore 06 per due ore effettuo la sottrazione dei dati nelle 'celle indicate per avere come risultato i dati delle prime due ore 'Delle scocche di scarto effettuate dal primo turno della produzione del terzo turno Dim abilita111 As Variant Dim disabilita111 As Variant abilita111 = #6:04:00 AM# disabilita111 = #7:50:00 AM# If ora > abilita111 Then If ora < disabilita111 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(8, 3) = (FOGLIOEXCELL.Cells(2, 10)) - (FOGLIOEXCELL.Cells(1, 10)) FOGLIOEXCELL.Cells(8, 4) = (FOGLIOEXCELL.Cells(2, 11)) - (FOGLIOEXCELL.Cells(1, 11)) FOGLIOEXCELL.Cells(8, 5) = (FOGLIOEXCELL.Cells(2, 12)) - (FOGLIOEXCELL.Cells(1, 12)) FOGLIOEXCELL.Cells(8, 6) = (FOGLIOEXCELL.Cells(2, 13)) - (FOGLIOEXCELL.Cells(1, 13)) FOGLIOEXCELL.Cells(8, 7) = (FOGLIOEXCELL.Cells(2, 14)) - (FOGLIOEXCELL.Cells(1, 14)) FOGLIOEXCELL.Cells(8, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(9, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(10, 1) = Format(Now, "dddd dd mmmm yyyy") End If End If 'Alle ore 02.00 memorizzo i dati del primo turno oggi sulle celle indicate Dim abilita2 As Variant Dim disabilita2 As Variant abilita2 = #2:00:00 PM# disabilita2 = #2:02:10 PM# If ora > abilita2 Then If ora < disabilita2 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(4, 10) = Val(Text1) FOGLIOEXCELL.Cells(4, 11) = Val(Text2) FOGLIOEXCELL.Cells(4, 12) = Val(Text3) FOGLIOEXCELL.Cells(4, 13) = Val(Text4) FOGLIOEXCELL.Cells(4, 14) = Val(Text5) Range("J6:M7").Select Selection.ClearContents End If End If 'Dalle ore 02 ,per due ore memorizzo i dati del primo turno oggi sulle celle indicate Dim abilita22 As Variant Dim disabilita22 As Variant abilita22 = #2:02:00 PM# disabilita22 = #3:50:10 PM# If ora > abilita22 Then If ora < disabilita22 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(5, 10) = Val(Text1) FOGLIOEXCELL.Cells(5, 11) = Val(Text2) FOGLIOEXCELL.Cells(5, 12) = Val(Text3) FOGLIOEXCELL.Cells(5, 13) = Val(Text4) FOGLIOEXCELL.Cells(5, 14) = Val(Text5) End If End If 'Dalle ore 02 per due ore effettuo la sottrazione dei dati nelle 'celle indicate per avere come risultato i dati delle prime due ore 'Delle scocche di scarto effettuate dal secondo turno della produzione del primo turno Dim abilita222 As Variant Dim disabilita222 As Variant abilita222 = #2:04:00 PM# disabilita222 = #3:50:00 PM# If ora > abilita222 Then If ora < disabilita222 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(9, 3) = (FOGLIOEXCELL.Cells(5, 10)) - (FOGLIOEXCELL.Cells(4, 10)) FOGLIOEXCELL.Cells(9, 4) = (FOGLIOEXCELL.Cells(5, 11)) - (FOGLIOEXCELL.Cells(4, 11)) FOGLIOEXCELL.Cells(9, 5) = (FOGLIOEXCELL.Cells(5, 12)) - (FOGLIOEXCELL.Cells(4, 12)) FOGLIOEXCELL.Cells(9, 6) = (FOGLIOEXCELL.Cells(5, 13)) - (FOGLIOEXCELL.Cells(4, 13)) FOGLIOEXCELL.Cells(9, 7) = (FOGLIOEXCELL.Cells(5, 14)) - (FOGLIOEXCELL.Cells(4, 14)) FOGLIOEXCELL.Cells(8, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(9, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(10, 1) = Format(Now, "dddd dd mmmm yyyy") End If End If 'Alle ore 22.00 memorizzo i dati del secondo turno oggi sulle celle indicate Dim abilita3 As Variant Dim disabilita3 As Variant abilita3 = #10:00:00 PM# disabilita3 = #10:02:10 PM# If ora > abilita3 Then If ora < disabilita3 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(6, 10) = Val(Text6) FOGLIOEXCELL.Cells(6, 11) = Val(Text7) FOGLIOEXCELL.Cells(6, 12) = Val(Text8) FOGLIOEXCELL.Cells(6, 13) = Val(Text9) FOGLIOEXCELL.Cells(6, 14) = Val(Text10) Range("J1:M2").Select Selection.ClearContents End If End If 'Dalle ore 22.00 ,per due ore memorizzo i dati secondo turno oggi sulle celle indicate Dim abilita33 As Variant Dim disabilita33 As Variant abilita33 = #10:02:00 PM# disabilita33 = #11:50:10 PM# If ora > abilita33 Then If ora < disabilita33 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(7, 10) = Val(Text6) FOGLIOEXCELL.Cells(7, 11) = Val(Text7) FOGLIOEXCELL.Cells(7, 12) = Val(Text8) FOGLIOEXCELL.Cells(7, 13) = Val(Text9) FOGLIOEXCELL.Cells(7, 14) = Val(Text10) End If End If 'Dalle ore 22.00 per due ore effettuo la sottrazione dei dati nelle 'celle indicate per avere come risultato i dati delle prime due ore 'Delle scocche di scarto effettuate dal terzo turno della produzione del secondo turno Dim abilita333 As Variant Dim disabilita333 As Variant abilita333 = #10:04:00 PM# disabilita333 = #11:50:00 PM# If ora > abilita333 Then If ora < disabilita333 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(10, 3) = (FOGLIOEXCELL.Cells(7, 10)) - (FOGLIOEXCELL.Cells(6, 10)) FOGLIOEXCELL.Cells(10, 4) = (FOGLIOEXCELL.Cells(7, 11)) - (FOGLIOEXCELL.Cells(6, 11)) FOGLIOEXCELL.Cells(10, 5) = (FOGLIOEXCELL.Cells(7, 12)) - (FOGLIOEXCELL.Cells(6, 12)) FOGLIOEXCELL.Cells(10, 6) = (FOGLIOEXCELL.Cells(7, 13)) - (FOGLIOEXCELL.Cells(6, 13)) FOGLIOEXCELL.Cells(10, 7) = (FOGLIOEXCELL.Cells(7, 14)) - (FOGLIOEXCELL.Cells(6, 14)) FOGLIOEXCELL.Cells(8, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(9, 1) = Format(Now, "dddd dd mmmm yyyy") FOGLIOEXCELL.Cells(10, 1) = Format(Now, "dddd dd mmmm yyyy") End If End If Dim ora1 As Variant Dim macro As Variant Dim macro1 As Variant macro = #11:55:00 PM# macro1 = #11:56:00 PM# ora1 = Time If ora1 > macro Then If ora1 < macro1 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(1) Dim valorediritorno As Variant valorediritorno = CARTELLAEXCELL.Run("Archivio") valorediritorno = CARTELLAEXCELL.Run("Archivio_due_ore") valorediritorno = CARTELLAEXCELL.Run("Archivio_fondo") End If End If 'Trasferimento dati prime due ore da oggi a ieri Dim trasferisco1 As Variant Dim notrasferisco1 As Variant trasferisco1 = #11:53:00 PM# notrasferisco1 = #11:55:00 PM# If ora > trasferisco1 Then If ora < notrasferisco1 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(16, 3) = FOGLIOEXCELL.Cells(8, 3) FOGLIOEXCELL.Cells(16, 4) = FOGLIOEXCELL.Cells(8, 4) FOGLIOEXCELL.Cells(16, 5) = FOGLIOEXCELL.Cells(8, 5) FOGLIOEXCELL.Cells(16, 6) = FOGLIOEXCELL.Cells(8, 6) FOGLIOEXCELL.Cells(16, 7) = FOGLIOEXCELL.Cells(8, 7) FOGLIOEXCELL.Cells(17, 3) = FOGLIOEXCELL.Cells(9, 3) FOGLIOEXCELL.Cells(17, 4) = FOGLIOEXCELL.Cells(9, 4) FOGLIOEXCELL.Cells(17, 5) = FOGLIOEXCELL.Cells(9, 5) FOGLIOEXCELL.Cells(17, 6) = FOGLIOEXCELL.Cells(9, 6) FOGLIOEXCELL.Cells(17, 7) = FOGLIOEXCELL.Cells(9, 7) FOGLIOEXCELL.Cells(18, 3) = FOGLIOEXCELL.Cells(10, 3) FOGLIOEXCELL.Cells(18, 4) = FOGLIOEXCELL.Cells(10, 4) FOGLIOEXCELL.Cells(18, 5) = FOGLIOEXCELL.Cells(10, 5) FOGLIOEXCELL.Cells(18, 6) = FOGLIOEXCELL.Cells(10, 6) FOGLIOEXCELL.Cells(18, 7) = FOGLIOEXCELL.Cells(10, 7) End If End If 'Trasferimento dati prime due ore da ieri a l'altro ieri Dim trasferisco2 As Variant Dim notrasferisco2 As Variant trasferisco2 = #11:50:00 PM# notrasferisco2 = #11:52:00 PM# If ora > trasferisco2 Then If ora < notrasferisco2 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(24, 3) = FOGLIOEXCELL.Cells(16, 3) FOGLIOEXCELL.Cells(24, 4) = FOGLIOEXCELL.Cells(16, 4) FOGLIOEXCELL.Cells(24, 5) = FOGLIOEXCELL.Cells(16, 5) FOGLIOEXCELL.Cells(24, 6) = FOGLIOEXCELL.Cells(16, 6) FOGLIOEXCELL.Cells(24, 7) = FOGLIOEXCELL.Cells(16, 7) FOGLIOEXCELL.Cells(25, 3) = FOGLIOEXCELL.Cells(17, 3) FOGLIOEXCELL.Cells(25, 4) = FOGLIOEXCELL.Cells(17, 4) FOGLIOEXCELL.Cells(25, 5) = FOGLIOEXCELL.Cells(17, 5) FOGLIOEXCELL.Cells(25, 6) = FOGLIOEXCELL.Cells(17, 6) FOGLIOEXCELL.Cells(25, 7) = FOGLIOEXCELL.Cells(17, 7) FOGLIOEXCELL.Cells(26, 3) = FOGLIOEXCELL.Cells(18, 3) FOGLIOEXCELL.Cells(26, 4) = FOGLIOEXCELL.Cells(18, 4) FOGLIOEXCELL.Cells(26, 5) = FOGLIOEXCELL.Cells(18, 5) FOGLIOEXCELL.Cells(26, 6) = FOGLIOEXCELL.Cells(18, 6) FOGLIOEXCELL.Cells(26, 7) = FOGLIOEXCELL.Cells(18, 7) End If End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Abilito trasferimento: ' scarto ritocchi 1°turno oggi ' tutti gli eventi elevatore 1°turno oggi ' ko invio pulsantiera 1°turno oggi ora = Time Dim abilitaRitocchi1ko As Variant Dim disabilitaRitocchi1ko As Variant abilitaRitocchi1ko = #8:10:00 AM# disabilitaRitocchi1ko = #3:50:00 PM# If ora > abilitaRitocchi1ko Then If ora < disabilitaRitocchi1ko Then Set FOGLIOEXCELL = Excel.Worksheets.Item(1) FOGLIOEXCELL.Cells(8, 10) = Val(Text62) 'scocche di scarto linea ritocchi FOGLIOEXCELL.Cells(8, 11) = Val(Text64) 'eventi elevatore FOGLIOEXCELL.Cells(8, 8) = Val(Text63) 'ko invio pulsantiera End If End If ' Abilito trasferimento: ' scarto ritocchi 2°turno oggi ' tutti gli eventi elevatore 2°turno oggi ' ko invio pulsantiera 2°turno oggi Dim abilitaRitocchi2ko As Variant Dim disabilitaRitocchi2ko As Variant ora = Time abilitaRitocchi2ko = #4:10:00 PM# disabilitaRitocchi2ko = #11:50:00 PM# If ora > abilitaRitocchi2ko Then If ora < disabilitaRitocchi2ko Then Set FOGLIOEXCELL = Excel.Worksheets.Item(1) FOGLIOEXCELL.Cells(9, 10) = Val(Text62) FOGLIOEXCELL.Cells(9, 11) = Val(Text64) FOGLIOEXCELL.Cells(9, 8) = Val(Text63) End If End If ' Abilito trasferimento: ' scarto ritocchi 3°turno oggi ' tutti gli eventi elevatore 3°turno oggi ' ko invio pulsantiera 3°turno oggi Dim abilitaRitocchi3ko As Variant Dim disabilitaRitocchi3ko As Variant Dim abilitaRitocchi33ko As Variant Dim disabilitaRitocchi33ko As Variant ora = Time abilitaRitocchi3ko = #12:10:00 AM# disabilitaRitocchi3ko = #7:50:00 AM# If ora > abilitaRitocchi3ko Then If ora < disabilitaRitocchi3ko Then Set FOGLIOEXCELL = Excel.Worksheets.Item(1) FOGLIOEXCELL.Cells(10, 10) = Val(Text62) FOGLIOEXCELL.Cells(10, 11) = Val(Text64) FOGLIOEXCELL.Cells(10, 8) = Val(Text63) End If End If ' Abilito trasferimentoda oggi a ieri : ' scarto ritocchi 1°-2°-3°turno oggi ' tutti gli eventi elevatore 1°-2°-3°turno oggi ' ko invio pulsantiera 1°-2°-3°turno oggi Dim trasferiscooggi As Variant Dim notrasferiscooggi As Variant trasferiscooggi = #11:53:00 PM# notrasferiscooggi = #11:55:00 PM# If ora > trasferiscooggi Then If ora < notrasferiscooggi Then Set FOGLIOEXCELL = Excel.Worksheets.Item(1) FOGLIOEXCELL.Cells(16, 8) = FOGLIOEXCELL.Cells(8, 8) FOGLIOEXCELL.Cells(17, 8) = FOGLIOEXCELL.Cells(9, 8) FOGLIOEXCELL.Cells(18, 8) = FOGLIOEXCELL.Cells(10, 8) FOGLIOEXCELL.Cells(16, 10) = FOGLIOEXCELL.Cells(8, 10) FOGLIOEXCELL.Cells(17, 10) = FOGLIOEXCELL.Cells(9, 10) FOGLIOEXCELL.Cells(18, 10) = FOGLIOEXCELL.Cells(10, 10) FOGLIOEXCELL.Cells(16, 11) = FOGLIOEXCELL.Cells(8, 11) FOGLIOEXCELL.Cells(17, 11) = FOGLIOEXCELL.Cells(9, 11) FOGLIOEXCELL.Cells(18, 11) = FOGLIOEXCELL.Cells(10, 11) Range("h8:h10").Select Selection.ClearContents Range("j8:k10").Select Selection.ClearContents End If End If ' Abilito trasferimentoda ieri a l'altro ieri : ' scarto ritocchi 1°-2°-3°turno ieri ' tutti gli eventi elevatore 1°-2°-3°turno ieri ' ko invio pulsantiera 1°-2°-3°turno ieri Dim trasferiscoieri As Variant Dim notrasferiscoieri As Variant trasferiscoieri = #11:50:00 PM# notrasferiscoieri = #11:52:00 PM# If ora > trasferiscoieri Then If ora < notrasferiscoieri Then Set FOGLIOEXCELL = Excel.Worksheets.Item(1) FOGLIOEXCELL.Cells(24, 8) = FOGLIOEXCELL.Cells(16, 8) FOGLIOEXCELL.Cells(25, 8) = FOGLIOEXCELL.Cells(17, 8) FOGLIOEXCELL.Cells(26, 8) = FOGLIOEXCELL.Cells(18, 8) FOGLIOEXCELL.Cells(24, 10) = FOGLIOEXCELL.Cells(16, 10) FOGLIOEXCELL.Cells(25, 10) = FOGLIOEXCELL.Cells(17, 10) FOGLIOEXCELL.Cells(26, 10) = FOGLIOEXCELL.Cells(18, 10) FOGLIOEXCELL.Cells(24, 11) = FOGLIOEXCELL.Cells(16, 11) FOGLIOEXCELL.Cells(25, 11) = FOGLIOEXCELL.Cells(17, 11) FOGLIOEXCELL.Cells(26, 11) = FOGLIOEXCELL.Cells(18, 11) End If End If ActiveWorkbook.Save ActiveWorkbook.Close End Sub Modificato: 8 novembre 2004 da Gabriele Corrieri
zoom Inserita: 24 novembre 2004 Segnala Inserita: 24 novembre 2004 Accidenti! Hai uno stile di programmazione alquanto confuso! Mi sa che provieni da ambienti tipo GW-Basic e Quick-Basic.Mi sa che il problema sta nel fatto che tu utilizzi dei Variant invece che dei date e che quindi quando fai il confronto nelle variabili ci siano valori diversi da quelli che ti aspetti.Usa il debugger. Nella riga prima del confronto metti un bel punto di interruzione (premi F9), quindi fai girare il programma e quando si blocca esamina le variabili (vedi il menu Debug ma in genere il loro valore appare semplicemente selezionando la variabile mentre si e' in modo debug)Un paio di consigli.Usa sempre il tipo di variabile giusto e non il variant. Se commetti errori nei confronti e assegnazioni avrai un bel type mismatch (in italiano sara' un errore sui tipi) ma almeno non commetterai errori.Usa meglio le indentazioni'Scarto linee revisione finale 2°turno oggiText6.Text = risultatolist.List(11) Text7.Text = risultatolist.List(13) Text8.Text = risultatolist.List(15) Text9.Text = risultatolist.List(17) Text10.Text = risultatolist.List(19)non va meglio'Scarto linee revisione finale 2°turno oggiText6.Text = risultatolist.List(11)Text7.Text = risultatolist.List(13)Text8.Text = risultatolist.List(15)Text9.Text = risultatolist.List(17)Text10.Text = risultatolist.List(19)Dim abilita11 As Variant Dim disabilita11 As Variant abilita11 = #6:02:00 AM# disabilita11 = #7:50:00 AM# If ora > abilita11 Then If ora < disabilita11 ThenSet FOGLIOEXCELL = Excel.Worksheets.Item(3)FOGLIOEXCELL.Cells(2, 10) = Val(Text11)FOGLIOEXCELL.Cells(2, 11) = Val(Text12)FOGLIOEXCELL.Cells(2, 12) = Val(Text13)FOGLIOEXCELL.Cells(2, 13) = Val(Text14)FOGLIOEXCELL.Cells(2, 14) = Val(Text15)End If End If non va, meglioDim abilita11 As VariantDim disabilita11 As Variantabilita11 = #6:02:00 AM#disabilita11 = #7:50:00 AM#If ora > abilita11 ThenIf ora < disabilita11 ThenSet FOGLIOEXCELL = Excel.Worksheets.Item(3)FOGLIOEXCELL.Cells(2, 10) = Val(Text11)FOGLIOEXCELL.Cells(2, 11) = Val(Text12)FOGLIOEXCELL.Cells(2, 12) = Val(Text13)FOGLIOEXCELL.Cells(2, 13) = Val(Text14)FOGLIOEXCELL.Cells(2, 14) = Val(Text15)End If End If
zoom Inserita: 24 novembre 2004 Segnala Inserita: 24 novembre 2004 Accidendi mi sono scappati alcuni tasti....dicevo meglioDim abilita11 As VariantDim disabilita11 As Variantabilita11 = #6:02:00 AM#disabilita11 = #7:50:00 AM#If ora > abilita11 Then If ora < disabilita11 Then Set FOGLIOEXCELL = Excel.Worksheets.Item(3) FOGLIOEXCELL.Cells(2, 10) = Val(Text11) FOGLIOEXCELL.Cells(2, 11) = Val(Text12) FOGLIOEXCELL.Cells(2, 12) = Val(Text13) FOGLIOEXCELL.Cells(2, 13) = Val(Text14) FOGLIOEXCELL.Cells(2, 14) = Val(Text15) End IfEnd IfE' vero che ognuno ha il suo stile ma se vuoi rendere comprensibile il programma ad altri....Inoltre le dichiarazioni di variabili sparse per il programma non vanno tanto bene.Buona fortunaRoberto
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora