VBA : Objet dessin CAO => Convertir

quelqun

XLDnaute Nouveau
Re-Bonjour, je me permet de poser une nouvelle question dans ce post, quelques messages plus bas.


Bonjour,

Je suis en panne, impossible de trouver une solution. Sous excel, la fonction "getopenfile" me permet de demander à l'utilisateur le fichier qu'il veut ouvrir puis ce fichier s'ouvre sous excel.

Mais aujourd"hui je suis sous Visio, et la fonction getopenfile n'est pas reconnue.

J'ai trouvé ce code qui me permet d'ouvrir un document visio depuis visio.

"Dim visApp As Visio.Application
Set visApp = Application
Dim visDoc As Visio.Document
visApp.Application.DoCmd (VisUICmds.visCmdFileOpen)
Set docObj = visApp.ActiveDocument"

Mais j'ai besoin d'ouvir un document DXF (ou DWG) sous visio. Donc à l'ouverture de la boite de dialogue je modifie le type de d'extensions que je recherche. Mais serait il possible de mettre dxf/dwg par défault (ou alors "tous les documents").

Si l'un d'entre vous réussi à m'éclairer j'en serais ravie!!

Merci d'avance.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : VISIO VBA ouvir un fichier dxf

Bonjour Quelqun (ou plutôt Quelqune :p) et bienvenue :),
L'enregistreur de macro me donne cette ligne qui fonctionne chez moi :
Code:
Application.Documents.Open "C:\Documents and Settings\...\Dessin1.dxf"
Bonne journée :cool:
 

quelqun

XLDnaute Nouveau
Re : VISIO VBA ouvir un fichier dxf

Merci (pour la bienvenue et la réponse!)

Cela marche seulement si j'ai un fichier qui s'appelle Dessin1.dxf dans le disque C:. or dans mon cas le nom du fichier et son emplacement seront amenés à changer régulièrement. C'est pour cela que j'ai besoin de demander à l'utilisateur de choisir le fichier à ouvrir.

Le seul truc c'est que par défaut avec mon code, on lui propose d'ouvrir les fichier visio vsd et pas dxf ou dwg (donc il y a une petite manip à réaliser par l'utilisateur, or dans mon cas il me faut supprimer le plus de manip possible, même infiniment "petite")

Hbergement instantan d'images - imagik.fr
 

JNP

XLDnaute Barbatruc
Re : VISIO VBA ouvir un fichier dxf

Re :),
En principe (mais bizarement, il plante chez moi sous Visio, alors qu'il tourne sous Excel :confused:), tu devrais t'en sortir avec
Code:
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
    .Filters.Add "Autocad", "*.dxf; *.dwg", 1
    If .Show = -1 Then
        For Each vrtSelectedItem In .SelectedItems
            Application.Documents.Open vrtSelectedItem
        Next vrtSelectedItem
    End If
End With
Set fd = Nothing
Bon courage :cool:
 

quelqun

XLDnaute Nouveau
Re : VISIO VBA ouvir un fichier dxf

J'ai également une erreur, "propriété ou méthode non gérée par cet objet" à cette ligne "Set fd = Application.FileDialog(msoFileDialogFilePicker)".

Le vba sous excel ne marche pas toujours à l'identique sous visio (comme la fonction getopenfile...ça vient peut être de là?).
Merci tout de même.
 

JNP

XLDnaute Barbatruc
Re : VISIO VBA ouvir un fichier dxf

Re :),
J'ai également une erreur, "propriété ou méthode non gérée par cet objet" à cette ligne "Set fd = Application.FileDialog(msoFileDialogFilePicker)".
Finalement, j'ai trouvé sur le web, c'est assez tordu mais ça marche :rolleyes:...
Code:
Dim fd As FileDialog
Dim excel_app
Set excel_app = CreateObject("Excel.Application")
Set fd = excel_app.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
    .Filters.Add "Autocad", "*.dxf; *.dwg", 1
    If .Show = -1 Then
        For Each vrtSelectedItem In .SelectedItems
            Application.Documents.Open vrtSelectedItem
        Next vrtSelectedItem
    End If
End With
Set fd = Nothing
Set excel_app = Nothing
Bonne suite :cool:
 

JNP

XLDnaute Barbatruc
Re : VISIO VBA ouvir un fichier dxf

Re :),
VB:
Dim fd As FileDialog
' Dimensionne une boîte de dialogue
Dim excel_app
' Dimensionne un objet
Set excel_app = CreateObject("Excel.Application")
' Crée une application Excel virtuelle
Set fd = excel_app.FileDialog(msoFileDialogFilePicker)
' utilise l'application virtuelle pour créer la boîte de dialogue
Dim vrtSelectedItem As Variant
' Dimensionne une variable
With fd
' Avec la boîte de dialogue
.Filters.Add "Autocad", "*.dxf; *.dwg", 1
' Remplace le filtre de la boîte par les extensions Autocad
If .Show = -1 Then
' Si la boîte est refermée
For Each vrtSelectedItem In .SelectedItems
' Pour chaque item sélectionné
Application.Documents.Open vrtSelectedItem
' Ouvrir le chemin sélectionné
Next vrtSelectedItem
' Item suivant
End If
' Fin du test
End With
' Fin de la boîte de dialogue
Set fd = Nothing
' Vidage de la boîte
Set excel_app = Nothing
' Vidage de l'application virtuelle
Bises :p
 

quelqun

XLDnaute Nouveau
Re : VISIO VBA ouvir un fichier dxf

Bonjour,

Une nouvelle énigme s'offre à moi, j'aimerais automatiser la conversion qui s'effectue sur mon fichier dxf lorsque je clic droit dessus "Objet dessin CAO" => "Convertir". Mais voila, en enregistrant une macro, cette dernière est vide. Et sur le net je ne trouve rien à ce sujet (peut être que je ne cehrche aps avec les bons mots!).
A croire qu'on ne peut pas l'automatiser? (dans ce cas ce n'est pas la fin mais ce serait vraiment si bien!).

Au cas où, je viens demander aux experts s'ils ont une idée.

Merci beaucoup!
 

mromain

XLDnaute Barbatruc
Re: Re : VBA : Objet dessin CAO => Convertir

Bonjour JNP, quelqun,

N'ayant pas Visio, je vais peut-être dire une bétise :rolleyes:...
je clic droit dessus "Objet dessin CAO" => "Convertir"
Si cette action est accessible depuis les menus de Visio avec des combinaisons de touches (Alt + d'autres touches), ça pourait être automatisable avec un SendKeys - même si c'est pas "très propre"...

@JNP: A voté :)

A+
 

quelqun

XLDnaute Nouveau
Re : VBA : Objet dessin CAO => Convertir

En effet c'est une piste...
Je vais essayer de me renseigner! Car je ne connaissais pas du tout cette fonction.

Mais pour l'instant je dois passer par des MAJ+F10 pour aller dans le menu "edition" puis flèches du bas pour choisir "objet dessin CAO" et "entrer"... Ce n'est pas vraiment un raccroucis clavier.

Merci!
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 499
Membres
103 562
dernier inscrit
soso21