Problème de Boucle et récupération de données dans un Userform

  • Auteur de la discussion Matthias31
  • Date de début

Matthias31

Nouveau membre
Bonjour,
j'ai un petit problème pour faire une boucle.
Je programme avec leVisual Basic de CATIA V5 un logiciel de CAO.

Le code est le suivante :
[cpp]'Création du texte

Dim iFontSize As Double
Dim Compteur1 As Integer
Dim Compteur2 As Integer
iFontSize = 6
For Compteur1 = 3 To 1 Step -1
For Compteur2 = 10 To 30
Set myText = myView.Texts.Add(TRef(Compteur1).Value, -50, Compteur2)
Next Compteur2
Next Compteur1[/cpp]

J'explique d'abord le fonctionnement de cette commande.
Par exemple : La commande Set myText = myView.Texts.Add(CATIA_V5, -50, 30) sert à mettre dans un dessin créé sous CATIA V5
le texte "CATIA_V5" au coordonnées -50mm sur X et 30mm sur Y.

Je veut donc créer du texte à différents endroits suivant une boite de dialogue qui apparaitra.
La boucle 1 prendra le texte dans les zones de texte (text box) apellées "TRef1", "TRef2" et "TRef3".
La boucle 2 fera varié l'emplacement du texte selon les coordonnées de Y.

Le problème est que je n'arrive pas à réaliser la boucle du Compteur1.
La référence Tref1, Tref2 et Tref3 ne sont pas prise en compte, par exemple au commencement de la 1ere boucle la commande prend donc cette forme :
[cpp]Set myText = myView.Texts.Add(TRef(3).Value, -50, 10)[/cpp]


Comment faire pour prendre la valeur de la zone de texte en compte pour quelle change à chaque boucle...??

Merci d'avance pour vos réponses.
 

Matthias31

Nouveau membre
Ce n'est pas possible.

Mais on peut ruser ... http://www.presence-pc.com/forum/ppc/Programmation/recuperation-donnee-userform-sujet-4408-1.htm


En fait si c'est possible, j'ai trouver une autre astuce assez plus simple.Ca marche nikel...

[cpp]'Création du texte

Dim iFontSize As Double
Dim Cpt1 As Integer
Dim Cpt2 As Integer
Dim liste(1 To 3) As String



iFontSize = 6

For Cpt1 = 3 To 1 Step -1

For Cpt2 = 10 To 30 Step 10

If Cpt1 = 1 And Cpt2 = 10 Then liste(Cpt1) = UserForm1.TRef3.Value
If Cpt1 = 2 And Cpt2 = 20 Then liste(Cpt1) = UserForm1.TRef2.Value
If Cpt1 = 3 And Cpt2 = 30 Then liste(Cpt1) = UserForm1.TRef1.Value

Set myText = myView.Texts.Add(liste(Cpt1), -50, Cpt2)
myText.SetFontName 0, 0, "KOHG"
myText.SetFontSize 0, 0, iFontSize
myText.SetParameterOnSubString catCharRatio, 0, 0, 60
myText.SetParameterOnSubString catCharSpacing, 0, 0, 35
liste(1) = ""
liste(2) = ""
liste(3) = ""

Next Cpt2

Next Cpt1


'myText.ActivateFrame catRectangle[/cpp]
 

zeb

Modérateur
Oui, c'est normalement ce que tu aurais du trouver du premier coup.

La "ruse" de l'autre topic, c'est quand on a 1236554789 composants. Là ça devient vite très chiant !
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 834
Membres
1 586 369
Dernier membre
Mouslah
Partager cette page
Haut