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 d'une application déjà ouverte.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    technicien
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Par défaut Ouvrir un fichier d'une application déjà ouverte.
    Bonjour
    j'ai créé une macro qui m'ouvre un fichier (solidworks en l’occurrence), ça marche parfaitement sur différent logiciel type excel, pdf.
    Mais quand je lui demande de m'ouvrir un fichier solidworks, il me relance systématiquement solidworks (ce qui est tres long) au lieu de m'ouvrir le fichier toute suite.

    j'ouvre mes fichiers par la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.FollowHyperlink cible2 ' cible2 etant le chemin complet
    quelqu'un a til une solution svp.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ça va sens dire mais ca va toujours mieux en le disant, tu as solidworks installé sur ta machine?

    Si tu as déjà une instance solidworks ouverte regardes du côté de getobject

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonsoir
    un peu comme workbooks.open pour excel

    pour cela il faudrait que tu te renseigne si l'application fourni les api

    ou si il y a la possibilité de lancer en ligne de commande(bath/cmd)
    auquel cas en vba la commande shell sur cmd avec les commandes en arguments
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour, et Bonjour Patrick,
    solidworks est un logiciel de Cao, mais c'est une usine à gaz comme Catia!

    Ça démarre au starter alors quand le moteur est chaud plus question de l'éteindre.

    Mais ça ce manipule avec creatovject mais surtout getobject.

  5. #5
    Membre à l'essai
    Homme Profil pro
    technicien
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Par défaut
    merci de vos réponses ça fait plaisir. oui j'ai bien solidworks et effectivement il est tres long a ouvrir.
    je n'ai jamais utiliser "getobject " comme cela peut il marcher?
    si solidworks n'est pas ouvert va til me l'ouvrir avant ? si il est deja ouvert va til ouvrir simplement le fichier demander?
    dois faire un "si soliworks ouvert" alors .... sinon ....?

  6. #6
    Invité
    Invité(e)
    Par défaut
    On peut considérer solidworks comme déjà ouvert et si il ne l'est pas l'ouvrir!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function Opensolidworks() as Object
    On error resume Next
    Set Opensolidworks=getobject(,"solidworks.application")
    If err<>0 then
    Err.clear
    Set Opensolidworks=creatobject("solidworks.application")
    End if
    On error toto 0
    Opensolidworks.visible=True
    End function
    Sub test
    Set slk=Opensolidworks
    Set doc=slk.documents.open(mydoc)
    End sub
    Dernière modification par Invité ; 09/10/2015 à 09h16.

  7. #7
    Membre à l'essai
    Homme Profil pro
    technicien
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Par défaut
    j'ai essayer un copier coller dans un module en dehors de ma macro , j'ai corrigé quelques fautes frappe mais ça ne marche pas . peux tu verifier mes correction stp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function Opensolidworks() As Object
    On Error Resume Next
    Set Opensolidworks = GetObject(, "solidworks.application")
    If Err <> 0 Then
    Err.Clear
    Set Opensolidworks = CreateObject("solidworks.application") 
    End If
    On Error GoTo 0 ''''' tu as mis toto je ne sais pas trop quoi mettre  alors g mis goto mais je ne suis pas convaincu
    Opensolidworks.Visible = True  ''''' il me met un erreur 91!
    End Function
    Sub test()
    Set slk = Opensolidworks
    Set doc = slk.documents.Open(mydoc)
    End Sub

  8. #8
    Invité
    Invité(e)
    Par défaut
    oui j'ai écris sur mon téléphone portable petits deuil, gros doigts !

    indépendamment du Opensolidworks.Visible = True qu' est ce que ça donne?

    effectivement On Error GoTo 0solidworks c'est même pas de la culture générale pour moi!, nous devrons y allé a tâtons!

    http://www.developpez.net/forums/d10...s/#post5954985
    Dernière modification par LittleWhite ; 30/04/2016 à 12h09. Motif: Balises code

  9. #9
    Membre à l'essai
    Homme Profil pro
    technicien
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Par défaut
    j'ai apporter un correctif sur solidworks.application qui passe en sldworks.application, du coup la fonction passe. je dois avoir une erreur sur la derniere ligne de sub test()
    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
    Function Opensolidworks() As Object
    On Error Resume Next
    Set Opensolidworks = GetObject(, "sldworks.application")
    If Err <> 0 Then
    Err.Clear
    Set Opensolidworks = CreateObject("sldworks.application")
    End If
    On Error GoTo 0
    Opensolidworks.Visible = True
    End Function
    Sub test()
    Set slk = Opensolidworks
    'Set doc = slk.documents.Open(mydoc)
    Set doc = slk.documents.Open("Z:\Services\BEBM\l\lg08.sldprt") 'fichier à ouvrir
     
    End Sub
    sur le lien que tu m'a envoyer il utilise "Set Part = swApp.Documents.Add". j'ai aussi essayer de remplcer
    Set doc = slk.documents.Open("Z:\Services\BEBM\l\lg08.sldprt") erreur 438 propriete ou methodes non geree par cet objet
    par
    Set doc = swApp.documents.Open("Z:\Services\BEBM\l\lg08.sldprt") erreur 424 objet requis

  10. #10
    Invité
    Invité(e)
    Par défaut
    on va faire régresser le code le temps vérifi que tous ce passe bien!

    le on error inhibe les erreur!

    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
    Function Opensolidworks() As Object
    'On Error Resume Next
    'Set Opensolidworks = GetObject(, "sldworks.application")
    'If Err <> 0 Then
    'Err.Clear
    Set Opensolidworks = CreateObject("sldworks.application")
    'End If
    'On Error GoTo 0
    'Opensolidworks.Visible = True
    End Function
    Sub test()
    Set slk = Opensolidworks
    'Set doc = slk.documents.Open(mydoc)
    Set doc = slk.documents.Open("Z:\Services\BEBM\l\lg08.sldprt") 'fichier à ouvrir
     
    End Sub

  11. #11
    Membre à l'essai
    Homme Profil pro
    technicien
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Par défaut
    erreur 438 propriété ou methodes non gérée par cet objet. et se plante sur la dernier ligne =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set doc = slk.documents.Open("Z:\Services\BEBM\l\lg08.sldprt")
    au passage la fonction m'ouvrait bien solidworks.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set doc = slk.OpenDoc6("C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\api\chair.sldprt", swDocPART, swOpenDocOptions_Silent, "", fileerror, filewarning)

    http://help.solidworks.com/2013/engl...Example_VB.htm

  13. #13
    Membre à l'essai
    Homme Profil pro
    technicien
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Par défaut
    erreur 13 incompatibilité de type
    j'essaie de bidouille aussi. bizarre qu'on arrive pas a ouvrir un fichier quand le logiciel est ouverte sans que ça genere une nouvelle ouverture logiciel!!

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour ,bonjour Rdurupt

    essayez le chemin sans extention pour voir en faisant une recherche j'ai lu ca
    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
    41
    42
    43
    44
    45
    46
    47
    48
    Dim swApp As SldWorks.SldWorks = Nothing
    Dim swModel As SldWorks.ModelDoc2 = Nothing
    Dim swModelExt As SldWorks.ModelDocExtension = Nothing
    Dim swBOMAnnotation As SldWorks.BomTableAnnotation = Nothing
    Dim swBOMFeature As SldWorks.BomFeature = Nothing
    Dim swTableAnno As SldWorks.TableAnnotation = Nothing
     
    Dim ModelName As String = ""
    Dim bExcelResult As Boolean = False
     
    Const BOMTemplate As String = "C:\YourBOMTemplatePath\MyBOMTemplate.sldbomtbt"
    Const xlSavePath As String = "C:\YourExcelPathHere\"
     
    swApp = GetObject(, "SldWorks.Application")
     
    If swApp IsNot Nothing Then
     
         swModel = swApp.ActiveDoc
         Dim DocType As Integer = swModel.GetType()
     
          If Not DocType = 2 Then
               MessageBox.Show("You Must Run This Macro Inside A SolidWorks Assembly!", _
                                                  "SolidWorks Document Type Error", MessageBoxButtons.OK, _
                                                  MessageBoxIcon.Exclamation)
               Application.Exit()
          End If
     
          If DocType = 2 Then
     
                ModelName = swModel.GetPathName()
                ModelName = Path.GetFileNameWithoutExtension(ModelName)
     
                swModelExt = swModel.Extension
                swBOMAnnotation = swModelExt.InsertBomTable2(BOMTemplate, -1.0, 0.0, _
                                                                                                   swBomType_e.swBomType_PartsOnly, _
                                                                                                   "000-000-000", False)
                 swBOMFeature = swBOMAnnotation.BomFeature
                 swTableAnno = swBOMAnnotation
     
                 Dim xlSaveName As String = xlSavePath + ModelName + ".xls"
     
                 bExcelResult = swTableAnno.SaveAsText(xlSaveName, vbTab)
                 swBOMFeature.GetFeature.Select2(False, 0)
                 swModelExt.DeleteSelection2(0)
     
          End If
     
    End If
    EDIT:
    d'apres ce que je vie,ns de lire aussi il semblerait que meme en late binding (createobject /getobject)il faut quand meme activer la reference
    “SldWorks 20XX Type Library”
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [Débutant] Ouvrir un fichier dans une application déjà ouverte
    Par FranckM57 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/10/2014, 11h14
  2. [WD14] Ouvrir un fichier avec une application externe via LanceAppli()
    Par Fastolph dans le forum WinDev
    Réponses: 13
    Dernier message: 28/09/2011, 09h26
  3. Comment ouvrir un fichier avec une application java ?
    Par chihaoui_med dans le forum Général Java
    Réponses: 3
    Dernier message: 05/11/2009, 13h58
  4. ouvrir un fichier avec une application avec system() ?
    Par supergrey dans le forum Linux
    Réponses: 7
    Dernier message: 03/05/2008, 09h04
  5. ouvrir un fichier avec une application quelconque
    Par madlozoz dans le forum Windows
    Réponses: 4
    Dernier message: 03/02/2008, 12h41

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