ich habe folgendes Problem: Ich möchte Daten aus Excel-Zellen als
Quelle für Visio-Datenfelder verwenden (Visio Version 4.5). Es sollte
komplett per VBA gelöst werden.
Meine Fragen:
- Wie spreche ich unter VBA Visio-Datenfelder an?
- Wie kopiere ich aus Visio heraus per VBA Daten einer Excel-Tabelle?
(Ich beschäftige mich leider erst seit wenigen Tagen mit VBA und
Visio).
Aus einem Excel-Makro heraus ist es ja kein Problem, beliebige Zellen
zu kopieren - aber wie greife ich auf eine Excel-Tabelle auserhalb von
Excel zu?
Zu den Visio-Datenfeldern. Um diese im Shape darzustellen, muß ich ja
eine Formel nach folgendem Vorbild verwenden (zumindest in meiner
Urzeitversion): Tab.1!Eigensch.Blabla
Werden evtl. so oder so ähnlich allgemein Datenfelder behandelt?
Wäre über jede Hilfe dankbar.
Du findest ein paar sehr schöne Quellcodebeispiele unter
msdn.microsoft.com/Visio.
Da ist auch ein SDK zu erhalten mit dem Du einige VBA-Beispiele erhältst.
in Vba sprichst du datenfelder (jetzt heissen sie benutzerdefinierte
EigenschafteN) wie folgt an:
vShape.Cells("prop.<Name>").Formula
<name > ist dabei der NAme der Zelle
IN Excel braucsht Du genauso einen Verweis auf eine Zelle (da muss ich
passen, aber das findest Du sicher ind er Excel-Dokumentation) und danach
kommt einfach die Zuweisung auf den Wert
also
TabSheet.cells(X1,Y1).Value = vShape.Cells("Prop.<Name>").Formula
so in der Art !
--
Regards
Senaj Lelic
MVP Visio
Sen...@DataAssist.de.nospam
EMails bitte nur nach Aufforderung direkt an mich
Emails directly to me only when asked please
"Christian" <chri...@modsognir.cjb.net> schrieb im Newsbeitrag
news:27540a43.0306...@posting.google.com...
erstmal vielen Dank. Die Datenfeldbearbeitung in Visio funktioniert
schonmal. (vShape existiert hier zwar nicht, aber mit
visio.activepage.shapes(ID).cells("prop.<Name>").formula klappt das
(beinahe) wie ich es wollte.
Ein Problem: Wenn ich den Wert "4.2" eintragen möchte, wird aus dem
"." ein ",". Gibt es eine Möglichkeit, das zu beheben?
Ich hoffe, die Excel-Verknüpfung werde ich auch noch hinbekommen.
Nochmal Danke,
Christian
"Senaj Lelic [DE MVP Visio]" <Sen...@DataAssist.de.nospam> wrote in message news:<#PZxl5NN...@TK2MSFTNGP12.phx.gbl>...
Wie kann ich Shapes eindeutig idendifizieren?
Weder per activepage.shapes(ID) noch activepage.shapes.item(ID) kann
ich einen fixen Wert verwenden. Sobald ich ein voriges Shape lösche,
ändert sich die "ID", und ich müßte den gesamten Code anpassen. Gibt
es da keine Lösung wie gruppe.nr oder s.ä.?
Gruß
Christian
Ich kann nun doch Shapes per Shapes.Item("sheet.5") ansprechen. das
"sheet.5" hatt e ich zu testzwecken per textfeld eingegeben, womit die
Zuordnung nicht funktionierte. Wenn ich "feste Werte" verwende, gibt
es keine Probleme mehr.
Und mittels celObj.Formula = Chr$(34) & "4.1" & Chr$(34) ist ein "."
nun auch ein ".".
Bleibt das Problem mit Excel.
Bin ich mit folgendem vielleicht auf dem richtigen Weg? (Chr(9) ist -
glaube ich - ein Tabulator. Ich habe auf die Schnelle kein Space
gefunden.)
stAppName = "C:\Programme\Microsoft Office\Office\EXCEL.EXE" &
Chr(9) & "C:\test.xls"
Call Shell(stAppName, 1)
Gruß
Christian
chri...@modsognir.cjb.net (Christian) wrote in message news:<27540a43.03061...@posting.google.com>...
--
Regards
Senaj Lelic
MVP Visio
Sen...@DataAssist.de.nospam
EMails bitte nur nach Aufforderung direkt an mich
Emails directly to me only when asked please
"Christian" <chri...@modsognir.cjb.net> schrieb im Newsbeitrag
news:27540a43.03061...@posting.google.com...
Falls noch jemanden das Excel-Problem interessiert: Ich bin dabei, das ganze
mittels ActiveX zu lösen. Eine hilfreiche Programmiervorlage befindet sich
in der VBA-Hilfe zu Excel. (Suchbegriff: "GetObject-Funktion") Diese muß
lediglich noch etwas angepaßt werden.
Schönen Gruß ins lange Wochenende und Danke für die Hilfe,
Christian
"Senaj Lelic [DE MVP Visio]" <Sen...@DataAssist.de.nospam> schrieb im
Newsbeitrag news:ee1xn#ZNDHA...@TK2MSFTNGP12.phx.gbl...