IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro Excel qui active des fonctions Autocad [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 20
    Par défaut Macro Excel qui active des fonctions Autocad
    Bonjour à tous !
    Etant assez novice en programmation, j'ai quelques difficultés concernant une macro qui me permettrait de réaliser la fonction "insérer bloc" dans la feuille active d'autocad.
    Je sais que le code doit surement ressembler à quelque chose dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AcadApp.ActiveDocument.SendCommand "(insert ""Nom du répertoire"")"
    Mais il faudrait qu'en plus de l'insérer, on ai le choix du point d'insertion et de l'orientation du bloc.
    J'ai essayé avec filedia 0 pour avoir les lignes de commandes mais je n'arrive pas à extraire le code et je ne trouve pas grand chose à ce sujet sur internet.
    Si vous pouvez m'éclairez

    Pierre

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub blocktest()
     Dim oBlkRef As AcadBlockReference
     Dim position(2) As Double
     Dim sName As String
    position(0)= 1500
    position(1)=200
     
     sName = "c:\testblock.dwg"
     Set oBlkRef = AcadApp.ThisDrawing.ModelSpace.InsertBlock(position, sName, 1#, 1#, 1#, 0#)
     End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 20
    Par défaut
    Bonjour,
    Merci pour la réponse !
    J'ai rentré les lignes de code dans un module mais j'obtiens une erreur que j'avais à chaque fois lors des différents test que j'ai fait, c'est à dire "Erreur de compilation, type non défini par l'utilisateur" dès la ligne 2
    D'où viens cette erreur ?

    Pierre

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Si tu n'as pas cocher la case AutoCAD dans les références! C'est normal.
    Utilise la méthode creatobject("autocad.application")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub blocktest()
    Dim AcadApp as object
     Dim oBlkRef As object
     Dim position(2) As Double
     Dim sName As String
    position(0)= 1500
    position(1)=200
     
     sName = "c:\testblock.dwg"
    AcadApp = creatobject("autocad.application")
    AcadApp.visible=true
    Dim doc
    Set doc=AcadApp.documents.add
     Set oBlkRef = doc.ModelSpace.InsertBlock(position, sName, 1#, 1#, 1#, 0#)
     End Sub
    Dernière modification par Invité ; 13/05/2015 à 13h09.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 20
    Par défaut
    Bonjour,
    J'ai modifier le code pour qu'il corresponde à mon problème mais malheureusement cela ne marche toujours pas..J'ai bien activer toutes les références Autocad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Autocadt()
    Dim AcadApp as object
     Dim oBlkRef As object
     Dim position(2) As Double
     Dim sName As String
    position(0)= 1500
    position(1)=200
     
     sName = "c:\testblock.dwg"
    AcadApp = CreateObject("autocad.application")
    AcadApp.visible=true
    Dim doc
    Set doc=AcadApp.documents.add
     Set oBlkRef = doc.ModelSpace.InsertBlock(position, sName, 1#, 1#, 1#, 0#)
     End Sub
    J'ai l'erreur 91: Variable objet ou variable de bloc WITH non définie
    A quoi sert la fonction Createobject ? Enfin que fait-elle exactement ? C'est cette ligne qui à l'air de ne pas fonctionner lorsque j’exécute le programme..
    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    bonjour,
    avec ce code tu n'as pas à activer les différences!
    dessolé! set AcadApp = CreateObject("AutoCAD.Application").
    CreateObject créer une nouvelle instance d'autocad!

    CreateObject("AutoCAD.Application") permet d'utiliser AutoCad sans tenir compte de la version et donc sans activer les références!
    Dernière modification par Invité ; 18/05/2015 à 11h37.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Classe Java qui implémente des fonctions oracles
    Par kamacho25 dans le forum Outils
    Réponses: 0
    Dernier message: 28/09/2007, 14h46
  2. Réponses: 1
    Dernier message: 20/12/2006, 20h55
  3. [VBA-E]Eviter d'updater un fichiers excel qui a des liens
    Par tinose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2006, 19h27
  4. Creer des fonctions qui émule des fonctions Access
    Par steelidol dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2006, 18h42
  5. Macro excel qui ferme tous les fichiers .xls
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/01/2006, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo