IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Programme à developper sous visual basic 2005


Sujet :

VB.NET

  1. #1
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut Programme à developper sous visual basic 2005
    Bonjour à tous

    Je souhaite pouvoir développer une application sous visual basic 2005 :
    A partir d'une commande Dos qui donne un résultat sur plusieurs pages, je souhaite pouvoir rediriger ce résultat soit vers un fichier ou autre afin de pouvoir y effectuer des calculs.

    En effet le résultat peut être mis dans un tableur car les lignes de résultat se présentent toujours de la même façon, je souhaite pouvoir y choisir des résultats compris entre deux dates que j'aurai sélectionné via une boite de dialogue et compter le nombre de ligne commencant par une lettre (A ou M).

    J'ai réussi à créer ma boite de dialogue (le plus simple) avec deux calendriers, l'opérateur sélectionne la date de début et la date de fin et ensuite une commande dos doit être générée, copier le résultat de la commande dans un tableur, ne traiter que les lignes comprise entre les deux dates sélectionnées, compter les lignes commencant par "A" et retourner le résultat dans ma boite de dialogue crée.

    La j'ai vraiment besoin de vous !!!!!!!

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Bonjour, Si j'ai bien compris :
    Saisir deux dates, les mettre en arguments d'une commande DOS.
    Attendre la fin de l'exécution de la dite commande, lire le fichier généré, en sélectionner les lignes comprises entre les deux dates, mettre les données des lignes sélectionnées dans un tableur (Excel ?) et afficher le nombre de lignes qui commencent par "A".
    Le contrôle Process permet de lancer un .exe : Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim monprocess As New Process
            monprocess.StartInfo.FileName = "c:\belo\a3\ezt.exe"
            monprocess.StartInfo.Arguments = ",=bogy-bird,F=E-2,z=R.,I=LASERHP,B=N.,M=R"
            monprocess.StartInfo.WorkingDirectory = "c:\belo\a3"
            monprocess.Start()
    Attention à la virgule en début de la chaîne argument
    Si tu as d'autre question, n'hésites pas.

  3. #3
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Avant tout merci pour ta réponse,
    J'ai dû mal m'exprimer, en fait la date de début et la date de fin ne serviront qu'a faire un traitement à posteriori sur le resultat de la commande.
    Je vais tacher d'expliquer mieux ma demande.
    L'operateur via une boite de dialogue sur laquelle figure deux calendrier selectionne 2 dates une de début et une de fin, ces 2 dates ne nous serviront qu'après.
    Une commande DOS doit etre lancée et le resultat de cette commande doit etre dirigée vers un fichier texte.
    C'est là qu'interviennent les dates, elles permettent de filtrer le fichier texte et n'effectuer le traitement à suivre que sur cette zonne.
    Ensuite il faut compter les lignes commencant par la lettre A et afficher le resultat dans la boite de dialogue d'ouverture.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Salut, Donc, nous savons lancer l'application DOS, nous allons attendre qu'elle se termine, lire le fichier résultat qu'elle a généré, sélectionner les lignes dont une zone date est comprise entre les deux dates saisies, compter les lignes "A", afficher ce compte et aller remplir des cellules d'Excel avec des données des lignes séléctionnées. C'est ça ?

  5. #5
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Oui c'est ca sauf que le resultat devra etre affiché dans la seule boite de dialogue e l'application cad celle ou les dates auront été selectionnées.

    Merci d'avance

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Salut, Bien compris. Tu veux une sorte d'exemple de cette application ?
    Donne moi quelques infos sur le format du fichier de sortie du programme DOS (emplacement des zones dates, emplacement de la zone lettre à tester, déplacement, longueur et format de deux ou 3 champs à envoyer dans Excel) ou bien, si ce n'est pas confidentiel, un exemple extrait de ce fichier.

  7. #7
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Bonjour et merci
    Le format de sortie du fichier est un format .txt.
    En fait je pense rediriger le résultat de la commande DOS vers un fichier TXT via la commande :
    "commande DOS" >> "chemin de mon fichier que j'ai appelé Essai.txt"
    Le seul souci c'est qu'il faut que cette commande s'execute au lancement de la boite de dialogue.
    Le format de ce fichier texte est :
    Nom auteur / date au format AAAA MM JJ / Infos sur le document
    A Document ajouté
    M Document modifié
    A Document ajouté
    S Document suprimé

    Nom auteur / date au format AAAA MM JJ / Infos sur le document

    M Document modifié
    A Document ajouté
    S Document suprimé

    La boite de dialogue du document fait apparaitre deux calendriers un pour la date de début et l'autre pour la date de fin et il y a une zone de texte ou le résultat de l'addition des lignes commencant par A entre les dates selectionnées doit etre écrit, un bouton lancant le calcul est ajouté.

    Voila et encore merci

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Bonjour Seb de Quimper,
    Voila le 1er jet. Une appli avec deux DateTimePicker pour les dates débuts et fin,
    Un bouton pour lancer l'exécution du programme DOS (ici un . bat) et un label :
    Label_nombre_de_A pour afficher le nombre de A.
    Bien sur faudrait vérifier que les dates du fichier en entrée sont convenables.
    Cet exercice m'a fait un bien fou, je suis un informaticien à la retraite, j'ai écrit des millions de lignes en assembleur, Cobol, Fortran, Basic et je cultive mes neurones en apprenant VB.NET. Si tu as des questions, n'hésite donc pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Imports Microsoft.Office.Interop
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
     
     
        Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
     
        End Sub
        Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim appExcel As Excel.Application 'Application Excel
            Dim wbExcel As Microsoft.Office.Interop.Excel.Workbook 'Classeur Excel
            Dim wsExcel As Microsoft.Office.Interop.Excel.Worksheet 'Feuille Excel
            appExcel = CreateObject("Excel.Application")
            appExcel.Workbooks.Add()
            wbExcel = appExcel.ActiveWorkbook
            wsExcel = wbExcel.ActiveSheet
     
            Dim monprocess As New Process
            Dim nomfic As String = "C:\VB project\Seb\Seb.txt"
            Dim Nombre_de_A As Integer = 0
            Dim x As Integer = 0
            Dim a As String = "A"
            Dim zz As String
            Dim zones() As String
            Dim ligne_excel As Integer = 0
            Label_nombre_de_A.Text = " "
            Dim Date_deb As String = DateTimePicker1.Value.ToString("yyyyMMdd")  ' Attention y et d en minuscule mais M en MAJUSCULE
            Dim Date_fin As String = DateTimePicker2.Value.ToString("yyyyMMdd")  ' Pour obtenir une chaine aaaaammjj 
            'MsgBox(Date_deb & "  " & Date_fin)
            monprocess.StartInfo.FileName = "c:\VB Project\seb\Seb.bat"
            monprocess.StartInfo.Arguments = ""
            monprocess.StartInfo.WorkingDirectory = "c:\VB Project\seb"
            monprocess.Start()
            monprocess.WaitForExit()
            MsgBox("Le programme de création du fichier de travail est terminé")
            Try
                FileOpen(1, nomfic, OpenMode.Input)
                Do Until EOF(1) ' Jusqu'à la fin du fichier
                    zones = Split(LineInput(1), "/")          'Découpe suivant les "/"
                    zz = zones(2).Substring(0, 1)             'Attention Split ajoute un blanc à la fin de la chaine !!!
                    x = String.Compare(zz, a, False)          'Comparaison sans tenir compte Majuscules / minuscules (argument false)
                    If x = 0 Then                             ' Le code est A 
                        Nombre_de_A = Nombre_de_A + 1
                        Label_nombre_de_A.Text = Nombre_de_A.ToString
                        zz = zones(1).Substring(0, 8)                   ' La date de la ligne courante
                        If zz >= Date_deb And zz <= Date_fin Then       ' La date de la ligne est comprise entre les deux dates !
                            'MsgBox(zones(0) & " " & zones(1) & "Ligne à traiter")
                            ligne_excel = ligne_excel + 1
                            wsExcel.Cells(ligne_excel, 1) = zones(0).ToString
                            wsExcel.Cells(ligne_excel, 2) = zones(1).ToString
                            wsExcel.Cells(ligne_excel, 3) = zones(2).ToString
                        End If
                    End If
                Loop
            Catch ex As Exception
                MsgBox("Fichier absent ou en erreur : " & ex.ToString)
            Finally
                FileClose(1)
                wsExcel.SaveAs("c:\VB project\Seb\seb.xls")
                appExcel.Quit()
     
            End Try
        End Sub
     
     
    End Class

  9. #9
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Je te remercie avant tout, je vais tester dés demain car ma machine est prise pour autre chose aujourd'hui.
    Je te tiens au courant

    Cordialement

  10. #10
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Je viens d'essayer de decripter ton programme et je souhaite te poser une question :
    - Crois tu que je dois passer par une feuille excel pour additionner le nombre de ligne commencant par "A", ne crois tu pas que depuis le début mon idée était mauvaise et qu'en fait il faudrait juste passer par un fichier .txt et y compter le nombre de ligne commencant par "A" et renvoyer le résultat sur ma boite de dialogue avec le résultat s'affichant dans une zone de texte ?
    - Le fichier texte est concaténé par le résultat de ma commande DOS qui en fait va chercher des infos et les transfèrent vers Seb.txt, donc je mets ma commande complète dans
    Dim nomfic As String = "nom de ma commande DOS"
    C'est bien cela ?

    Je tiens à te remercier pour le temps que tu m'accordes

    Codialement

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Nomfic, c'est le nom du fichier .txt, le nom de la commande DOS, il faut le mettre dans :
    monprocess.StartInfo.FileName = "c:\VB Project\seb\Seb.bat"
    , à la place de
    c:\VB Project\seb\Seb.bat.
    Bien sur, si tu n'as besoin QUE de compter les "A", inutile d'aller mettre les infos dans Excel.

  12. #12
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Bonjour à toi
    Je te remercie pour ton programme qui m'a bien aidé, j'ai decidé de ne pas passer par excel pour compter le nombre de ligne commencant par "M" et "A" dans un premier temps.
    Ce qu'il faudrait que je réalise c'est un compteur qui, entre les dates de début et de fin aprés avoir ouvert le fichier Seb.txt :
    - me compte les ligne commencant par "A" et seulement celles ci =>envoir dans TextBox1
    - Puis revient au début du fichier et me compte les lignes commencant par "M"
    et seulement celles ci =>envoir dans TextBox1
    - Ferme le fichier Seb.txt.
    Je te mets en code la zone concerné par le comptage.
    Je garde toujours en commentaire tout ce qui est relatif à Excel car il se peut que ce logiciel évolue donc je pense que ce sera utile à ce moment là.
    Dis moi combien d'années d'expériences as tu pour en arriver là car tu m'impressionnes !!!!
    En tout cas merci pour ta gentillesse.
    cordialement

    Try
    FileOpen(1, nomfic, OpenMode.Input)
    Do Until EOF(1) ' Jusqu'à la fin du fichier
    zones = Split(LineInput(1), "/") 'Découpe suivant les "/"
    zz = zones(2).Substring(0, 1) 'Attention Split ajoute un blanc à la fin de la chaine !!!
    x = String.Compare[/CODE](zz, a, False) 'Comparaison sans tenir compte Majuscules / minuscules (argument false)
    If x = 0 Then ' Le code est A
    Nombre_de_A = Nombre_de_A + 1
    Label_nombre_de_A.Text = Nombre_de_A.ToString
    zz = zones(1).Substring(0, 8) ' La date de la ligne courante
    If zz >= Date_deb And zz <= Date_fin Then ' La date de la ligne est comprise entre les deux dates !
    'MsgBox(zones(0) & " " & zones(1) & "Ligne à traiter")
    ligne_excel = ligne_excel + 1
    wsExcel.Cells(ligne_excel, 1) = zones(0).ToString
    wsExcel.Cells(ligne_excel, 2) = zones(1).ToString
    wsExcel.Cells(ligne_excel, 3) = zones(2).ToString
    End If
    End If
    Loop
    Catch ex As Exception
    MsgBox("Fichier absent ou en erreur : " & ex.ToString)
    Finally
    FileClose(1)
    wsExcel.SaveAs("c:\VB project\Seb\seb.xls")
    appExcel.Quit()

    End Try
    End Sub

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Salut,

    Pourquoi revenir au début du fichier ? On peut compter les "A" et les "B" en une seule passe et les mettre dans textboxA et textboxM.
    Si les dates début et fin de comptage des "A" et des "M" peuvent être différentes, pourquoi ne pas prévoir de saisir 4 dates ?

    Toute une vie d'informaticien, des centaines de milliers de lignes de code en COBOL, Fortran, Assembleurs, Basic. C'est vrai que cela aide, mais VB.NETest vraiment différent et tellement puissant !
    Cordialement

  14. #14
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut
    Tu as raison on peut compter les "A" et les "B" en une seule passe et les mettre dans textboxA et textboxM.
    En revanche le comptage des "M" et "A" se fera toujours à partir de la même date.
    Faut il passer par un textreader ?

    Merci d'avance

  15. #15
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Merci pour ton message.
    Voici une solution, mais avec deux séries de dates pour les A et les M (je n'avais pas lu ton dernier message). j'ai créé une SUB "ctibon" qui test chaque ligne, cela m'a permis d'avancer dans ma compréhension de l'utilisation des SUB dans VB.
    Si tu ne l'as déja fait, va faire un tour sur le remarquable et incontournable cours VB : http://plasserre.developpez.com/vsommair.htm
    Bien cordialement


    [CODE
    ]Imports Microsoft.Office.Interop
    Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub
    Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
    End Sub
    Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Microsoft.Office.Interop.Excel.Workbook 'Classeur Excel
    Dim wsExcel As Microsoft.Office.Interop.Excel.Worksheet 'Feuille Excel

    appExcel = CreateObject("Excel.Application")
    appExcel.Workbooks.Add()
    wbExcel = appExcel.ActiveWorkbook
    wsExcel = wbExcel.ActiveSheet

    Dim monprocess As New Process
    Dim nomfic As String = "C:\VB project\Seb\Seb.txt"
    Dim Nombre_de_A As Integer = 0
    Dim Nombre_de_M As Integer = 0

    Dim x As Integer = 0
    Dim a As String = "A"
    Dim M As String = "M"
    Dim zz As String
    Dim zones() As String
    Dim ligne_excel As Integer = 0
    Label_nombre_de_A.Text = " "
    Dim Date_debA As String = DateTimePicker1.Value.ToString("yyyyMMdd") ' Attention y et d en minuscule mais M en MAJUSCULE
    Dim Date_finA As String = DateTimePicker2.Value.ToString("yyyyMMdd") ' Pour obtenir une chaine aaaaammjj
    Dim Date_debM As String = DateTimePicker3.Value.ToString("yyyyMMdd") ' Attention y et d en minuscule mais M en MAJUSCULE
    Dim Date_finM As String = DateTimePicker4.Value.ToString("yyyyMMdd") ' Pour obtenir une chaine aaaaammjj

    'MsgBox(Date_deb & " " & Date_fin)

    monprocess.StartInfo.FileName = "c:\VB Project\seb\Seb.bat"
    monprocess.StartInfo.Arguments = ""
    monprocess.StartInfo.WorkingDirectory = "c:\VB Project\seb"
    monprocess.Start()
    monprocess.WaitForExit()
    MsgBox("Le programme de création du fichier de travail est terminé")
    Try
    FileOpen(1, nomfic, OpenMode.Input)
    Do Until EOF(1) ' Jusqu'à la fin du fichier
    zones = Split(LineInput(1), "/") 'Découpe suivant les "/"
    zz = zones(2).Substring(0, 1) 'Attention Split ajoute un blanc à la fin de la chaine !!!
    ctibon(x, zz, a, Date_debA, Date_finA, zones(1).Substring(0, 8), Nombre_de_A)
    ctibon(x, zz, M, Date_debM, Date_finM, zones(1).Substring(0, 8), Nombre_de_M)
    'x = String.Compare(zz, a, False) 'Comparaison sans tenir compte Majuscules / minuscules (argument false)
    'If x = 0 Then ' Le code est A
    ' Nombre_de_A = Nombre_de_A + 1
    ' zz = zones(1).Substring(0, 8) ' La date de la ligne courante
    ' If zz >= Date_debA And zz <= Date_finA Then ' La date de la ligne est comprise entre les deux dates !
    ' 'MsgBox(zones(0) & " " & zones(1) & "Ligne à traiter")
    ' ligne_excel = ligne_excel + 1
    ' wsExcel.Cells(ligne_excel, 1) = zones(0).ToString
    ' wsExcel.Cells(ligne_excel, 2) = zones(1).ToString
    ' wsExcel.Cells(ligne_excel, 3) = zones(2).ToString
    ' End If
    ' End If
    Loop
    Catch ex As Exception
    MsgBox("Fichier absent ou en erreur : " & ex.ToString)
    Finally
    FileClose(1)
    'wsExcel.SaveAs("c:\VB project\Seb\seb.xls")
    'appExcel.Quit()
    TextBoxA.Text = Nombre_de_A.ToString
    TextBoxM.Text = Nombre_de_M.ToString
    End Try
    End Sub
    Private Sub ctibon(ByRef x As Integer, ByVal zat As String, ByVal code As String, ByVal dd As String, ByVal df As String, ByVal zd As String, ByRef nombre As Integer)
    x = String.Compare(zat, code, False)
    If x = 0 Then
    If zd >= dd And zd <= df Then
    nombre = nombre + 1
    End If
    End If
    End Sub
    End Class
    [/CODE]

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Merci pour ton message.
    Voici une solution, mais avec deux séries de dates pour les A et les M (je n'avais pas lu ton dernier message). j'ai créé une SUB "ctibon" qui test chaque ligne, cela m'a permis d'avancer dans ma compréhension de l'utilisation des SUB dans VB.
    Si tu ne l'as déja fait, va faire un tour sur le remarquable et incontournable cours VB : http://plasserre.developpez.com/vsommair.htm
    Bien cordialement


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    Imports Microsoft.Office.Interop
    Public Class Form1
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        End Sub
        Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
        End Sub
        Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim appExcel As Excel.Application 'Application Excel
            Dim wbExcel As Microsoft.Office.Interop.Excel.Workbook 'Classeur Excel
            Dim wsExcel As Microsoft.Office.Interop.Excel.Worksheet 'Feuille Excel
     
            appExcel = CreateObject("Excel.Application")
            appExcel.Workbooks.Add()
            wbExcel = appExcel.ActiveWorkbook
            wsExcel = wbExcel.ActiveSheet
     
            Dim monprocess As New Process
            Dim nomfic As String = "C:\VB project\Seb\Seb.txt"
            Dim Nombre_de_A As Integer = 0
            Dim Nombre_de_M As Integer = 0
     
            Dim x As Integer = 0
            Dim a As String = "A"
            Dim M As String = "M"
            Dim zz As String
            Dim zones() As String
            Dim ligne_excel As Integer = 0
            Label_nombre_de_A.Text = " "
            Dim Date_debA As String = DateTimePicker1.Value.ToString("yyyyMMdd")  ' Attention y et d en minuscule mais M en MAJUSCULE
            Dim Date_finA As String = DateTimePicker2.Value.ToString("yyyyMMdd")  ' Pour obtenir une chaine aaaaammjj 
            Dim Date_debM As String = DateTimePicker3.Value.ToString("yyyyMMdd")  ' Attention y et d en minuscule mais M en MAJUSCULE
            Dim Date_finM As String = DateTimePicker4.Value.ToString("yyyyMMdd")  ' Pour obtenir une chaine aaaaammjj 
     
            'MsgBox(Date_deb & "  " & Date_fin)
     
            monprocess.StartInfo.FileName = "c:\VB Project\seb\Seb.bat"
            monprocess.StartInfo.Arguments = ""
            monprocess.StartInfo.WorkingDirectory = "c:\VB Project\seb"
            monprocess.Start()
            monprocess.WaitForExit()
            MsgBox("Le programme de création du fichier de travail est terminé")
            Try
                FileOpen(1, nomfic, OpenMode.Input)
                Do Until EOF(1) ' Jusqu'à la fin du fichier
                    zones = Split(LineInput(1), "/")          'Découpe suivant les "/"
                    zz = zones(2).Substring(0, 1)              'Attention Split ajoute un blanc à la fin de la chaine !!!
                    ctibon(x, zz, a, Date_debA, Date_finA, zones(1).Substring(0, 8), Nombre_de_A)
                    ctibon(x, zz, M, Date_debM, Date_finM, zones(1).Substring(0, 8), Nombre_de_M)
                    'x = String.Compare(zz, a, False)          'Comparaison sans tenir compte Majuscules / minuscules (argument false)
                    'If x = 0 Then                             ' Le code est A 
                    ' Nombre_de_A = Nombre_de_A + 1
                    ' zz = zones(1).Substring(0, 8)                   ' La date de la ligne courante
                    ' If zz >= Date_debA And zz <= Date_finA Then       ' La date de la ligne est comprise entre les deux dates !
                    ' 'MsgBox(zones(0) & " " & zones(1) & "Ligne à traiter")
                    ' ligne_excel = ligne_excel + 1
                    ' wsExcel.Cells(ligne_excel, 1) = zones(0).ToString
                    ' wsExcel.Cells(ligne_excel, 2) = zones(1).ToString
                    ' wsExcel.Cells(ligne_excel, 3) = zones(2).ToString
                    ' End If
                    ' End If
                Loop
            Catch ex As Exception
                MsgBox("Fichier absent ou en erreur : " & ex.ToString)
            Finally
                FileClose(1)
                'wsExcel.SaveAs("c:\VB project\Seb\seb.xls")
                'appExcel.Quit()
                TextBoxA.Text = Nombre_de_A.ToString
                TextBoxM.Text = Nombre_de_M.ToString
            End Try
        End Sub
        Private Sub ctibon(ByRef x As Integer, ByVal zat As String, ByVal code As String, ByVal dd As String, ByVal df As String, ByVal zd As String, ByRef nombre As Integer)
            x = String.Compare(zat, code, False)
            If x = 0 Then
                If zd >= dd And zd <= df Then
                    nombre = nombre + 1
                End If
            End If
        End Sub
    End Class

Discussions similaires

  1. application sous Visual basic 2005 express
    Par elmo93 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/01/2008, 09h55
  2. Réponses: 7
    Dernier message: 08/01/2008, 10h32
  3. Programmer en C sous visual studio 2005
    Par superseb801 dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 22/09/2007, 14h03
  4. eBook <<Introduction à Visual Basic 2005 gratuit>&g
    Par Faze dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/10/2005, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo