Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Visio

Visio Forum d'entraide sur Microsoft Office Visio (schémas et diagrammes)

Réponse
 
Outils de la discussion
Vieux 23/11/2007, 10h07   #1 (permalink)
Invité de passage
 
Date d'inscription: octobre 2007
Messages: 9
Par défaut VBA Visio 2000 - Problème avec BeforeDocumentClose

Bonjour,

Je développe une appli sous Visio 2000 qui permettra de schématiser les composants réseau (Websphere, port ethernet,etc...).
Cet appli gèrera plusieurs schémas dans un seul document sous une seule page.
Je souhaitais appeler la BeforeDocumentClose pour vider la page du schéma générer, fermer les gabarits chargés et sauvegarder le document, afin qu'à la prochaine ouverture du document, la page soit vierge de tout schéma.
Mais cette fonction (BeforeDocumentClose) s'exécute pas vraiment avant la fermeture mais pendant la fermeture (d'après mes test).

Mon code :
Code :
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument)
    ThisDocument.VideDocument
    ThisDocument.Raz_Gabari
    ThisDocument.Save
End Sub
Code :
Public Sub VideDocument()
Dim ShpObj As Visio.Shape
 
    ActiveWindow.SelectAll
    For Each ShpObj In Visio.ActiveWindow.Selection
        Call Init.Verrou(ShpObj, 0)
        ShpObj.Delete
    Next ShpObj
End Sub
Code :
Dim Gabari As Collection
Public Sub Raz_Gabari()
Dim StnObj As Visio.Document
 
    If Gabari.Count <> 0 Then
        For Each Element In Gabari
            If Element <> " " Then
                Set StnObj = Documents.Open(Element)
                StnObj.Close
            End If
        Next Element
    End If
End Sub
Quelqu'un pourrait-il m'aider à trouver pourquoi cela ne fonctionne pas ou passer au delà de cette erreur ?

Merci par avance.

Christophe
ChristopheLBP est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/11/2007, 11h55   #2 (permalink)
Invité de passage
 
Date d'inscription: octobre 2007
Messages: 9
Par défaut

J'ai trouvé comment faire.
Au lieu d'utiliser BeforeDocumentClose, j'utilise QueryCancelDocumentClose qui permet d'empecher la fermeture du document si nous faisons
Code :
Private Function Document_QueryCancelDocumentClose(ByVal doc As IVDocument) As Boolean
    Document_BeforeDocumentClose = True
End Function
mais pour executer ce que je voulais faire avec le BeforeDocumentClose, je fais :
Code :
Private Function Document_QueryCancelDocumentClose(ByVal doc As IVDocument) As Boolean
    ThisDocument.VideDocument
    ThisDocument.Raz_Gabari
    ThisDocument.Save
    'Code permettant de ne pas afficher la boite de message
    'Voulez-vous enregistrer ?
    Application.AlertResponse = 7
 
ChristopheLBP est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Visio

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 14h36.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations