> Tous les forumsAutres langages

 demande aide prog vb.netSujet résolu
Statut du sujet : RESOLU Imprimer
 malinots
  Posté le 23/05/2007 @ 11:50  
 Petit astucien

37 Messages

bonjour,

je demande votre aide pour savoir si mon programme est coherent car l'or de la conpilation il ny a pas de liaison entre le pc et le peripherique aidez moi

'déclaration de toutes les librairies dont nous avons besoin:

Imports system.IO

Imports System

Imports System.Security

Imports System.Security.Permissions

Imports Microsoft.VisualBasic

Public Class LinkExcel232

#Region "declarations"

'toutes les déclarations globales du programme

Dim WithEvents serialport As New IO.Ports.SerialPort

Dim excel As New Excel.Application

Dim workbook As Excel.Workbook

Dim worksheet As Excel.Worksheet

Dim a As Integer = 1

Dim j As Integer = 24

Dim rngg As String(,)

Dim données As Integer

Dim l As Integer = 1

Dim puissance As Integer

Dim i As Integer

#End Region

Private Sub Form1_Load( _

ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles MyBase.Load

'voici l'état initial du programme :

PictureBox1.Visible = False

'l'image 1 (connecté) n'est pas visible

PictureBox2.Visible = True

'l'image 2 (déconnecté) est visible

Btndéconnexion.Enabled = False

'le bouton déconnection n'est pas sélectionnable

For i As Integer = 0 To _

My.Computer.Ports.SerialPortNames.Count - 1

cbbportsCOM.Items.Add( _

My.Computer.Ports.SerialPortNames(i))

Next

Control.CheckForIllegalCrossThreadCalls = False

End Sub

Private Sub btnConnexion_Click( _

ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Btnconnexion.Click

'quand on clique sur le bouton Connexion, on déclenche les

'instructions suivantes:

connexion()

'appel du sous-programme connexion

excell()

'appel du sous-programme excel

End Sub

Private Sub btndéconnexion_Click( _

ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Btndéconnexion.Click

'quand on clique sur le bouton Déconnexion, on déclenche les

'instructions suivantes:

Dim dlgdeconnect As DialogResult = _

MessageBox.Show("Etes-vous sûr(e) de vouloir vous déconnecter ?", "Fermer ", _

MessageBoxButtons.YesNo, MessageBoxIcon.Question)

'affichage à l'écran d'une fenêtre de Dialogue avec une question et

'deux boutons 'oui' ou 'non' pour répondre

Select Case dlgdeconnect

Case Windows.Forms.DialogResult.Yes

'cas où la réponse est 'oui'

deconnexion()

'appel du sous-programme déconnexion

Case Windows.Forms.DialogResult.No

'cas où la réponse est 'non'

Exit Sub

End Select

End Sub

#Region " Quitter "

Private Sub Btnquitter_Click( _

ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Btnquitter.Click

'quand on clique sur le bouton Quitter, on déclenche les

'instructions suivantes:

quitter()

'appel du sous-programme Quitter

worksheet = Nothing

workbook = Nothing

excel = Nothing

End Sub

Private Sub quitter()

Dim result As DialogResult

result = MsgBox("Voulez-vous quitter l'application?", MsgBoxStyle.YesNo)

'affichage à l'écran d'une fenêtre de Dialogue avec une question et

'deux boutons 'oui' ou 'non' pour répondre

If result = Windows.Forms.DialogResult.Yes Then

'cas où la réponse est 'oui"

Me.Close()

'on ferme l'application

End If

End Sub

#End Region

#Region " Connexion "

Private Sub connexion()

'paramétrage de la liaison série avec les données suivantes:

Try

Timer.Start()

'on lance le timer

With serialport

.PortName = cbbportsCOM.Text

'nom du port : Port choisi dans la barre déroulante

.BaudRate = 9600

'vitesse de 9600 bauds

.Parity = IO.Ports.Parity.None

'aucune parité

.DataBits = 8

'8 bits de données

.StopBits = IO.Ports.StopBits.One

'1 bits de stop

.Handshake = IO.Ports.Handshake.RequestToSend

'on spécifie le mode de contrôle de dépassement du buffer de données.

'Ici c'est un contrôle matériel par l’intermédiaire de la ligne RTS

End With

serialport.Open()

'on ouvre le port

lblmessage.Text = "Port " & serialport.PortName & " Ouvert."

'on affiche à l'écran l'état du port : ici, le port est ouvert

Btnconnexion.Enabled = False

'le bouton Connexion n'est pas selectionnable

Btndéconnexion.Enabled = True

'le bouton Déconnection est selectionnable

TSMFichierConnecter.Enabled = False

'le bouton Connexion dans le menu n'est pas selectionnable

Catch ex As System.Exception

MessageBox.Show(ex.Message)

'affiche un message si une erreur s'est produite

End Try

End Sub

#End Region

#Region " Deconnexion "

Private Sub deconnexion()

Try

serialport.Close()

'on ferme le port

lblmessage.Text = "Port " & serialport.PortName & " Fermé."

'on affiche à l'écran l'état du port : ici, le port est fermé

Btnconnexion.Enabled = True

'le bouton Connexion est selectionnable

Btndéconnexion.Enabled = False

'le bouton Déconnexion n'est pas selectionnable

TSMFichierConnecter.Enabled = True

'le bouton Connexion dans le menu est selectionnable

Timer.Stop()

Timer.Enabled = False

'on arrete le timer

PictureBox1.Visible = False

'l'image 1 (connecté) n'est pas visible

PictureBox2.Visible = True

'l'image 2 (déconnecté) est visible

'worksheet = Nothing

'workbook = Nothing

'excel = Nothing

'on quitte excel mais il reste visible

Catch ex As System.Exception

MessageBox.Show(ex.Message)

'affiche un message si une erreur s'est produite

End Try

End Sub

#End Region

#Region " DataReceived "

Private Sub DataReceived( _

ByVal sender As Object, _

ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _

Handles serialport.DataReceived

'propriétés des données reçues

For i = 1 To 13

Application.DoEvents()

txtdonnéesreçues.Invoke(New _

myDelegate(AddressOf updateTextBox), _

New Object() {})

' 'appel à un délégué (équivalent à un sous-programme) mydelegate

'If serialport.ReceivedBytesThreshold = 1 Then

excelbis(i)

' 'on appel le sous-programme excelbis

ecrire(i)

' 'on appel le sous-programme ecrire

Tsldateheure.Text = Date.Now

'End If

' 'on affiche la date et l'heure actuelle dans la barre de statut en bar de l'écran

Next

Try

If serialport.IsOpen Then

Lblstatut.Text = "connecté"

'on écrit le statut du port (ici connecté) dans un label

PictureBox1.Visible = True

'l'image 1 (connecté) est visible

PictureBox2.Visible = False

'l'image 2 (déconnecté) n'est pas visible

End If

If serialport.isclose Then

Lblstatut.Text = "deconnecté"

'on écrit le statut du port (ici déconnecté) dans un label

PictureBox1.Visible = False

'l'image 1 (connecté) n'est pas visible

PictureBox2.Visible = True

'l'image 2 (déconnecté) est visible

End If

Catch ex As Exception

' MsgBox(ex.Message)

'affiche un message si une erreur s'est produite

End Try

End Sub

' Private Declare Function GetInputState Lib "user32" () As Long

Public Delegate Sub myDelegate()

Public Sub updateTextBox()

'le délégué permet de mettre à jour les données reçues

'les données sont placées dans la zone de texte txtDonnéesReçues

'Application.DoEvents()

' If GetInputState Then A(pplication.DoEvents())

With txtdonnéesreçues

.Font = New Font("Arial", 14.0!, FontStyle.Bold)

'met à jour la police de caractère

.Text = serialport.ReadByte - 240

.Focus()

.SelectionStart = .Text.Length

.ScrollToCaret()

End With

j -= 1

' If txtdonnéesreçues.Text = -34 Then

'If données = -34 Then

'j = 23

'End If

'End If

If j < 11 Then

a += 1

j = 23

End If

End Sub

#End Region

#Region " ecrire "

Private Sub ecrire(ByVal x)

Dim sw As New StreamWriter("l:\Etudes\Stages\EL HAMRAOUI Karim\MonFichierNew.txt", True)

'on initialise la propriété d'écriture et on définit le chemin d'accès au fichier où l'on va écrire

sw.Write(txtdonnéesreçues.Text)

'on écrit dans le fichier 'MonFichierNew.txt' les valeurs du richtextbox txtdonnéesreçues

sw.Write(" ;")

'on écrit ;

If x > 11 Then

GoTo fin

'sauter jusqu'à l'étiquette 'fin'

End If

If x > 4 Then

tampon(x)

'appel du sous-programme tampon

End If

fin:

If x = 13 Then

sw.Write(vbCrLf)

'on écrit dans le fichier 'MonFichierNew.txt' un saut retour à la ligne

End If

sw.Close()

'on ferme le fichier 'MonFichierNew.txt'

End Sub

Private Sub tampon(ByVal y)

Dim sx As New StreamWriter("l:\Etudes\Stages\EL HAMRAOUI Karim\Tampon.txt", True)

'on initialise la propriété d'écriture et on définit le chemin d'accès au fichier où l'on va écrire

sx.Write(txtdonnéesreçues.Text)

'on écrit dans le fichier 'Tampon.txt' les valeurs du richtextbox txtdonnéesreçues

If y = 11 Then

sx.Write(vbCrLf)

'on écrit dans le fichier 'Tampon.txt' un saut retour à la ligne

sx.Close()

'on ferme le fichier 'Tampon.txt'

End If

sx.Close()

'on ferme le fichier 'Tampon.txt'

End Sub

#End Region

#Region " Excel "

Private Sub excell()

excel.Visible = True

'la fenêtre excel est visible

workbook = excel.Workbooks.Add(1)

'on ouvre un classeur dans excel

worksheet = workbook.Worksheets(1)

'on ouvre une feuille dans le classeur excel

WriteToExcel(worksheet, 1, 1, "acquisition temps réel")

'on écrit "acquisition temps réel" à l'intersection de la ligne1 et la colonne 1

Dim rng As String(,)

ReDim rng(5, 5)

rng(0, 0) = "date et heure"

'on choisit l'intersection de la ligne 0 et de la colonne 0 pour écrire "date et heure"

rng(0, 3) = "puissance kW"

'on choisit l'intersection de la ligne 0 et de la colonne 3 pour écrire "puissance W"

rng(0, 4) = "tension V"

'on choisit l'intersection de la ligne 0 et de la colonne 4 pour écrire "tension V"

rng(0, 5) = "courant A"

'on choisi l'intersection de la ligne 0 et de la colonne 5 pour écrire "courant A"

WriteToExcel(worksheet, 3, 1, rng)

'on écrit dans la feuille les expressions vu au-dessus en initialisant le curseur à la ligne 3 et la colonne 1

End Sub

Private Sub excelbis(ByVal i)

'Dim excel As New Excel.Application

'Dim workbook As Excel.Workbook

'Dim worksheet As Excel.Worksheet

'excel.Visible = True

'workbook = excel.Workbooks.Add(1)

'worksheet = workbook.Worksheets(1)

'Dim rngg As String(,)

ReDim Preserve rngg(3000, 40)

'Dim a As Integer = 1

'Dim j As Integer = 1

'For j = 1 To 13

données = CInt(txtdonnéesreçues.Text)

'la variable données reçoit les valeurs contenus dans le richtexbox txtdonnéesreçues qui sont converties en entier

rngg(a, j) = données

'on écrit dans la case indéxée par la ligne a et la colonne j, la variable 'données'

worksheet.Rows(1).RowHeight = 30

'on modifie la hauteur de la ligne 1 dans la feuille excel

worksheet.Rows(3).RowHeight = 20

'on modifie la hauteur de la ligne 3 dans la feuille excel

If rngg(a, 11) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 12) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 13) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 14) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 15) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 16) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 17) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 18) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 19) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 20) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 21) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

If rngg(a, 22) = -34 Then

a += 1

j = 23

i = 2

l -= 1

End If

worksheet.Columns(1).ColumnWidth = 25

'on modifie la largeur de la colonne 1 dans la feuille excel

worksheet.Columns(2).ColumnWidth = 0

worksheet.Columns(3).ColumnWidth = 0

worksheet.Columns(9).ColumnWidth = 0

worksheet.Columns(10).ColumnWidth = 0

worksheet.Columns(11).ColumnWidth = 0

worksheet.Columns(12).ColumnWidth = 0

worksheet.Columns(13).ColumnWidth = 0

worksheet.Columns(14).ColumnWidth = 0

worksheet.Columns(15).ColumnWidth = 0

worksheet.Columns(16).ColumnWidth = 0

worksheet.Columns(17).ColumnWidth = 0

worksheet.Columns(18).ColumnWidth = 0

worksheet.Columns(19).ColumnWidth = 0

worksheet.Columns(20).ColumnWidth = 0

worksheet.Columns(21).ColumnWidth = 0

worksheet.Columns(22).ColumnWidth = 0

worksheet.Columns(23).ColumnWidth = 0

worksheet.Columns(24).ColumnWidth = 0

'on modifie la largeur des colonnes (2,3,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) dans la feuille excel.

'les colonnes (2,3,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) sont masquées

WriteToExcel(worksheet, 4, 1, rngg)

'on écrit dans la feuille les expression vu au-dessus en initialisant le curseur à la ligne 4 et la colonne 1

If i = 13 Then

If rngg(a, 22) = 14 Then

'si à l'intersection de la ligne en cours et de la colonne 22, nous avons la valeur 14,

' on effectue les lignes de code suivantes

rngg(a - l, 3) = (rngg(a, 13) & "," & rngg(a, 14) & rngg(a, 15) & rngg(a, 16) & rngg(a, 17))

'on fait la concaténation des valeurs à la lignes en cours et aux colonnes 13,14,15,16,17,

'et on écrit la valuer obtenu à l'intersection de la ligne en cours-la valeur de la variable l et

'la colonne 3

TextBox1.Text = CStr(rngg(a - l, 3)) & " " & "kW"

'on écrit la valeur obtenu à la ligne au-dessus dans textbox1

End If

If rngg(a, 22) = 13 Then

'si à l'intersection de la ligne en cours et de la colonne 22, nous avons la valeur 13,

' on effectue les lignes de code suivantes

If rngg(a, 19) = 3 Then

'si à l'intersection de la ligne en cours et de la colonne 19, nous avons la valeur 3,

' on effectue les lignes de code suivantes

rngg(a - l, 4) = (rngg(a, 13) & rngg(a, 14) & rngg(a, 15) & "," & rngg(a, 16) & rngg(a, 17))

'on fait la concaténation des valeurs à la lignes en cours et aux colonnes 13,14,15,16,17,

'on place la virgule apres le 3eme chiffre

'et on écrit la valuer obtenu à l'intersection de la ligne en cours - la valeur de la variable l et

'la colonne 4

TextBox3.Text = CStr(rngg(a - l, 4)) & " " & "V"

'on écrit la valeur obtenu à la ligne au-dessus dans textbox3

End If

If rngg(a, 19) = 1 Then

'si à l'intersection de la ligne en cours et de la colonne 19, nous avons la valeur 1,

' on effectue les lignes de code suivantes

rngg(a - l, 4) = (rngg(a, 13) & "," & rngg(a, 14) & rngg(a, 15) & rngg(a, 16) & rngg(a, 17))

'on fait la concaténation des valeurs à la lignes en cours et aux colonnes 13,14,15,16,17,

'on place la virgule apres le 1er chiffre

'et on écrit la valuer obtenu à l'intersection de la ligne en cours - la valeur de la variable l et

'la colonne 4

TextBox3.Text = CStr(rngg(a - l, 4)) & " " & "V"

'on écrit la valeur obtenu à la ligne au-dessus dans textbox3

End If

If rngg(a, 19) = 2 Then

'si à l'intersection de la ligne en cours et de la colonne 19, nous avons la valeur 2,

' on effectue les lignes de code suivantes

rngg(a - l, 4) = (rngg(a, 13) & rngg(a, 14) & "," & rngg(a, 15) & rngg(a, 16) & rngg(a, 17))

'on fait la concaténation des valeurs à la lignes en cours et aux colonnes 13,14,15,16,17,

'on place la virgule apres le 2eme chiffre

'et on écrit la valuer obtenu à l'intersection de la ligne en cours - la valeur de la variable l et

'la colonne 4

TextBox3.Text = CStr(rngg(a - l, 4)) & " " & "V"

'on écrit la valeur obtenu à la ligne au-dessus dans textbox3

End If

End If

If rngg(a, 22) = 12 Then

'si à l'intersection de la ligne en cours et de la colonne 22, nous avons la valeur 12,

' on effectue les lignes de code suivantes

rngg(a - l, 5) = (rngg(a, 13) & "," & rngg(a, 14) & rngg(a, 15) & rngg(a, 16) & rngg(a, 17))

'on fait la concaténation des valeurs à la lignes en cours et aux colonnes 13,14,15,16,17,

'et on écrit la valuer obtenu à l'intersection de la ligne en cours-la valeur de la variable l et

'la colonne 3

rngg(a - l, 0) = Date.Now

'on écrit la date et l'heure actuelle à l'intersection de la ligne en cours - la valeur de la variable l

'et la colonne 0

TextBox4.Text = CStr(rngg(a - l, 5)) & " " & "A"

'on écrit la valeur obtenu à la ligne au-dessus dans textbox4

a += 1

End If

l += 1

End If

End Sub

Sub WriteToExcel( _

ByVal sheet As Excel.Worksheet, _

ByVal rownum As Integer, _

ByVal colnum As Integer, _

ByVal text As String)

Dim r As Excel.Range

r = sheet.Cells(rownum, colnum)

r.Formula = text

End Sub

Sub WriteToExcel( _

ByVal sheet As Excel.Worksheet, _

ByVal rownum As Integer, _

ByVal colnum As Integer, _

ByVal text As String(,))

Dim r As Excel.Range

Dim firstcell As Excel.Range

Dim lastcell As Excel.Range

firstcell = sheet.Cells(rownum, colnum)

lastcell = sheet.Cells(rownum + text.GetUpperBound(0), colnum + text.GetUpperBound(1))

r = sheet.Range(firstcell, lastcell)

r.Formula = text

End Sub

#End Region

#Region " Fonction Chronomètre "

Dim mil As String

Dim sec As String = 0

Dim min As String = 0

Dim heu As String = 0

Dim zm As String

Dim zs As String

Dim zmi As String

Dim zh As String

'"initialisation des variables pour le chronomètre"

Private Sub Timer_Tick _

(ByVal sender As System.Object, ByVal e As System.EventArgs) _

Handles Timer.Tick

'millième de seconde

If mil > 99 Then

mil = 0

sec = sec + 1

End If

mil = mil + 1

If mil < 10 Then

zm = "0"

Else

zm = ""

End If

'secondes

If sec > 59 Then

sec = 0

min = min + 1

End If

If sec < 10 Then

zs = "0"

Else

zs = ""

End If

'minutes

If min > 59 Then

min = 0

heu = heu + 1

End If

If min < 10 Then

zmi = "0"

Else

zmi = ""

End If

'heures

If heu = 24 Then

Timer.Stop()

End If

If heu < 10 Then

zh = "0"

Else

zh = ""

End If

'affichage final

TslChrono.Text = " " + zh + heu + ":" + zmi + min + ":" + zs + sec + ":" + zm + mil + ""

End Sub

Sub reset()

mil = 0

sec = 0

min = 0

heu = 0

TslChrono.Text = " 00:00:00:00"

End Sub

#End Region

#Region "Gestion du menu "

Private Sub MenuFichier( _

ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles _

TSMFichierConnecter.Click, _

TSMFichierQuitter.Click, _

TSMAideAide.Click, TSAide.Click, _

TSMAideApropos.Click

'Menu Fichier

Select Case sender.Name

Case "TSMFichierConnecter"

connexion()

excell()

Case "TSMFichierQuitter"

quitter()

End Select

'Menu Aide

Select Case sender.Name

Case "TSMAideAide", "TSAide"

Help.ShowHelp(Me, "L:\LinkExcel232 dossier aide\aide.doc")

'appel du document d'aide

Case "TSMAideApropos"

My.Forms.APropos.ShowDialog()

'affiche la fenêtre contenant les information "A propos"

End Select

End Sub

#End Region

End Class

 Afficher le profil de malinotsEnvoyer un message privé à malinots
 
 
Publicité
 breizhbugs  Posté le 23/05/2007 à 20:02  
Astucien

3001 Messages
Message original par malinots

bonjour,

je demande votre aide pour savoir si mon programme est coherent car l'or de la conpilation il ny a pas de liaison entre le pc et le peripherique aidez moi

Bon on ne vas pas lire le programme, il est illisible (mais pourquoi on t il supprimé les balises codes dans ce forum...?)

sinon tu dis "lors de la compiltaion...", c'est a dire le programme ne compile pas quels sont les messages d'erreurs?

Sinon controle tu la valeur de retour des commandes d'ouverture du port serie? (serialport.Open?)

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 AlexPrince  Posté le 24/05/2007 à 22:04  
Petit astucien

398 Messages
J'ai déjà fait la remarque pour les code tags et aucun admin n'a réagi. J'appelle ça de l'incompétence au cube.
Afficher le profil de AlexPrinceEnvoyer un message privé à AlexPrince
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Les sujets pertinents liés
resolution ecran pour prog en VB
Superkaramba et script python
SQL Server
Copie automatique de fichiers
Utilisateur VB6 demande Aide Visual Basic 2005 Exp
Problème de requete internet
Java Timer
Probeme avec for pour net start
aide
programmation:exo en c
bonjour besoin de votre aide programme java
VB.net
Site miroir sourceforge.net
VBScript petits mais importants pb
Demande aide en vb
un site pour telecharja visual j++ 6.0
Macromedia flash player 7
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page
Comme PC Astuces, mettez-vous au vert avec Ikoula !
Faites le choix d'un hébergeur acteur de l'environnement !