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

VBScript Discussion :

Fonction Case depuis CATIA [Débutant(e)]


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Par défaut Fonction Case depuis CATIA
    Bonjour à tous,

    au boulot j'utilise Catia V5, et on m'a demandé de créer une macro pour automatiser la création d'un modèle à partir de données excel. A partir d'une macro récupérée j'ai pu bidouiller quelquechose qui fonctionne, mais là je bloque sur quelquechose :

    Ma feuille excel me permet de créer des points dans catia, puis dans une Private Sub dans la macro catia, je crée des lignes qui relient certains points dans des set géométriques différents.

    Dans mon fichier excel, une cellule varie (2è ligne, colonne P), elle représente les configurations de points voulues, et en fonction de ce qui est inscrit (il s'agit de texte) dans cette cellule, j'aimerais que la macro catia lance ou non certaines Private Sub.

    Après plusieurs essais, j'ai placé ça dans ma macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set valeur_excel = Cells.Value(2, 16)
     
    Select Case valeur_excel
     
    Case 1 valeur_excel = "valeur 1"
    Call action1a
    Call action1b
    Call action1c
    Call action1d
     
    Case 2 valeur_excel = "valeur 2"
    Call action2a
     
    End Select
    Ce code me permet d'éviter d'avoir un message d'erreur lorsque catia commence à créer l'objet avec les propriétés de "valeur 2", mais aucune Private Sub ne se lance

    J'avais jamais touché à du VBScript avant ça, donc je tatonne vraiment ..
    J'ai passé ma journée à regarder sur internet, d'après tout ce que j'ai vu ce morceau de code a l'air bon ? Je comprends plus

    Si quelqu'un arrivait à me filer un coup de main ce serait super

    Merci d'avance bonne soirée (ou journée en fonction)

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut, bienvenue sur DVP

    Il me semble bien qu'il manque des séparateurs de commande dans certaines lignes de Case.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set valeur_excel = Cells.Value(2, 16)
     
    Select Case valeur_excel
     
    Case 1 : valeur_excel = "valeur 1" '<--------- ICI
    Call action1a
    Call action1b
    Call action1c
    Call action1d
     
    Case 2 : valeur_excel = "valeur 2"  '<--------- ET LA
    Call action2a
     
    End Select
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Par défaut
    Par séparateur tu entends les ":" ?
    J'essairai demain merci

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Désolé
    En lisant une nouvelle fois le code que tu proposes, je viens de réaliser que tu indiquais en commentaire la valeur du Case.
    Donc Case 1 valeur_excel = "valeur 1" doit devenir Case 1 ' valeur_excel = "valeur 1" ou Case 1 rem valeur_excel = "valeur 1"le ' ou le mot rem indiquant que la suite de la ligne est un commentaire, non du code.

    Par contre, que peut contenir réellement Ta variable valeur_excel, "Valeur 1" ou "1" (un littéral), ou 1 (un chiffre) ?

    Pour un littéral il serait mieux d'écrire Case "Valeur 1"ou Case "1", Case "Valeur 2"ou Case "2"
    Pour un chiffre Case 1 ou Case 2

    Cela permet de rendre le code plus lisible/compréhensible , quant on revient dans le code après quelque mois, ou si une personne lit ton code.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Par défaut
    "Valeur 1" correspond à ce qui est écrit dans la cellule excel, en littéral, je l'ai sans doute mal écrit, il ne s'agit pas d'un commentaire

    Donc si je comprends bien je dois écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Select Case Cells.Value(2, 16)
        Case "valeur 1"
            Call action1a
            Call action1b
            Call action1c
            Call action1d
        Case "valeur 2"
            Call action2a
        End Select
    Merci

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Par défaut
    Toujours le même souci .. aucune des private sub "action 1x" ou "action 2x" ne se lance, peu importe la valeur que prend la cellule excel

Discussions similaires

  1. [AC-2010] fonction Ajdate() depuis case à cocher
    Par julius870 dans le forum IHM
    Réponses: 1
    Dernier message: 31/08/2012, 11h30
  2. [VBA-E]Fonction vb depuis la feuille excel
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/02/2006, 18h41
  3. Faire apelle a une fonction javascript depuis un onclick=&am
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/12/2005, 21h41
  4. [Info] Appeler une fonction Ada95 depuis Java
    Par mmathieu dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 15/09/2005, 09h42
  5. Comment appeler une fonction JavaScript depuis Delphi ?
    Par Alfred12 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 18h15

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