[VBA userform] Erreur d'exécution 424 : Objet requis
3 participants
Page 1 sur 1
[VBA userform] Erreur d'exécution 424 : Objet requis
Bonjour à tous,
Je débute tout juste sur le code VBA avec l'éditeur sur CATIA (j'utilise la V5R20), en suivant quelques indications d'un cours pdf en anglais, j'essaie de créer un code qui me permettrait de générer un arbre cylindrique avec 3 cylindres de longueurs & rayons différents en utilisant un UserForm.
Je me suis essayé à la tâche, mais me voilà face à ma première erreur quand j'exécute l'application. J'ai pioché des infos à droite à gauche mais je ne trouve pas mon soucis (qui doit être évident vu mon niveau actuel), si vous pouviez m'aider et par la même occasion m'orienter vers des tutos ou auteurs qui me permettraient de me lancer plus facilement dans le bain, ce serait le top.
Bref, voici mon code actuel :
et mon code sur le bouton OK :
Et voici la ligne en surbrillance quand je mets débogage : Set oCurrentSketch = oPartBody.Sketches.Add(oPlaneYZ)
Un grand merci d'avance, bonne journée à tous
Je débute tout juste sur le code VBA avec l'éditeur sur CATIA (j'utilise la V5R20), en suivant quelques indications d'un cours pdf en anglais, j'essaie de créer un code qui me permettrait de générer un arbre cylindrique avec 3 cylindres de longueurs & rayons différents en utilisant un UserForm.
Je me suis essayé à la tâche, mais me voilà face à ma première erreur quand j'exécute l'application. J'ai pioché des infos à droite à gauche mais je ne trouve pas mon soucis (qui doit être évident vu mon niveau actuel), si vous pouviez m'aider et par la même occasion m'orienter vers des tutos ou auteurs qui me permettraient de me lancer plus facilement dans le bain, ce serait le top.
Bref, voici mon code actuel :
- Code:
Private Sub UserForm_Click()
Dim iCenterX As Integer
Dim iCenterY As Integer
Dim dPi As Double
Dim oCurrentSketch As Sketch
Dim oCurrentCircle1 As AnyObject
Dim iCurrentLevel As Integer
Dim oPart As Part
Dim oPartBody As Body
Dim oPlaneYZ As Reference
Dim NrPad As Integer
Sub CylCreation(length, radius)
Set oCurrentSketch = oPartBody.Sketches.Add(oPlaneYZ)
Dim oFactory2D As Factory2D
Set oFactory2D = oCurrentSketch.OpenEdition
Set oCurrentCircle1 = oFactory2D.CreateClosedCircle(iCenterX, iCenterY, radius)
Dim constraints1 As Constraints
Set constraints1 = oCurrentSketch.Constraints
Dim ref2 As Reference
Set ref2 = oPart.CreateReferenceFromObject(oCurrentCircle1)
Dim constraint1 As Constraint
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)
constraint1.Mode = catCstModeDrivingDimension
Dim Length1 As Dimension
Set Length1 = constraint1.Dimension
length.Value = radius
oCurrentSketch.CloseEdition
Dim oPad As Pad
Set oPad = oPart.ShapeFactory.AddNewPad(oCurrentSketch, length + iCurrentLevel)
oPad.SecondLimit.Dimension.Value = iCurrentLevel * -1
iCurrentLevel = iCurrentLevel + length
End Sub
et mon code sur le bouton OK :
- Code:
Private Sub OK_Click()
iCenterY = 0
iCenterX = 0
dPi = 3.14159265358979
iCurrentLevel = 0
Dim oPartDocument As Document
Set oPartDocument = CATIA.Documents.Add("Part")
Set oPart = oPartDocument.Part
Set oPartBody = oPart.MainBody
Set oPlaneYZ = oPart.CreateReferenceFromGeometry(oPart.OriginElements.PlaneYZ)
Dim Length1 As Double
Dim Length2 As Double
Dim Length3 As Double
Dim Diam1 As Double
Dim Diam2 As Double
Dim Diam3 As Double
Length1 = CDbl(L1.Value)
Diam1 = CDbl(D1.Value)
If Length1 > 0 Then
If Diam1 > 0 Then
Call CylCreation(Length1, Diam1)
End If
End If
Length2 = CDbl(L2.Value)
Diam2 = CDbl(D2.Value)
If Length2 > 0 Then
If Diam2 > 0 Then
Call CylCreation(Length2, Diam2)
End If
End If
Length3 = CDbl(L3.Value)
Diam3 = CDbl(D3.Value)
If Length3 > 0 Then
If Diam3 > 0 Then
Call CylCreation(Length3, Diam3)
End If
End If
oPart.Update
CATIA.ActiveWindow.ActiveViewer.Reframe
Et voici la ligne en surbrillance quand je mets débogage : Set oCurrentSketch = oPartBody.Sketches.Add(oPlaneYZ)
Un grand merci d'avance, bonne journée à tous
chychal- timide
- Messages : 5
Date d'inscription : 28/01/2017
Localisation : Toulouse
Re: [VBA userform] Erreur d'exécution 424 : Objet requis
Salut Julien,
Bienvenu sur ce forum.
Dans ton premier code tu déclares 2 fonctions "Private Sub UserForm_Click()" et "Sub CylCreation(length, radius)" mais il n'y a q'un seul "End Sub".
Tu n'as pas de fonction CATMain? Peux tu poster une image de ta userform?
Bienvenu sur ce forum.
Dans ton premier code tu déclares 2 fonctions "Private Sub UserForm_Click()" et "Sub CylCreation(length, radius)" mais il n'y a q'un seul "End Sub".
Tu n'as pas de fonction CATMain? Peux tu poster une image de ta userform?
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: [VBA userform] Erreur d'exécution 424 : Objet requis
Bonsoir Marc & merci pour ta réponse,
Je te poste ma UserForm :
Pour ce qui est de la fonction CATMain, je devrais la déclarer en premier?
Encore merci et bonne soirée
Je te poste ma UserForm :
Pour ce qui est de la fonction CATMain, je devrais la déclarer en premier?
Encore merci et bonne soirée
chychal- timide
- Messages : 5
Date d'inscription : 28/01/2017
Localisation : Toulouse
Re: [VBA userform] Erreur d'exécution 424 : Objet requis
Salut Julien,
Oui en général il faut un module avec une fonction CATmain qui au minimum affiche la UserForm.
Voici un lien vers un tuto qui correspond à ce que tu veux faire :
https://drive.google.com/drive/folders/0BxqqyROc191GZjhpT1l4TkpqcWc.
Si tu as besoins d'aide poste bien l'ensemble de tes codes (modules et userform)
Oui en général il faut un module avec une fonction CATmain qui au minimum affiche la UserForm.
Voici un lien vers un tuto qui correspond à ce que tu veux faire :
https://drive.google.com/drive/folders/0BxqqyROc191GZjhpT1l4TkpqcWc.
Si tu as besoins d'aide poste bien l'ensemble de tes codes (modules et userform)
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: [VBA userform] Erreur d'exécution 424 : Objet requis
Bonsoir Marc et merci beaucoup pour ce lien, je vais tenter de regarder ça dans la semaine. Bonne soirée & bonne continuation!
chychal- timide
- Messages : 5
Date d'inscription : 28/01/2017
Localisation : Toulouse
Re: [VBA userform] Erreur d'exécution 424 : Objet requis
Il y a quelques erreurs dans dans ton code, comme l'a dit Marc, il manque déjà des End, End Sub ...
Je pense qu'il faut que tu revois en un 1er temps la structure de ton code
Sub()
...
[code]
...
End Sub
Pour ce qui est du CATmain, c'est n'est pas obligatoire, c'est seulement si tu veux par la suite exploiter ta macro via un bouton que tu rajouterais dans la barre d'outil.
Tu peux tout a fait développer ton interface et la faire fonctionner via l'éditeur, et à la fin tu créé une nouvelle macro qui appellera ton interface avec la Sub CATmain()
Je pense qu'il faut que tu revois en un 1er temps la structure de ton code
Sub()
...
[code]
...
End Sub
Pour ce qui est du CATmain, c'est n'est pas obligatoire, c'est seulement si tu veux par la suite exploiter ta macro via un bouton que tu rajouterais dans la barre d'outil.
Tu peux tout a fait développer ton interface et la faire fonctionner via l'éditeur, et à la fin tu créé une nouvelle macro qui appellera ton interface avec la Sub CATmain()
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Sujets similaires
» 3D browser à l'intérieur de la userform
» userform ouvert _ possibilité d'agir sur le .part
» Envelppe d'un objet
» Objet VBA : Fleche de coupe dans un Draw
» Insertion objet à partir d'un catalogue
» userform ouvert _ possibilité d'agir sur le .part
» Envelppe d'un objet
» Objet VBA : Fleche de coupe dans un Draw
» Insertion objet à partir d'un catalogue
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|