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 :

Ouvrir un fichier autocad à partir d'excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Points : 51
    Points
    51
    Par défaut Ouvrir un fichier autocad à partir d'excel
    Bonsoir, je suis débutant en VBA, et je dois améliorer un programme.

    J'ai cherché un peu partout, mais honnêtement j'ai pas trouver, j'ai tester "shell", les liens hypertextes... J'ai bidouillé dans tout les sens.

    Mon problème est que l'ancien programme permet d'ouvrir et d'importer des données et d'ouvrir autocad, à partir de la commande : "Application.GetOpenFilename()", mais qui permet de choisir le fichier.
    Moi je ne veux pas laisser le choix à l'utilisateur.

    Autre problème, il faut que la commande mette en oeuvre un lien relatif car le dossier contenant mon fichier excel et mon fichier autocad doivent pouvoir être déplacés.

    Voici mon code actuel qui marcher mais qui ne fait pas ce que je voudrai :
    La ligne en question : Fichier = Application.GetOpenFilename("fichier DWG (*.dwg), *.dwg", , "G:\LP CAO DAO\PROJET D'ENTREPRISE")
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Option Explicit
    Public AcadObj As Object
    Public AcadDoc As Object
    Public AcadUtil As Object
    Public AcadEspaceObj As Object
    Public Fichier As String
     
    Public ListeObjetDessinAutocad(10) As Object
    Public ListeNomDessinAutocad(10) As String
    Public NombreDessinAutocad As Integer
     
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''LANCEMENT EXPORTATION
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub LancerExportation()
     
    Sheets("Divers").Unprotect
     
        Fichier = Application.GetOpenFilename("fichier DWG (*.dwg), *.dwg", , "G:\LP CAO DAO\PROJET D'ENTREPRISE")
        'Fichier = Application.GetFile("G:\LP CAO DAO\PROJET D'ENTREPRISE\gabarit.dwg")
        'Fichier = Shell("gabarit.dwg")
     
     
     
        If Fichier = "Faux" Then
            Sheets("Divers").Protect
            Exit Sub
        Else
            Sheets("Divers").Cells(LigneLibreFichier, 7).Value = Fichier
            Sheets("Divers").Select
            Sheets("Divers").Range("D3:E1500").Select
            Sheets("Travail").Select
     
            InitialiserExport
        End If
     
    Sheets("Divers").Protect
     
    End Sub
    Merci à vous.
    Cordialement.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonsoir,

    Application.GetOpenfilename.. ne permet pas de lancer autocad ni d'ouvrir le fichier dessin mais seulement de récupérer le chemin et le nom de ce fichier ..

    le lancement d'autocad et l'ouverture du fichier doit être plus loin dans ton code ... voir peu-être initialiserExport.

  3. #3
    Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Points : 51
    Points
    51
    Par défaut
    Merci de la réponse rapide.

    Oui effectivement c'est plus tard.

    Mais je voudrai que le programme face la même opération mais qui prenne toujours de récupéré le fichier et le chemin gabarit.dwg à la place de s'embeter avec GetOpen... et en relatif.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    en relatif par rapport à quoi ?


    sinon en absolu ta ligne devient simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier = "G:\LP CAO DAO\PROJET D'ENTREPRISE\gabarit.dwg"

  5. #5
    Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Points : 51
    Points
    51
    Par défaut
    oui je suis d'accord mais la suite du programme ne suit pas

    Normalement cette procédure, me semble-t-il, ouvre le fichier autocad et récupère les calques qu'il contient, mais avec la derniere modif, plus rien ne se passe :
    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
    16
    17
    Sub InitialiserExport()
     
        On Error Resume Next
            Set AcadObj = GetObject(, "AutoCAD.Application")
            If Err.Number <> 0 Then
                Set AcadObj = CreateObject("AutoCAD.Application")
                NombreDessinAutocad = -1
            End If
            AcadObj.Visible = True
     
            Set AcadDoc = AcadObj.ActiveDocument
            Set AcadUtil = AcadDoc.Utility
            Set AcadEspaceObj = AcadDoc.ModelSpace
     
        Excel.Application.Visible = True
     
    End Sub
    En Relatif:

    Mes 2 fichiers (excel et autocad) sont dans un répertoire "PROJET D'ENTREPRISE", je voudrai que le lien parte du fichier excel et non pas de la racine, ici G:, Ceci m'est indispensable car je travail mon projet sur Clef USB et sur différent pc, l'entreprise, l'iut et chez moi :/.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    le code d'ouverture fichier manque il doit utiliser ta variable "fichier" et je le vois pas la ...


    pour le répertoire .:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Fichier = ThisWorkbook.path & "\PROJET D'ENTREPRISE\gabarit.dwg"
     
    msgBox "est-ce bien le bon répertoire : " & vbCrlf & Fichier

  7. #7
    Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Points : 51
    Points
    51
    Par défaut
    j'ai mis un point d'arrêt et apparament c'est la ligne : qui affiche le ficher .dwg

    Merci de m'aider mais il faut pas que je vous empêche de dormir

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    cette ligne ne fait que rendre visible ton application autocad... elle n'ouvre pas le fichier que tu as choisi avec getOpenfileName.....

    j'ai pas autocad ici, pour voir les méthode disponibles ( F2 dans l'éditeur VBA d'autocad..)

    mais j'aurais bien vu un code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AcadObj.Visible = True
    AcadObj.Open fichier

  9. #9
    Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Février 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2012
    Messages : 49
    Points : 51
    Points
    51
    Par défaut
    Merci beaucoup ça marche finalement, il y a juste de changer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         Fichier = ThisWorkbook.Path & "\gabarit.dwg"
     
    MsgBox "est-ce bien le bon répertoire : " & vbCrLf & Fichier
    Le reste n'avais pas besoin de modification.

    Merci pour le temps consacré.

    Et c'est le première fois que j'utilise un forum et j'en suis très contant

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

Discussions similaires

  1. [Toutes versions] VBA : Ouvrir un fichier Word à partir d'Excel en désactivant la mise à jour des données.
    Par napidev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2014, 16h07
  2. Réponses: 6
    Dernier message: 29/08/2010, 20h59
  3. Comment ouvrir un fichier Acrobat à partir du VBA d'Excel?
    Par ac264 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/03/2010, 14h08
  4. Réponses: 9
    Dernier message: 20/06/2005, 16h47
  5. [DOM] [JAVA + XML] Ouvrir un fichier xml à partir d'une url
    Par Hell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2005, 00h06

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