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

Macros et VBA Excel Discussion :

Macro rs232 et traitement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club Avatar de sshikamaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut Macro rs232 et traitement
    Bonjour
    dans le cadre de mon travail, j'ai rétrofité une machine de force avec un afficheur PAX-D de chez Redlion, et je me suis rendu compte que dans le cadre de l'activité métrologique effectuée, il y a la possibilité de pouvoir récupérer les données via le RS232 et la fonction "Print" de l'afficheur.
    En effet, une fois cette fonction programmée, elle envoi un paquet de données ASCII (vérifier avec l'hyperterminal), et je cherche le moyen de rentrer la valeur du port RS232 dans excel au moment où j'appuie sur le bouton "Print".

    Par la suite il doit y avoir un traitement des données car comme nous devons prendre au point précis (ex: 10,00kN sur un matériel à étalonner) ce qui est quasi impossible, en se mettant à moins de 5% du point (ex: 9,97) on considère que de 9,97 à 10,00, c'est linéaire donc on utilise un produit en croix pour ramener la valeur de 9,97 à 10 et pareil pour la valeur étalon. Ce que je voudrais faire, c'est ne pas faire apparaitre ce produit en croix dans mon tableur, mais seulement dans une macro. est-ce possible ? (la valeur de prise de mesure et la valeur cible sont entrées au préalable dans le tableur)

    j'ai vu qu'il y avait le moyen avec MSComm mais qu'il n'était plus possible de l'utiliser. comment faire ?
    Merci

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Difficile pour un non initié aux outils que tu utilises de comprendre quel est ton besoin en VBA, decris nous mieux ta problématique, mets un exemple de ce que tu veux faire dans excel, montres nous même une ébauche, essais de te mettre à notre niveau, nous essaierons de nous mettre au tiens !

  3. #3
    Nouveau membre du Club Avatar de sshikamaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut
    euh comment dire on va shunter la partie afficheur qui sert pas.

    MACRO 1 :
    alors quand j'appuie sur un bouton, le port RS232 de mon ordi (COM1 dans mon cas) reçoit un code ascii (code pour les touches du clavier).
    si je lance l'hyperterminal et que j'ouvre le port nommé COM1, il m'affiche la valeur envoyée.
    donc moi je récuperer cette valeur dans une case excel.


    MACRO 2 :
    Je souhaite apporter une modif de ma valeur si elle n'est pas égale à un valeur cible. je l'explique dans un fichier excel joint.

    j'ai essayé de faire simple la....
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Un exemple avec le résultat dans Feuil2, la Feuil1 est masquée, seulement affichée pendant la macro.
    D'autres solutions sont possible : suppression des colonnes B et C après le calcul ou bien suppression de la feuille en fin de traitement ...

    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
    Sub Calcul()
    Application.ScreenUpdating = False
    Dim DerLig As Long, i As Long
     
    With Feuil1
        .Visible = xlSheetVisible
        DerLig = .Cells(.Rows.Count, 1).End(xlUp).Row ' Derniere ligne renseignée de la colonne A
     
        .Columns("A:A").Copy Destination:=Feuil2.Columns("A:A") 'recopie de la colonne A
        .Range("D1").Copy Destination:=Feuil2.Range("B1") ' Recopie de la cellule D1
     
        For i = 2 To DerLig
            Feuil2.Cells(i, 2).Value = .Cells(i, 3).Value / .Cells(i, 2).Value * .Cells(i, 1).Value
        Next i
     
        .Visible = xlSheetVeryHidden
    End With
     
    Application.ScreenUpdating = True
    End Sub

Discussions similaires

  1. [OL-2007] accorder exception pour macro gérant le traitement des tâches et mails
    Par aethangaia dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 03/04/2015, 08h57
  2. [XL-2013] Problème de macro pour un traitement de données horizontal puis vertical
    Par minh86 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/12/2014, 17h04
  3. Macro - Automatiser un traitement
    Par Desraux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/12/2007, 20h27
  4. EXCEL Macro Traitement automatique
    Par Desraux dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/11/2007, 23h53
  5. Réponses: 3
    Dernier message: 18/04/2007, 08h18

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