Recureper la Value textbox

Recureper la Value textbox - VB/VBA/VBS - Programmation

Marsh Posté le 16-07-2007 à 15:12:39    

Bonjour ä tous.
 
Bon, cela fait quelques temps que je galere sur une des choses les plus elementaires de VBA j'imagine, a savoir: comment recuperer la valeur d'une textbox pour ensuite l'utiliser afin de deposer automatiquement un objet (un cercle dans mon cas) a des coordonnees choisies par l'utilisateur( qui rempli donc des textbox)? Je precise, je bosse sur visio...
 
Le code (qui ne marche pas bien sur) donne a peu pres ca:
Public Sub TestDropShape()
 
Dim stencil As Visio.Document, mstCircle As Visio.Master
 
Dim Xcoord As Double
Dim Ycoord As Double
Xcoord = Val(TextBox1.Text)
Ycoord = Val(TextBox2.Text)
 
Set stencil = ThisDocument.Application.Documents.Open("Blocks Raised.vss" )
ThisDocument.Application.Windows(ThisDocument.Index).Activate
' Set the ActiveWindow to the drawing window.
Set mstCircle = stencil.Masters("Kreis" )
' Get the master named "Kreis" and drop that shape on the page!
ThisDocument.Pages(1).Drop mstCircle, Xcoord, Ycoord ' Drop the shape, mstCircle,
End Sub
 
 
Etant assez nouveau dans cette programmation, soyez indulgents avec moi, lol
Bonne journee a tous.

Reply

Marsh Posté le 16-07-2007 à 15:12:39   

Reply

Marsh Posté le 16-07-2007 à 15:19:43    

où ca ca ne marche pas ? quelle ligne  t'envoie ch*** ?

Reply

Marsh Posté le 16-07-2007 à 16:30:43    

En fait j'ai essaye pas mal de configurations en declarant les Xcoord et Ycoord en divers endroits, mais au final, le probleme se situe ä la derniere ligne, dans le :
ThisDocument.Pages(1).Drop mstCircle, Xcoord, Ycoord '  
 
Le cercle apparait toujours en =,=, ce qui signifierai que Xcoord=Ycoord=0
pourtant, et je demande ä ce que le programme l'affiche dans une textbox, que ces valeurs soient non nulles...

Reply

Marsh Posté le 16-07-2007 à 16:41:19    

Si tu mets un point d'arrêt sur « Xcoord = Val(TextBox1.Text)  » et que tu exécutes en pas-à-pas, quelles valeurs vois-tu dans TextBox1.Text et Val(TextBox1.Text) ?

 

edit : F9 pour mettre un point d'arrêt sur la ligne active et F5 pour lancer le programme et F8 pour le pas-à-pas une fois à partir du point d'arrêt


Message édité par tegu le 16-07-2007 à 16:42:50
Reply

Marsh Posté le 16-07-2007 à 16:53:48    

En fait ce qui ce passe c'est que je lance tout ca depuis un userForm, du coup je rentre la valeur dans la textbox1 et le programme doit l'extraire pour l'utiliser ensuite.
 
Lors du pas ä pas, mis ä part le " Run Time error 424" Object Required, rien de bien particulier.
 
Je fais apparaitre Textbox1.text dans une 3eme textbox et val(textbox1.text) dans un autre et les bonne valeurs '( celles que j
' ai rentrees) apparaissent.
 
Seulement ces valeurs apparaissent car elles sont directement liees ä des evenements ( commandbutton) alors que le dropcircle est appele par un commandbutton par l'intermediaire d'une procedure.
 
Enfin voila

Reply

Marsh Posté le 16-07-2007 à 17:20:52    

C'est marrant ce qu'il faut d'ingéniosité pour faire dire à quelqu'un le message d'erreur qu'il a.
Maintenant on sait qu'il s'agit d'un "Run Time error 424" Object Required  ;)
 
Et ce message apparaît quand tu fais F8 sur la ligne « ThisDocument.Pages(1).Drop mstCircle, Xcoord, Ycoord » ?
Si oui je ne vois pas le rapport avec tes textbox.
Plutôt un problème avec Pages(1) ou mstCircle voire carrément ThisDocument (ça serait dommage).

Reply

Marsh Posté le 16-07-2007 à 17:38:21    

Non, ca apparait au niveau de Xcoord = Val(TextBox1.Text)
Si je laisse le curseur sur la ligne, je vois alors Xcoord=0 ce qui est ...coment dire..tres ennuyeux.
le probleme vient pas (enfin je crois) des pages(19 ou thisDocument, car le cercle apparait mais aux coordonnees 0,0 au lieu de celles que je lui donne.

Reply

Marsh Posté le 17-07-2007 à 08:35:18    

J'ai trouve une solution ( je ne dis pas qu'elle est vraiment bonne mais elle marche)
 
J'attribue la valeur ä Xcoord et Ycoord en dehors de ma procedure, juste avantz d'appeler la fonction.
 
Dans la partie declaration du module, je declare Xcoord et Ycoord comme Public, a l'image de ce qui suit:
 
 
Public Xcoord As Double
Public Ycoord As Double
 
 
Public Sub TestDropShape()
 
Dim stencil As Visio.Document, mstCircle As Visio.Master
 
 
 
Set stencil = ThisDocument.Application.Documents.Open("Blocks Raised.vss" )
ThisDocument.Application.Windows(ThisDocument.Index).Activate
' Set the ActiveWindow to the drawing window.
Set mstCircle = stencil.Masters("Kreis" )
' Get the master named "Kreis" and drop that shape on the page!
ThisDocument.Pages(1).Drop mstCircle, Xcoord, Ycoord ' Drop the shape, mstCircle,
End Sub
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed