Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Visio
Visio Forum d'entraide sur Microsoft Office Visio (schémas et diagrammes)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/06/2007, 16h17   #1
Invité régulier
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 7
Points : 7
Par défaut Modifier des formes Visio avec des données Excel

Bonjour

je ne suis pas développeur professionnel, mais j'ai déjà écrit des macros en VBA dans Word et Excel. Je voudrais écrire du code dans Visio pour que des dessins se modifient automatiquement dans Visio, en lisant des valeurs dans Excel

Exemple : une horloge dessinée dans Visio, la macro Visio allant chercher dans Excel l'angle dont les aiguilles tourneraient. Ou bien des formes à colorier, la macro Visio récupérant dans Excel la valeur de la couleur ou la longueur de la forme, etc.

J'ai lu et relu les infos du site Visio chez Microsoft, mais la seule chose que j'ai comprise, c'est comment enregistrer dans Excel des données de Visio (mais moi, c'est l'inverse qui m'intéresse )

Quelqu'un possède un exemple ?

Merci d'avance
Hubs
Hubs702 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 11h40   #2
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 938
Points : 7 938
Bonjour,

Il faut utiliser l'assistant base de données (en tout cas avant la version 2007 je crois) :
utiliser l'Assistant Bases de données de Visio avec Microsoft Excel
(l'article est pour visio 5, c'est le même principe avec Visio 2000)
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 22h19   #3
Invité régulier
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 7
Points : 7
Merci. Je ne connaissais pas ce tutoriel.
Ce n'est pas tout à fait ce que j'espérais, mais j'ai essayé et ça fonctionne. Maintenant, il va falloir que je comprenne bien comment programmer l'ouverture du fichier excel, l'identification des bonnes valeurs dans la table, etc. Mais ça devrait le faire.

Merci encore
cordialement
Hubs
Hubs702 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 12h26   #4
lvr
Membre éclairé
 
Avatar de lvr
 
Inscription : avril 2006
Messages : 503
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 503
Points : 376
Points : 376
L'ouverture du fiichier Excel en code, c'est pas très compliqué:
Voici comment je fais dans un autre contexte: Access ouvre un document Word (le principe est similaire):
Code :
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
 
Dim doc As Word.Document
Dim alreadyOpenedDoc as boolean: alreadyOpenedDoc = False
 
' On crée un objet Word si on n'en a pas déjà un
If (objWordClient Is Nothing) Then
   On Error GoTo NoAutoFill
   Set objWordClient = CreateObject("Word.Application")
   On Error GoTo 0
   End If
 
 
' On vérifie si le document est déjà ouvert dans Word, si oui on passe à son traitement
Set doc = objWordClient.Documents(DocFichier)
If (Err = 0) Then
   alreadyOpenedDoc = True
   GoTo ok
   End If
 
Err.Clear
 
' Si le document n'est pas déjà ouvert, on l'ouvre
Set doc = objWordClient.Documents.Open(FileName:=pathToDoc, _
                ReadOnly:=True, Addtorecentfiles:=False)
 
If (Err <> 0) Then GoTo NoAutoFill
 
ok:     ' OK, on a un document Word
On Error GoTo AutoFillError
Remarque: pathToDoc est le chemin complet pour trouver le document, DocFichier est le nom du fichier.


Une fois que ton fichier est ouvert tu peux le manipuler et accéder à ses données. Je te conseille de travailler avec des Names plutôt qu'avec des cellules hardcodées. Cela donnerait (code pour Excel):

Code :
1
2
3
4
5
6
7
8
9
Dim wkb As Workbook
Dim rge As Range
On Error Resume Next
Set rge = wkb.Names("mon_horloge").RefersTo
If Err <> 0 Then
    MsgBox "Invalid name reference"
    Exit Sub
    End If
On Error GoTo 0
Attention en créant un objet Word (ou Excel) via CreateObject (donc par OLE), il se peut que tu ne vois pas Excel ouvert mais il l'est bien. Regarde dans les process et tu verras un "excel.exe". Si après un crash, tout ne refonctionne pas bien, vérifie que tu n'as pas ce excel.exe qui traîne. Si oui, tue le.
lvr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 07h19   #5
Invité régulier
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 7
Points : 7
Super

merci beaucoup
Hubs702 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web