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 6 et antérieur Discussion :

vb6: Stocker des valeurs récupérés dans un TextBox sous excel


Sujet :

VB 6 et antérieur

  1. #21
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    oui mais si je l'initialise pas
    En vb il n'est pas nescessaire d'initialiser les variables. elles le sont automatiquement avec le valeur 0 pour les nombres

    int i
    Ce n'est pas une déclaration de type valide en VB. Utilise l'instruction Dim ou Static

    Dans le cas présent, si tu declares I en static dans ta routine de timer, sa valeur sera conservée entre chaque déclenchement du timer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Timer1_Timer()
      Static I As Integer
      I = I + 1
      xAPP.wk.sheets(1).cells(1, 1 + I) = maform.textBox1
    End Sub
    d'autre part il faudrait prévoir que le programme tounre tres longtemps et que la variable deborde. ou alors declarer i comme entier long, ce qui laissera de la marge

  2. #22
    gaetan.tranvouez
    Invité(e)
    Par défaut
    merci

    quand je lance le prog je n'ai pas d'erreur mais il ne se passe rien

    puis je mettre un bouton qui permet de rentrer dans le timer car quand je lance en pas a pas l'instruction ne rentre pas dans mon timer

  3. #23
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Ton controle timer n'est pas initialisé correctement

    dans le form_load

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Timer1.Interval = 1000   'valeur en millisecondes
    Timer1.Enabled=true

  4. #24
    gaetan.tranvouez
    Invité(e)
    Par défaut
    merci
    mais Timer1.Enabled=true faut il que je le mette juste au debut de la procédure ou a la fin

    et j'ai aussi configuré mon timer a true

  5. #25
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par gaetan.tranvouez
    merci
    mais Timer1.Enabled=true faut il que je le mette juste au debut de la procédure ou a la fin

    et j'ai aussi configuré mon timer a true
    c'est quoi "configuré mon timer à true..?".. .. tu fais pas 2 fois la même chose...


    sinon tu peu créer un bouton appellant la procédure associé au timer histoire de la tester en pas à pas ...
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sub  CdbBouton1_Click()
      Timer1_... 'je sais plus le nom de la procédure associé...
    end sub

  6. #26
    gaetan.tranvouez
    Invité(e)
    Par défaut
    j'ai configuré le timer à true dans les propriétés de celui ci.

    et j'ai enlevé la ligne de code qui ne sert à rien...merci pour tout

  7. #27
    gaetan.tranvouez
    Invité(e)
    Par défaut
    mais quand je lance mon programme, est ce que la fenetre excel doit s'ouvrir sous mes yeux car je ne la vois pas???

  8. #28
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    à mettre aprés le create object..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel.visible = true
    faudra penser aussi à arrêter excel.....

  9. #29
    gaetan.tranvouez
    Invité(e)
    Par défaut
    merci
    je teste le prog avec la station cet ap midi et je mettrai résolu ou pas suivant comment cela fonctionne.

    merci pour tout

    ps: excel c'est pas mal mais allié au vb ca devient galere quand meme

  10. #30
    gaetan.tranvouez
    Invité(e)
    Par défaut
    re

    voila g testé avec la station

    et par chance cela fonctionne, a peu près je dis.

    car j'ai 4 feuille excel qui s'ouvrent, et les données sont un peu éparpillé sur les 4 feuilles.

    et au bout de 1 min(timer paramétré toutes les 60s) que le prog fonctionne, j'ai un msg de mon antivirus!!

    une idée de quoi ca vient???

    voila mon code du form du timer:
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
     
    Private Sub Timer1_Timer()
    'Timer1.Enabled = True
    StatusBar1.SimpleText = "Récupération en cours..."
    Dim I As Integer, var As Integer
    Dim val As String, typ As String
    Dim Rapports(2) As Double
    données_récup = Récup.Récupération
    If données_récup(4)(0) <> 1 Then
        Command2.Enabled = True
        StatusBar1.SimpleText = "Erreur de communication à la commande n°" & données_récup(4)(0)
        var = MsgBox(StatusBar1.SimpleText, vbOKOnly, "Erreur")
        Exit Sub
    End If
    For I = 0 To UBound(données_récup(0))
        Text_taux(I).Text = données_récup(0)(I) & " %"
        Select Case données_récup(1)(I)
            Case 0
                typ = "Aucun"
            Case 1
                typ = "Rebroyé"
            Case 2
                typ = "Naturel"
            Case 3
                typ = "Additif/Colorant"
        End Select
        'Texte rajouté pour le stockage dans excel
        Static J As Long
        J = J + 1
     
     
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    Set appExcel = CreateObject("Excel.Application")
    appExcel.Workbooks.Add
    Set wbExcel = appExcel.ActiveWorkbook
    Set wsExcel = wbExcel.ActiveSheet
    appExcel.Visible = True
     
        'Inscrit le type des 4 composants sous excel
        wsExcel.Cells(1, 1 + 5 * J) = Text_type(0).Text
        wsExcel.Cells(1, 2 + 5 * J) = Text_type(1).Text
        wsExcel.Cells(1, 3 + 5 * J) = Text_type(2).Text
        wsExcel.Cells(1, 4 + 5 * J) = Text_type(3).Text
     
        'Inscrit le taux des 4 composants sous excel
        wsExcel.Cells(2, 1 + 5 * J) = Text_taux(0).Text
        wsExcel.Cells(2, 2 + 5 * J) = Text_taux(1).Text
        wsExcel.Cells(2, 3 + 5 * J) = Text_taux(2).Text
        wsExcel.Cells(2, 4 + 5 * J) = Text_taux(3).Text
     
        'Inscrit le poids des 4 composants
        wsExcel.Cells(3, 1 + 5 * J) = Text_poids(0).Text
        wsExcel.Cells(3, 2 + 5 * J) = Text_poids(1).Text
        wsExcel.Cells(3, 3 + 5 * J) = Text_poids(2).Text
        wsExcel.Cells(3, 4 + 5 * J) = Text_poids(3).Text
     
         'Inscrit le code de chaque composant sous excel
        wsExcel.Cells(4, 1) = Text_compo(0).Text
        wsExcel.Cells(4, 2 + 5 * J) = Text_compo(1).Text
        wsExcel.Cells(4, 3 + 5 * J) = Text_compo(2).Text
        wsExcel.Cells(4, 4 + 5 * J) = Text_compo(3).Text
     
        'Inscrit les différents rapports
        wsExcel.Cells(7, 1) = Text3(0).Text
     
     
        'Inscrit le numéro de la machine
        wsExcel.Cells(6, 2) = Text6.Text
     
     'Fin du texte rajouté pour le stockage sous excel
        Text_type(I).Text = typ
        Text_poids(I).Text = données_récup(2)(I) & " gr"
    Next
    For I = 0 To UBound(données_récup(3))
        Text3(I).Text = données_récup(3)(I) & " %"
        Rapports(I) = données_récup(3)(I)
    Next
    If (Rapports(0) <> 0 And Rapports(1) <> 0 And Rapports(2) <> 0) Then
        val = masave.Sauvegarde(Rapports())
        If (val <> "OK") Then
            var = MsgBox("Sauvegarde échouée: " & val, vbOKOnly, "Erreur")
            val = "Sauvegarde précédente échouée!"
          Else
            val = "Sauvegarde précédente réussie"
        End If
        StatusBar1.SimpleText = val
    End If
    'Timer1.Enabled = True
    End Sub

  11. #31
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ton code est complet...?
    je vois bien ou tu ouvre et crée ton classeur... mais je ne vois nulle part ou tu le ferme et tu sauve...

    ensuite tu ouvre un nouveau classeur à chaque appel du timer ...! c'est cela que tu ve ..?

  12. #32
    gaetan.tranvouez
    Invité(e)
    Par défaut
    ba nan
    je voudrai l'ouvrir une seule fois mais comment faire pour sauvegarder ensuite???

    et puis les valeurs dans excel sont mises n'importes ou

    je comprend pas pourtant ca devrait etre bien rangé vu les lignes que je met et les colonnes?

  13. #33
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ben pour la sauvegard il y as tout dans le lien que je t'ai donné hier...

    tu peu par exemple Ouvrir/ou créer un nouveau fichie excel sur l'ouveture de ta form (événement open ..)
    et sauver/fermer ensuite sur la fermeture de ta form
    enfin as toi de voir en fonction de ton application...

    pour ce qui est du rangement... c'est pas clair .. souviens toi des paramétres de cells(Colonne,Ligne)... ainsi pour le premier appel tu as j=1.. d'ou
    Text_type(0).Text ce place en Cells(1, 1 + 5 * 1) => $F$1
    le 2° appel j= 2 .. il d'ou Cells(1, 1 + 5 * 2) => $K$1
    ....

Discussions similaires

  1. Stocker des valeurs saisies dans un JTextArea
    Par Erwan7374 dans le forum Composants
    Réponses: 1
    Dernier message: 12/05/2012, 14h55
  2. la somme des valeurs affichées dans des textbox
    Par sabrina_beautyful dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/05/2009, 21h00
  3. Stocker des valeurs dans des variables sessions
    Par Jcpan dans le forum Langage
    Réponses: 3
    Dernier message: 31/03/2009, 10h39
  4. stocker des valeurs entiéres dns un fichier csv dans un tableau
    Par industrielle dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/03/2009, 18h40
  5. arrondir une valeur récupérée dans une textbox
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2008, 17h11

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