Aller au contenu

Avec F8 ça marche... mais ça marche pas...


Messages recommandés

Posté(e)

Salut,

Je patauge en VB...

J'ai créés une fonction qui récupère des données dans une variable USERS afin de remplir une boite de dialogue...

quand je fait du pas à pas avec F8, ma fonction fonctionne 'pécable...

Quand je lance la macro depuis AutoCAD, nada ! fonctionne pas....

 

Pour info je ne cache pas ma boite de dialogue au moment de la récup de USERS.

 

Avez-vous déjà rencontré ce problème ?

 

Y aurait- t'il une astuce, genre régénération de boite de dialogue, ou autre...

 

(je ne sais pas trop quoi vous donner comme code, sorti de la multitude de petit codes qui se croise ça ne voudrais rien dire...)

 

merci d'avance !

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut,

merci de t'interressaer à mon problème.

comme je l'ai expliqué ci-dessus, je ne sais pas trop quoi mettre comme code car j'ai plein de sous-routine, mais celui qui ne fonctionne pas est celui là :

 

Sub Liste_cartouche_Change()
   Dim Cart As String
   Dim VarUsers2 As String
   
   Cart = Chr(34) & Liste_cartouche.Value & Chr(34)
   ThisDrawing.SendCommand "(recup-donnee-cartouche" & " " & Cart & ")" & vbCr
   
   Initialise_Cartouche_SC
   
   VarUsers2 = ThisDrawing.GetVariable("USERS2")
     
   c = Remplis_Cartouche_SC(VarUsers2, 1)
  
End Sub

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Pour ma part,

 

j'ai réaliser un programme qui liste les données d'un bloc en particulier et il permet de ré-injecter les valeurs des attributs du bloc dans les TextBox de ma USERFORM.

 

 

Est ce que tu peux être plus précis (SVP) sur l'usage que tu souhaite en faire.

 

A+

Posté(e)

C'est pour faire une boite de dialogue qui automatise le remplissage d'un cartouche à l'aide de boutons d'options ou de textes à rentrer (dont certains avec une liste par défaut)

 

Le principe :

- Je lance la BD

- J'ai une liste de cartouche prédéfinis à choisir (cette liste je la récupère dans la BR selon les utilisateurs)

- Chaque cartouche est lié à un code "texte" reprenant tous ce que contiens le cartouche

- Quand je change de cartouche dans ma liste, le code récupère la "liste texte" dans USERS2.

- De ce texte, il active ou pas certaines cellulles...

 

... et c'est là ou sa plante : ça n'active rien du tout (alors que je sais que ma liste est bien passé en revu, car quand je fais du pas à pas avec F8, ça fonctionne...)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Ci-dessous le code de mon bouton qui me permet de ré-injecter les valeurs de s attributs dans les TextBox de ma Userform.

 

 

 

Private Sub CommandButton2_Click()

UserForm2.Hide

 

'permet de récuperer des données

Dim re(0 To 10) As Variant

r = UserForm2.TextBox1.Value

 

Dim objJeuSel As AcadSelectionSet

Dim entbloc As AcadEntity

Dim codegroup(0 To 1) As Integer

Dim valgroup(0 To 1) As Variant

Dim vntattrib As Variant

Dim i, inttotal As Integer

Set objJeuSel = ThisDrawing.SelectionSets.Add("jeu27") 'creer un jeu de selection

codegroup(0) = 0

valgroup(0) = "INSERT" 'permet de dire à la recherche que l'on recherche un bloc

codegroup(1) = 2

valgroup(1) = "blocdo" 'et que le bloc rechercher à pour nom rep...

objJeuSel.Select acSelectionSetAll, , , codegroup, valgroup 'la selection est fait

 

For Each entbloc In objJeuSel 'pour tous les blocs rep... dans le jeu de selection

If entbloc.HasAttributes Then 'si le bloc a des attributs

vntattrib = entbloc.GetAttributes 'vntattrib prend la valeur d'attribut

If vntattrib(0).TextString = r Then

 

For i = LBound(vntattrib) To UBound(vntattrib) 'boucle fait avec un compteut qui dépend du nombre d'attributs

If vntattrib(i).TagString = "info1" Then

re(0) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info2" Then

re(1) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info3" Then

re(2) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info4" Then

re(3) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info5" Then

re(4) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info6" Then

re(5) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info7" Then

re(6) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info8" Then

re(7) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info9" Then

re(8) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info10" Then

re(9) = CVar(vntattrib(i).TextString)

ElseIf vntattrib(i).TagString = "info11" Then

re(10) = CVar(vntattrib(i).TextString)

End If

Next i

Else: inut2 = 0

End If

End If

Next

 

UserForm1.TextBox7.Value = re(0)

UserForm1.TextBox8.Value = re(1)

UserForm1.TextBox1.Value = re(2)

UserForm1.TextBox2.Value = re(3)

UserForm1.TextBox3.Value = re(4)

UserForm1.TextBox4.Value = re(5)

UserForm1.TextBox5.Value = re(6)

UserForm1.TextBox6.Value = re(7)

 

If re(8) = 1 Then

UserForm1.OptionButton1.Value = True

Else

UserForm1.OptionButton2.Value = True

End If

 

If re(9) = 1 Then

UserForm1.OptionButton3.Value = True

Else

UserForm1.OptionButton4.Value = True

End If

 

If re(9) = 0 Then

If re(10) = 1 Then

UserForm1.ComboBox1.BackColor = 128

intretour = MsgBox("Vérifiez que la catégorie des ancres dans la liste déroulante est :" & vbLf _

& " ARTEON 1T3", 64, "VERIFICATION")

ElseIf re(10) = 2 Then

UserForm1.ComboBox1.BackColor = 128

intretour = MsgBox("Vérifiez que la catégorie des ancres dans la liste déroulante est :" & vbLf _

& " ARTEON 2T5", 64, "VERIFICATION")

Else

UserForm1.ComboBox1.BackColor = 128

intretour = MsgBox("Vérifiez que la catégorie des ancres dans la liste déroulante est :" & vbLf _

& " ARTEON 5T", 64, "VERIFICATION")

End If

End If

objJeuSel.Delete 'permet d'effacer les éléments du jeu de selection

'c'est important pour pouvoir relancer le programme.

 

End Sub

 

 

Si mon code ne t'inspire pas tu peux me transmettre ton programme et je veux bien y jeter un oeil ou le sdeux.

 

A+

 

Posté(e)

OK !

merci de ton aide, je vais essayer de comprendre ta méthode.

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut,

 

ne peut on pas l'extrtaire directement en VBA ?

C'est ce que je suis en train de regarder (lire la BR en VBA)

merci.

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité