Vai al contenuto
PLC Forum


Visual Basic - dove Sbaglio?


MICHELESAMM

Messaggi consigliati

Ciao a tutti....

Ho sviluppato un piccolo programmino che prende i dati da un plc s5 siemens , e li trasferisce su un foglio

di 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 fatto

negli 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: da Gabriele Corrieri
Link al commento
Condividi su altri siti

  • 3 weeks later...

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 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)

non va meglio

'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)

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

non va, meglio

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

Link al commento
Condividi su altri siti

Accidendi mi sono scappati alcuni tasti....

dicevo meglio

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

E' 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 fortuna

Roberto

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...