[Catégorie encore modifiée VB6 -> VBA] Bug récupération de valeurs :O

Signaler
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011
-
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011
-
Bonjour bonjour, j'ai un petit problème de récupération de données via une balance "sartorius". Mon code ne me permet pas de récupérer les valeurs comme je le voudrais :/. Pourtant pour la partie récupération il s'agit du même code qu'une autre balance (de même modèle je vous vois venir) possède et qui marche :(. J'ai peut être oublié quelque chose, si vous pouviez y jeter un coup d'oeil.. Merci :D


Private Sub MSComm1_OnComm()

    Dim tampon As String
    'Si la communication sur le port Comm n'est pas mis en route
    If Ufrm_Comm.MSComm1.PortOpen = False Then
        
        'Ouverture du UserForm permettant de lancer la communication sur le port Comm
        Ufrm_Comm.Show
    
    End If
    
    'Si la communication sur le port Comm est bien en route
    If Ufrm_Comm.MSComm1.PortOpen = True Then
    
        Ufrm_Comm.MSComm1.Output = Chr(27) & Chr(84) & Chr(13) & Chr(10)    'Envoie des caractères "ESC" + "T" + "CR" + "LF"
        
    End If
    
End Sub
    
    Select Case MSComm1.CommEvent
    
    
        Case comEvReceive       ' Si on reçoit des données
            tampon = MSComm1.Input
            Call traitement(tampon) ' Routine de traitement
    
        'Case comEvSend          ' Il y a des caractères à envoyer
        'Case comEvEOF           ' On a reçu le caractère EOF
        MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,7,1"
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0 'all buffer from port
MSComm1.NullDiscard = True
'Use in Sub MSComm_OnComm() all string conversion and port reading.
        
    End Select
End Sub




CODE CODE CODE


UserForm_Terminate() = Fermeture_Port
    'Script qui se lance à la fermeture du UserForm
    'Appel de la routine de fermeture du port de communication
  

End Sub


Le but est de récupérer des valeurs dans un classeur excel pour faciliter la vérifications de cartons expédiés


Merci d'avance

38 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

Ce code est incohérent.
Des End Sub alors qu'il n'y a pas de déclaration de Sub

De plus, je trouve bizarre que tu retouches au paramétrage de la comm alors que tu es en train de recevoir des données.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Enfait j'ai rien retouché, j'ai pris l'autre programme de pesée et j'ai supprimer deux trois lignes qui ne me servirait pas. Ce serait plus dans quel sens qu'il faut le tourner?

En gros il faudrait que je récupère les valeurs, que je transforme cette valeur en variable pour m'en servir tout au long du reste du code (qui lui marche dèja^^)


Merci de m'accorder un peu de temps :)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
j'ai pris l'autre programme de pesée et j'ai supprimer deux trois lignes qui ne me servirait pas

Tu as supprimé quoi ? Des entêtes de procédures mais en laissant traîner le End Sub ?

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Non pas de mémoire (ou vraiment sans faire attention), j'ai supprimé style une remise à zéro automatique de la balance (je fait ça dans mon programme par un bouton), des variables qui me servirait pas, etc
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Commence par demander une compilation : menu Débogage + Compiler
Parce que là, ton code est un gros gruyère
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ah ?
Et tu n'es pas capable de voir l'incohérence signalée par Jack ?
Elle saute pourtant aux yeux :
End Sub ' ======>> fin de la sub en cours et pas de nouvelle sub
    
    Select Case MSComm1.CommEvent
    
    
        Case comEvReceive       ' Si on reçoit des données
            tampon = MSComm1.Input
            Call traitement(tampon) ' Routine de traitement
    
        'Case comEvSend          ' Il y a des caractères à envoyer
        'Case comEvEOF           ' On a reçu le caractère EOF
        MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,7,1"
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0 'all buffer from port
MSComm1.NullDiscard = True
'Use in Sub MSComm_OnComm() all string conversion and port reading.
        
    End Select
End Sub ====>> fin de quelle non nouvelle sub ?



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Ah oui merde, je vous ai collé la version que j'était en train de modifié et pas celle que je voulais poster. (Vous pouvez me pendre) > Désolé de vous avoir fait perdre votre temps

La vrai version est la suivante ^^

Private Sub MSComm1_OnComm()

    Dim tampon As String
    
    Select Case MSComm1.CommEvent
    
    
        Case comEvReceive       ' Si on reçoit des données
            tampon = MSComm1.Input
            Call traitement(tampon) ' Routine de traitement
    
        'Case comEvSend          ' Il y a des caractères à envoyer
        'Case comEvEOF           ' On a reçu le caractère EOF
        MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,7,1"
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0 'all buffer from port
MSComm1.NullDiscard = True
'Use in Sub MSComm_OnComm() all string conversion and port reading.
        
    End Select
End Sub


Du coup je voudrais récupérer la variable "tampon" et m'en servir après mais rien n'apparaît :(.


Et encore désolé hein!
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut

Alors à la potence

mais peut etre il faudrait initialiser ton
mscomm
   MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,7,1"
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0 'all buffer from port
MSComm1.NullDiscard = True


place peut etre avant le select case
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Je c pas si tu as fini mais le résumé de tout ça c.

Private Sub MSComm1_OnComm()
  MSComm1.CommPort = 1
  MSComm1.Settings = "9600,N,7,1"
  MSComm1.InputMode = comInputModeText
  MSComm1.InputLen = 0 'all buffer from port
  MSComm1.NullDiscard = True
  select Case MSComm1.CommEvent   
    Case comEvReceive       ' Si on reçoit des données
            tampon = MSComm1.Input
     Call traitement(tampon) ' Routine de traitement
    'Case comEvSend          ' Il y a des caractères à envoyer
     'Case comEvEOF           ' On a reçu le caractère EOF
  End Select
End Sub


A tester bien sur
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Ce n'est pas ça, je reçoit toujours une valeur égalé à zéro :(. J'ai surement oublié de mettre quelque chose(mais quoi?^^)
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
A ta place je séparer les deux éléments
Private Sub MSComm1_OnComm()
  MSComm1.CommPort = 1
  MSComm1.Settings = "9600,N,7,1"
  MSComm1.InputMode = comInputModeText
  MSComm1.InputLen = 0 'all buffer from port
  MSComm1.NullDiscard = True
  select Case MSComm1.CommEvent   
    Case comEvReceive       ' Si on reçoit des données
            tampon = MSComm1.Input
     Call traitement(tampon) ' Routine de traitement
    'Case comEvSend          ' Il y a des caractères à envoyer
     'Case comEvEOF           ' On a reçu le caractère EOF
  End Select
End Sub


Ne devrais pas être ensemble

Private Sub MSComm1_OnComm()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,7,1"
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0 'all buffer from port
MSComm1.NullDiscard = True
end sub
private sub MSComm1_EvRenteceive 'regarde pour avoir la syntaxe correcte
tampon = MSComm1.Input
Call traitement(tampon) ' Routine de traitement
End Sub
/code

Il ne faut pas faire un simple copié collé il faut adapter mais c comme cela que je ferais.
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Toujours rien, pourtant avec l'ancien programme j'arrive à recevoir quelque chose par le biais d'un appui bouton, la ça devrait être automatique :8

C'est peut etre ma variable tampon qui est au mauvais endroit.
En gros je la définie ici et plus loin j'ai tampon = toto et je fait le reste avec toto.
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Fais un break pointe et va en pas à pas. Après dis non le moment ou le code déconne
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Y' a aucun moment ou ca foire enfait, c'est bien ça le problème ^^ au pire je colle tout le code, si quelqu'un se sent de le décrypter.. (La programmation pour débutant tue toujours ainsi?^^)


Dim poidsattendu As Double 'definition des variables
Dim poidsrecu As Double 'definition des variables
Dim Nb_line As Integer 'Compteur de lignes
Dim Doloop As Boolean 'test de fin de boucle
Dim OF As String 'Nom de l'of courant
Dim Ordredefabrication As String 'définiton variables
Dim typecarton As String
Dim typedecarton As String


Private Sub Form_Load()
Dim tampon As String
Private Sub MSComm1_OnComm() 
MSComm1.CommPort = 1 
MSComm1.Settings = "9600,N,7,1" 
MSComm1.InputMode = comInputModeText 
MSComm1.InputLen = 0 'all buffer from port 
MSComm1.NullDiscard = True 
end sub 
private sub MSComm1_EvRenteceive 'regarde pour avoir la syntaxe correcte 
tampon = MSComm1.Input 
Call traitement(tampon) ' Routine de traitement 
End Sub 
    
End Sub
Private Sub Traitement(tampon As String)
    tampon = poidsrecu
    Label5.Caption (tampon)
    poidsrecu = tampon
    Label5.Caption = poidsrecu
    Nb_line = Nb_line + 1

    Range("A1").Offset(Nb_line, 0).Value = poidsattendu 'ecrire ds le excel
    Range("B1").Offset(Nb_line, 0).Value = poidsrecu ' pareil
    Range("C1").Offset(Nb_line, 0).Value = typedecarton ' pareil
If (17.12 > poidsrecu) And (poidsrecu > 17.085) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (14.26 > poidsrecu) And (poidsrecu > 14.225) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (4.61 > poidsrecu) And (poidsrecu > 4.575) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (16.66 > poidsrecu) And (poidsrecu > 16.6558) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (3.47 > poidsrecu) And (poidsrecu > 3.4458) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (14.03 > poidsrecu) And (poidsrecu > 13.995) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (3.83 > poidsrecu) And (poidsrecu > 3.795) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (13.71 > poidsrecu) And (poidsrecu > 13.675) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (14.41 > poidsrecu) And (poidsrecu > 14.375) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (4.51 > poidsrecu) And (poidsrecu > 4.475) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (8.21 > poidsrecu) And (poidsrecu > 8.18) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (2.79 > poidsrecu) And (poidsrecu > 2.7658) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (16.05 > poidsrecu) And (poidsrecu > 16.015) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (9.81 > poidsrecu) And (poidsrecu > 9.9775) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    End If
If (20.21 > poidsrecu) And (poidsrecu > 20.175) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (17.51 > poidsrecu) And (poidsrecu > 17.475) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (12.1 > poidsrecu) And (poidsrecu > 11.9858) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (12.81 > poidsrecu) And (poidsrecu > 12.775) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If (5.856 > poidsrecu) And (poidsrecu > 5.8358) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
End If
If ColorBox.BackColor <> vbGreen Then
ColorBox.BackColor = vbRed
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbRed
    Label5.BackColor = vbRed
    End If


End Sub


Private Sub ButtonBegin_Click()
Dim test2 As Integer
Range("A2:A5000").Value = "" 'rend blanche les case selectionnés
Range("B2:B5000").Value2 = "" ' pareil
Range("C2:C5000").Value = "" 'pareil
ColorBox.BackColor = &H8000000F
Nb_line = 0
Label5.Caption = "Vide"
OF = "TestOF"
Range("A1:A5000").Offset(Nb_line, 0).Interior.Color = vbWhite
Range("B1:B5000").Offset(Nb_line, 0).Interior.Color = vbWhite
Label5.BackColor = &H8000000F
ButtonBegin.Enabled = False
Ordredefabrication = InputBox("Indiquez le numéro d'OF :")
Range("J2").Value = Ordredefabrication
Range("C2").Value = typedecarton

If ButtonBegin.Enabled = False Then
test2 = MsgBox("Vous allez commencer à enregistrer des valeurs", vbOKOnly, "Début_enregistrement")
End If



End Sub

Private Sub ButtonChangeOf_Click()

End Sub

Private Sub ButtonTest_Click()
Dim test As Integer
Dim typedecartons As String
poidsrecu = tampon
poidsrecu = tampon 'test
Label5.Caption = poidsrecu & " KG"
Nb_line = Nb_line + 1
If ButtonBegin.Enabled = True Then
test = MsgBox("Vous n'enregistrez aucune valeurs, appuyez sur Début", vbOKOnly, "Attention")
End If


    Range("A1").Offset(Nb_line, 0).Value = poidsattendu 'ecrire ds le excel
    Range("B1").Offset(Nb_line, 0).Value = Val(tampon) ' pareil
    Range("C1").Offset(Nb_line, 0).Value = typedecarton
If (17.12 > poidsrecu) And (poidsrecu > 17.085) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 17.11
    Label6.Caption = "Carton de 10, 600 Briquets"
    typedecarton = "Carton de 10, 600 Briquets"
    
End If
If (14.26 > poidsrecu) And (poidsrecu > 14.225) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 14.25
    Label6.Caption = "Boite de 10, 500 Briquets"
    typedecarton = "Boite de 10, 500 Briquets"
    
  
End If
If (4.61 > poidsrecu) And (poidsrecu > 4.575) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 4.6
    Label6.Caption = "Boite de 10, 160 Briquets"
    typedecarton = "Boitede 10, 160 Briquets"
End If
If (16.68 > poidsrecu) And (poidsrecu > 16.6558) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 12
    Label6.Caption = "Boite de 10, 1000 Briquets Djeepy"
    typedecarton = "Boite de 10, 1000 Briquets Djeepy"
End If
If (3.47 > poidsrecu) And (poidsrecu > 3.4458) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 3.46
    Label6.Caption = "Boite de 10, 200 Briquets Djeepy"
    typedecarton = "Boite de 10, 200 Briquets Djeepy"
End If
If (14.03 > poidsrecu) And (poidsrecu > 13.995) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 14.02
    Label6.Caption = "Boite de 8, 480 Briquets"
    typedecarton = "Boite de 8, 480 Briquets"
End If
If (3.83 > poidsrecu) And (poidsrecu > 3.795) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 3.84
    Label6.Caption = "Boite de 8, 128 Briquets"
    typedecarton = " Boite de 8, 128 Briquets"
End If
If (13.71 > poidsrecu) And (poidsrecu > 13.675) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 13.7
    Label6.Caption = "Barquette de 20, 500 Briquets"
    typedecarton = "Barquette de 20, 500 Briquets"
End If
If (14.41 > poidsrecu) And (poidsrecu > 14.375) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 14.4
    Label6.Caption = "Barquette de 20, 500 Briquets"
    typedecarton = "Barquette de 20, 500 Briquets"
End If
If (4.51 > poidsrecu) And (poidsrecu > 4.475) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 4.5
    Label6.Caption = "Barquette de 20, 160 Briquets"
    typedecarton = "Barquette 20, 160 Briquets"
End If
If (8.21 > poidsrecu) And (poidsrecu > 8.18) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 8.2
    Label6.Caption = "Barquette de 20, 500 Briquets Djeepy"
    typedecarton = " barquette de 20, 500 briquets Djeepy"
End If
If (2.79 > poidsrecu) And (poidsrecu > 2.7658) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 2.78
    Label6.Caption = "Barquette de 20, 160 Briquets Djeepy"
    typedecarton = "Barquette de 20, 160 briquets Djeepy"
End If
If (16.05 > poidsrecu) And (poidsrecu > 16.015) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsatendu = 16.04
    Label6.Caption = "Barquette de 24, 576 Briquets"
    typdecarton = "Barquette de 24, 576 Briquets"
End If
If (9.81 > poidsrecu) And (poidsrecu > 9.9775) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 9.8
    Label6.Caption = "Barquette de 24, 600 Briquets Djeepy"
    typedecarton = " Barquette de 24, 600 Briquets Djeepy"
    End If
If (20.21 > poidsrecu) And (poidsrecu > 20.175) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 20.2
    Label6.Caption = "Présentoir de 24, 576 Briquets"
    typedecarton = "Présentoir de 24, 576 Briquets"
End If
If (17.51 > poidsrecu) And (poidsrecu > 17.475) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 17.5
    Label6.Caption = "Blister de 24, 576 Briquets"
    typedecarton = "Blister de 24, 576 Briquets"
End If
If (12.1 > poidsrecu) And (poidsrecu > 11.9858) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 12
    Label6.Caption = "Blister de 24, 576 briquets Djeepy"
    typedecaron = "Blister de 24, 576 Briquets Djeepy"
End If
If (12.81 > poidsrecu) And (poidsrecu > 12.775) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 12.8
    Label6.Caption = "Brique de 36, 432 Briquets"
    typedecarton = " Brique de 36, 432 Briquets"
End If
If (5.86 > poidsrecu) And (poidsrecu > 5.8358) Then
ColorBox.BackColor = vbGreen 'code vert
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbGreen
    Label5.BackColor = vbGreen
    poidsattendu = 5.85
    Label6.Caption = "Brique de 36, 180 Briquets"
    typedecarton = " Brique de 36, 180 Briquets"
    
End If
If ColorBox.BackColor <> vbGreen Then
ColorBox.BackColor = vbRed
    Range("B1").Offset(Nb_line, 0).Interior.Color = vbRed
    Label5.BackColor = vbRed
    End If
 

End Sub

Private Sub ButtonEnd_Click()
Dim test3 As Integer
Dim rep As Integer
rep = MsgBox("Voulez vous vraiment arréter cet OF?", vbYesNo, "Programme de pesée")
If rep = vbYes Then
ActiveWorkbook.SaveCopyAs Filename:="E:\test" + "OF n° " & Ordredefabrication + ".xls"
ButtonBegin.Enabled = True
End If
If rep = vbNo Then
End If
If rep = vbYes Then
test3 = MsgBox("Les valeurs on bien été enregistrées", vbOKOnly, "enregistrement")
End If

End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Comm1.PortOpen = False 'fermeture du port
End Sub
Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
1
Dim tampon As String doit être déclarer en globale pour pouvoir la réutiliser partout dans le programme ;)

Met la ac le reste des déclaration au début avant le sub sa devrais marcher, sinon essai avec : Public tampon As String ( Toujours au début du prog


Public Semos as String
'
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Il suffisait de dire que tu ne savais pas faire de breakpoint

1)Affiche le code fait un clique sur la marge de gauche.
2)Un ligne rouge va s'afficher (clique de nouveau sur la marge pour la supprimer)
3) L'ance le formulaire comme tu en as l'abbitudes
4) Dès que le code arrive sur la ligne rouge il va ce stopper automiqument
5) En survolant les vaiables avec la souris la valeur qu'elle contiènne saffiche en info bull
6) Pour poursuivre le code presse sur la touche "F8" ansi tu vois l'évolution en pas à pas du programme
7) Pour faire tourné le code normmalement presse sur la touche "F5"

Redis nous
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Mes variables sont égales à 0 pourtant l'afficheur numérique de la balance indique un poids différent de 0
Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
1
Un autre point, la config du port série, place la dans le Form_Load plutot que dans le OnComm
sa evitera surement (d'autres) erreurs

MSComm1.CommPort = 1 
MSComm1.Settings = "9600,N,7,1" 
MSComm1.InputMode = comInputModeText 
MSComm1.InputLen = 0 'all buffer from port 
MSComm1.NullDiscard = True 


Public Semos as String
'
Messages postés
75
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
30 juin 2011

Fait et toujours rien. Il n'existe pas quelque chose de "générique" permettant de recevoir des valeurs et de rentrer ça dans une variable? (Je précise pour ceux qui n'on pas lu mon autre post que je ne suis pas du tout axé informatique dans ma formation, je créé le programme pour "dépanné") ^^

Merci beaucoup de vous y intéresser en tout cas!
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Commence par commenter (expliquer ce qu'elles sont selon toi censées faire chacune de ces lignes) :

Private Sub Traitement(tampon As String)
    tampon = poidsrecu
    Label5.Caption (tampon)
    poidsrecu = tampon
    Label5.Caption =  poidsrecu

en te rappelant que cette procédure, appelée au Load , n'a aucune valeur initialiése pour la variable poidsrecu ... ===>> donc poidsrecu = 0 puis, comme tampon = poidsrecu ===>> tampon = 0 ... ah ? On s'amuse à quoi, là, exactement ?
Et que veut donc dire :
Label5.Caption (tampon)

dans ton esprit ? (c'est totalement incongru et est assez inquiétant et révélateur de la méconnaissance TOTALE de ce qu'est une propriété)
Ne confondrais-tu pas développement avec copier/coller de bouts de code "ramassés" ici et là et "complétés" par du n'importe quoi, dans l'ignorance absolue des bases même de l'outil de développement ?
Où comptes-tu donc aller, de cette manière ? Dis-nous !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est