Débutant VBScript - Fonction Case
Résolu
addesign92
Messages postés
7
Statut
Membre
-
sipherion Messages postés 2462 Statut Membre -
sipherion Messages postés 2462 Statut Membre -
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 :
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 ..
Si quelqu'un arrivait à me filer un coup de main ce serait super
Merci d'avance bonne soirée (ou journée en fonction)
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 :
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 ..
Si quelqu'un arrivait à me filer un coup de main ce serait super
Merci d'avance bonne soirée (ou journée en fonction)
A voir également:
- Débutant VBScript - Fonction Case
- Fonction si et - Guide
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
9 réponses
Bonjour,
Je ne sais pas ce que répresente Valeur1 et valeur2 mais il est probable qu'il ne faut pas de guillemet.
Je ne sais pas ce que répresente Valeur1 et valeur2 mais il est probable qu'il ne faut pas de guillemet.
Select Case Cells.Value(2, 16)A+
Case "valeur 1"
Call action1a
Call action1b
Call action1c
Call action1d
Case "valeur 2"
Call action2a
End Select
J'ai toujours le même souci avec cette notation
Les Private Sub "action1x" ou "action2x" ne se lancent, peu importe la valeur que prend la cellule excel
Les Private Sub "action1x" ou "action2x" ne se lancent, peu importe la valeur que prend la cellule excel
Tu a une erreur ? la quel ? (N° et libellé)
Où se situe (quel module) la procédure avec tes Select case
Y a quoi dans la cellules 2,16 ?
Où se situe tes procédures "actionx" (quel module) ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Où se situe (quel module) la procédure avec tes Select case
Y a quoi dans la cellules 2,16 ?
Où se situe tes procédures "actionx" (quel module) ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voilà l'erreur qui s'affiche :
http://img856.imageshack.us/img856/194/59tb.png
Il me met la même chose peu importe le terme qui est juste derrière "Select Case", j'ai essayé avec ActiveWorkSheet et tout ce que j'ai pu trouver sur le net, même erreur quel que soit la variable
- Le select case est placé une fois que la macro a créé tous les points nécessaires, lorsque je lance simplement un Call vers la private sub à cet endroit, les lignes se créent sans soucis
- Dans la cellule 2,16 il y à une expression littérale (deux mots séparés par un espace pour être précis)
- Mes actions (private sub) se situent un peu plus haut dans le code
http://img856.imageshack.us/img856/194/59tb.png
Il me met la même chose peu importe le terme qui est juste derrière "Select Case", j'ai essayé avec ActiveWorkSheet et tout ce que j'ai pu trouver sur le net, même erreur quel que soit la variable
- Le select case est placé une fois que la macro a créé tous les points nécessaires, lorsque je lance simplement un Call vers la private sub à cet endroit, les lignes se créent sans soucis
- Dans la cellule 2,16 il y à une expression littérale (deux mots séparés par un espace pour être précis)
- Mes actions (private sub) se situent un peu plus haut dans le code
Cells n'est pas reconnu !!
Dans quel appli est ton code..
Nomme la cellule..
WorkBooks("LeClasseur").Sheets("LaFeuille").Cells(2, 16)Si tu a créer une instance d'un classeur emploi cette instance.
Dans quel appli est ton code..
Nomme la cellule..
WorkBooks("LeClasseur").Sheets("LaFeuille").Cells(2, 16)Si tu a créer une instance d'un classeur emploi cette instance.
Mon code est utilisé dans CATIA V5
Je vais essayer ce que tu m'a donné je te tiens au courant
Merci ;)
Je vais essayer ce que tu m'a donné je te tiens au courant
Merci ;)
Bonjour,
Comme le dit lermite222, je verrais plutôt un code du genre :
ou
Mais je ne connais pas CATIA V5, alors j'espère que ça pourra quand même t'aider.
Si votre problème est résolu, merci de clôturer le sujet en cliquant sur "Problème résolu".
Administrateur réseaux sous Windows Serveur 2003
Comme le dit lermite222, je verrais plutôt un code du genre :
Set valeur_excel = Sheets(1).Cells(2, 16).Value
ou
Set valeur_excel = Sheets(1).Range("P2").Value
Mais je ne connais pas CATIA V5, alors j'espère que ça pourra quand même t'aider.
Si votre problème est résolu, merci de clôturer le sujet en cliquant sur "Problème résolu".
Administrateur réseaux sous Windows Serveur 2003
J'ai réussi !
Merci à vous !
Le code final qui fonctionne est celui ci
Merci encore, je vais enfin pouvoir avancer :)
Merci à vous !
Le code final qui fonctionne est celui ci
Set fichier_excel = MyXL.ActiveWorkbook
Set lacellule_type = fichier_excel.Sheets("Feuil1").Range("P2")
la_valeur = lacellule_type.Value
Select Case la_valeur
Case "valeur1"
Call action1
Call action2
Call action3
Case "valeur2"
Call action4
End Select
Merci encore, je vais enfin pouvoir avancer :)