INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Referenz auf aktuell geöffnetes Excel-Sheet



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.06.2009, 15:47
Beitrag #1

DG1BGS Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Jul 2008

10.0 32Bit (NI Developer Suite Aug 2010)
2007
de

78256
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
Hallo liebe LV-Forum Gemeinde,
ich ärgere mich heute schon den ganzen Tag mit (Excel)ActiveX-Referenzen herum. Eigentlich dachte ich die Thematik soweit verstranden zu haben, aber dem ist nicht so. Vielleicht könnt ihr etwas Licht ins dunkle bringen.
In meinen Programmen verwende ich selbst programmierte VI's, die Excel zunächst öffnen (sichtbar oder nicht), dann eine bestimmte Datei öffnen. Mit einem weiteren VI kann ich nun etwas in Zelle xy schreiben (egal welches Format, da mein VI Polymorph ist). Ein weiteres VI liest aus Zelle xy. Die Spalte wird meinem VI als String übergeben, die Zeile als Int. Das ganze wird dann als String zusammengeführt und in die Eigenschaft Range geschrieben. Somit kann ich entsprechende Zelle selektieren, bevor ich den Wert reinschreibe/auslese. Also alles kein Problem.

Nu lautet meine Aufgabenstellung anders: Excel ist bereits gestartet und das entsprechende Sheet geöffnet. Nun möchte ich ermitteln, welche Zelle gerade aktiv ist. Dann möchte ich in diese Zelle etwas reinschreiben.
Dann noch folgendes: Angenommen in Zelle xy steht jetzt ein Text: Diesem möchte ich via LV einen Hyperlink zuordnen. Diese geht (meines erachtens) mit Eigenschaft "Hyperlinks" der Excel.Range-Klasse. Was wird dort am Eingang "Anchor" erwartet?

Hoffentlich könnt ihr mir weiter helfen. LG Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2009, 16:33
Beitrag #2

DG1BGS Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Jul 2008

10.0 32Bit (NI Developer Suite Aug 2010)
2007
de

78256
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
Hallo zusammen,
da scheinbar keiner eine Antwort auf die oben gestellten Fragen hat, ich aber immer noch aktuell vor diesem Problem stehe, nehme ich mir die Worte meines ex Professors zu Herzen: "Zerlegung des Problems in kleine Teilprobleme" ->

' schrieb:... Nun möchte ich ermitteln, welche Zelle gerade aktiv ist.

Angenommen die Referenz auf ein Excel-File, das geöffnet wird um ZEilenweise Einträge darin vorzunhemen (z.B: zur Erstellung eines Laufzettels) wäre bekannt. Ich suche nun die nächst freie Zeile. Würde in eine normale Textdatei geschrieben, müsste ich nur an das Dateiende gehen, einen Zeilenumbruch einfügen und eine neue Zeile schreiben, bevor ich die Datei dann wieder dicht mache. Aber wie hänge ich etwas eine eine Excel-Liste?

MfG Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2009, 22:30
Beitrag #3

ImExPorty Offline
LVF-Freak
****


Beiträge: 572
Registriert seit: Jan 2008

8.6
2001
kA

65934
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
' schrieb:Diese geht (meines erachtens) mit Eigenschaft "Hyperlinks" der Excel.Range-Klasse. ....fast, diese Geschichte mit dem Huhn und dem Ei ...z.B.:Worksheet.Hyperlinks.Add
Was wird dort am Eingang "Anchor" erwartet? ...ein Range oder ein Shape
   
Lv85_img
Sonstige .vi  ExcelHyperlink_einf_gen_lv85.vi (Größe: 22,95 KB / Downloads: 361)

1 Postingempfehlungen, 2 Motivation
Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.07.2009, 16:20
Beitrag #4

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
Referenz auf aktuell geöffnetes Excel-Sheet
Das finde ich alles essenziell für mich und sehr interessant. Ich habe nur das VI so was von NICHT verstanden.... Gibst irgendwo einen Text der die Grundlagen erläutert?

Danke

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.07.2009, 20:25
Beitrag #5

ImExPorty Offline
LVF-Freak
****


Beiträge: 572
Registriert seit: Jan 2008

8.6
2001
kA

65934
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
Hallo Gottfried,
' schrieb:Das finde ich alles essenziell für mich.... für viele andere auch...aber die trauen sich nicht nachzufragenCool...Excel und den Rest beherrscht ja heute jeder Rolleyes
und sehr interessant. ...vor allem bekommt man ein bisschen Respekt vor dem was hinter der Oberfläche von "Office" so alles lauert
Ich habe nur das VI so was von NICHT verstanden ...das VI stelllt die 1:1-Umsetzung von brauchbarem VBA-Code dar => guter VBA-Code ... nur Fleißarbeit in LV
.... Gibst irgendwo einen Text der die Grundlagen erläutert? ...siehe oben ...alles zu VBA und das Verständnis von Office-Objektstrukturen liefert die Grundlagen

somit gilt wie immer bei Excel/Word: das gewünschte mit der Makrorekorderfunktion aufzeichen, dann in wirklichen objektorientierten VBA-Code übersetzen und dann in LV nachbilden
Du kannst ja mal mit kleinen Aufgaben beginnen und wir reden dann hier darüber, der Knackpunkt bei den meisten Umsetzungen ist die Variant-Konvertierung, da man diese so nicht in VBA benötigt und somit auch dort nicht testen kann.

1 Postingempfehlungen, 2 Motivation
Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 10:17
Beitrag #6

DG1BGS Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Jul 2008

10.0 32Bit (NI Developer Suite Aug 2010)
2007
de

78256
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
Hallo ImExPorty,
ja... das bekannte Henne-Ei Problem! Danke für deine Lösung mit dem Hyperlink. Ist eigentlich nicht schwer, wenn man sich an die entsprechende Reihenfolge hält. Dein folgender Tipp ist sehr gut:

' schrieb:Hallo Gottfried,
somit gilt wie immer bei Excel/Word: das gewünschte mit der Makrorekorderfunktion aufzeichen, dann in wirklichen objektorientierten VBA-Code übersetzen und dann in LV nachbilden
Du kannst ja mal mit kleinen Aufgaben beginnen und wir reden dann hier darüber, der Knackpunkt bei den meisten Umsetzungen ist die Variant-Konvertierung, da man diese so nicht in VBA benötigt und somit auch dort nicht testen kann.

Zwar habe ich früher auch viel mit VBA gemacht, aber auf die Idee, die entsprechenden Eigenschafts- und Methodenknoten aus dem VBA-Code abzuleiten bin ich nie gekommen. Echt Spitze Top1

Leider habe ich immer noch das Problem, dass ich nicht auslesen kann, welche Zelle in Excel gerade aktiv ist. Normalerweise wird eine Zelle markiert, bevor man etwas mit ihr macht. Ich möchte jetzt aber wissen welche Zelle gerade aktiv ist, wenn vielleicht jemand anderes schon etwas damit gemacht hat. In VBA geht das. Beispiel: ActiveCell.FormulaR1C1 = "jepp", schreibt "jepp" in die zur Zeit aktive Zelle.
In LabVIEW finde ich den Eigenschaftsknoten "ActiveCell" jedoch nirgends. Es müsste sich doch um eine Eigenschaft von "Excel._Worksheet" handeln ?!?

LG Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.07.2009, 10:57
Beitrag #7

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
Hi,

' schrieb:Es müsste sich doch um eine Eigenschaft von "Excel._Worksheet" handeln ?!?


also ich ermittle die aktive Zelle in VBA folgendermaßen:

(mal eben aus nem Formular rauskopiert)
VBA-Code
[code]Me.varColumn = Range(ActiveWindow.Selection.Address(ReferenceStyle:=xlA1)).Column '--> Spalte
Me.varRow = Range(ActiveWindow.Selection.Address(ReferenceStyle:=xlA1)).Row

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 11:11
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Referenz auf aktuell geöffnetes Excel-Sheet
' schrieb:Leider habe ich immer noch das Problem, dass ich nicht auslesen kann, welche Zelle in Excel gerade aktiv ist. Normalerweise wird eine Zelle markiert, bevor man etwas mit ihr macht. Ich möchte jetzt aber wissen welche Zelle gerade aktiv ist, wenn vielleicht jemand anderes schon etwas damit gemacht hat. In VBA geht das. Beispiel: ActiveCell.FormulaR1C1 = "jepp", schreibt "jepp" in die zur Zeit aktive Zelle.
In LabVIEW finde ich den Eigenschaftsknoten "ActiveCell" jedoch nirgends. Es müsste sich doch um eine Eigenschaft von "Excel._Worksheet" handeln ?!?

AcitveCell scheint hier eher ein Toplevel Object zu sein. Also eventuel instanzierbar durch eine Open Automation Objekt Node.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 11:29
Beitrag #9

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
Hi,

wie rolfk schon sagt... ActiveCell ist eine Eigenschaft des ActiveWindow ist eine Eigenschaft der aktiven Excel-Instanz...

so wirds gemacht:

   

Lv86_img
Sonstige .vi  Excel_ActiveCell.vi (Größe: 8,74 KB / Downloads: 348)



Gruß SeBa

Edit:
weiß ja nicht was du brauchst ...

ColumnAbsolute / RowAbsolute
--> False = 'A1' Schreibweise
--> True = '$A$1' Schreibweise

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 12:34
Beitrag #10

DG1BGS Offline
LVF-Grünschnabel
*


Beiträge: 36
Registriert seit: Jul 2008

10.0 32Bit (NI Developer Suite Aug 2010)
2007
de

78256
Deutschland
Referenz auf aktuell geöffnetes Excel-Sheet
' schrieb:weiß ja nicht was du brauchst ...

Danke Rolf und SeBa. Das ist sogar GANZ GENAU das was ich brauche. Darauf, das es ein Toplevel Objekt ist hätte ich echt selbst kommen können Blush

Wie immer ist es so: Man versteift sich auf das Problem und sieht den Wald vor lauter Bäumen nicht mehr. Aber dafür gibt es ja nette LVF-User die einem Licht ins Dunkle bringen Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Speicherung von Messwerten in ein bestehendes Excel-Sheet DM_94 8 10.686 12.03.2018 21:19
Letzter Beitrag: MaxP
  Excel wird beendet beim schliessen der Referenz jan91 1 7.271 19.01.2015 08:30
Letzter Beitrag: SeBa

Gehe zu: