Aller au contenu

Executer une macro à l'ouverture d'un fichier


Netparty
 Partager

Messages recommandés

Coucou,

C'est pas du VBA mais bon, si jamais cela peut t'aider :

(startapp "C:\\Program Files\\Microsoft Office\\root\\Office16\\OneNote.exe") ; Dans le cas d'Office 2016
Citation

startapp (AutoLISP)

 
 
 

Starts a Windows application

(startapp appcmd[file]) 

Arguments

appcmd

A string that specifies the application to execute. If appcmd does not include a full path name, startapp searches the directories in the PATH environment variable for the application.

file

A string that specifies the file name to be opened.

Return Values

An integer greater than 0, if successful; otherwise nil.

Examples

The following code starts Windows Notepad and opens the acad.lsp file.

Command: (startapp "notepad" "acad.lsp")

33

If an argument has embedded spaces, it must be surrounded by literal double quotes. For example, to edit the file my stuff.txt with Notepad, use the following syntax:

Command: (startapp "notepad.exe" "\"my stuff.txt\"")

33

Il suffit ensuite d'enregistrer le fichier sous le nom acaddoc.lsp dans le dossier C:\Users\...\AppData\Roaming\Autodesk\AutoCAD 20##\R24.1\fra\Support (évidemment, remplacer "..." par le nom d'utilisateur et "##" par la version d'AutoCAD installée).
Ce fichier est chargé automatiquement à chaque ouverture de fichier (nouveau ou existant). Il existe évidemment d'autres moyen pour charger un fichier .lsp automatiquement à l'ouverture d'un fichier (cf. le cours de (gile) >>ici<<).

N'utilisant pas OneNote personnellement, je ne sais pas s'il y a des fichiers associés et donc s'il est possible d'ouvrir OneNote directement sur le bon fichier (avec un (getvar "DWGNAME") par exemple si tu nommes tes OneNote avec le nom du .dwg) en utilisant l'argument facultatif [file].

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

J'utilise ça :

ça appelle le shell pour ouvrir un fichier et donc ouvre le fichier suivant l'application par défault de celui - ci
 

et tu veux l'ouvrir quand ?

 

edit : MonFichier est le chemin du fichier

Public Function OuvrirFichier(MonFichier As String)
On Error GoTo OuvertureFichierErreur
   'vérifie si le fichier existe
   If Len(Dir(MonFichier)) = 0 Then
      OuvrirFichier = False
      Exit Function
   Else
   End If
   'ouvre le fichier dans son application associée
   Dim MonApplication As Object
   Set MonApplication = CreateObject("Shell.Application")
    MonApplication.Open (MonFichier)
    OuvrirFichier = True
   Set MonApplication = Nothing
Exit Function

OuvertureFichierErreur:
   Set MonApplication = Nothing
    OuvrirFichier = False
End Function

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Curlygoth a dit :

J'utilise ça :

ça appelle le shell pour ouvrir un fichier et donc ouvre le fichier suivant l'application par défault de celui - ci
 

et tu veux l'ouvrir quand ?

 

edit : MonFichier est le chemin du fichier

Public Function OuvrirFichier(MonFichier As String)
On Error GoTo OuvertureFichierErreur
   'vérifie si le fichier existe
   If Len(Dir(MonFichier)) = 0 Then
      OuvrirFichier = False
      Exit Function
   Else
   End If
   'ouvre le fichier dans son application associée
   Dim MonApplication As Object
   Set MonApplication = CreateObject("Shell.Application")
    MonApplication.Open (MonFichier)
    OuvrirFichier = True
   Set MonApplication = Nothing
Exit Function

OuvertureFichierErreur:
   Set MonApplication = Nothing
    OuvrirFichier = False
End Function

 

Bonjour

 

J'aimerais que le code s’exécute quand j'ouvre un fichier dwg spécifique

 

Bonne journée

 

Lien vers le commentaire
Partager sur d’autres sites

il faut juste que tu verifies :

thisdrawing.name = [NOM_DE_TON_FICHIER]

dans le module thisdrawing
 

Private Sub AcadDocument_Activate()

if thisdrawing.name = [NOM_DE_TON_FICHIER] then call Ouvrirfichier([NOM_DE_TON_FICHIER])

End Sub

attention se simple code executera a chaque fois que ton dessin sera actif ! tu devrais je pense le compléter pour vérifié si le fichier à ouvrir est en lecture seul ou non.

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Re-bonjour @Curlygoth@Luna

J'ai encore une petite question

J'ai adapté mon code est cela fonctionne super bien.

J'ai placé dans Thisdrawing

Private Sub AcadDocument_Activate()

'' MON CODE

End Sub

Mais j'aimerai que cela fonctionne sur une version Lt

Y a t-il une possibilité de le faire ?

 

Merci d'avance

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Malheureusement les versions LT ne prennent pas en compte les langages de programmation....

Seulement les scrpit mais vu que tu dois lancer un scrpit à l'ouverture il te faut à minima le déclenchement par  "évenement" (ouverture d'un DWG) et ça c'est unqiuement par programmation et non en script

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 38 minutes, Curlygoth a dit :

Malheureusement les versions LT ne prennent pas en compte les langages de programmation....

Seulement les scrpit mais vu que tu dois lancer un scrpit à l'ouverture il te faut à minima le déclenchement par  "évenement" (ouverture d'un DWG) et ça c'est unqiuement par programmation et non en script

Merci

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
 Partager

×
×
  • 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é