Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
136to140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
136to140
136to140
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA

VBA
22.07.2002 21:06:06
Patrick
Hallo zusammen,
ich hab folgendes Problem unter Excel / VBA
If CheckBox1.Value = True Then

With Assistant.NewBalloon
.Heading = "Auswertung"
.Text = "Select your Bounty"
For i = 1 To 3
.CheckBoxes(1).Text = "Bounty 9inch 2er "
.CheckBoxes(2).Text = "Bounty 9inch 4er "
.CheckBoxes(3).Text = "Bounty 9inch 6er "

Next
.Button = msoButtonSetOkCancel
.Show

If .CheckBoxes(1).Checked Then
Dim A As Variant

A = Application.GetOpenFilename

ActiveCell.FormulaR1C1 = "=[Monatsauswertung.xls]QDSS!R14C3"

Wie bekomme ich er hin, dass anstatt Monatsauswertung.xls die Variable A angenommen wird ???

Das programm soll eine Auswertung vereinfahcen, und ich würde gerne die Dtaen via Formal aus den entsprechenden Blättern ziehen ohne sie vorher zu öffnen.
Das funktioniert leider nur solange, wie die files im gleichen Ordner sind.
Da soll nicht sein.
Die Auswertung sollte so verlaufen, dass ich über GetOpenFilename den Name des ebtsprechenden Blattes die Datei definieren und über ActiveCell.FormulaR1C1 will ich die werte einfügen.

Gibt es da eine möglichkeit, wenn ja welche, oder bin ich gezwungen die Dateien vor der zusammenfassung alle zu öffnen ???
Soviel hab ich mit VBA noch nicht gearbeitet, als das ich viele alternativen hätte :)

Danke im vorraus für die Hilfe

Gruß patrick


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA
23.07.2002 04:11:36
Charlie
Hallo, Patrick!

Du musst aus Deiner Variablen A den Dateinamen extrahieren und dann die Variable in die Formel einbauen, etwa so:

Der externe Bezug auf die Datei, die mit GetOpenFilename angesprochen wird (z.B. C:\Dokumente und Einstellungen\USERNAME\Eigene Dateien\) wird automatisch erzeugt.

Viel Erfolg,
Charlie

Getopenfilename + Variable
23.07.2002 06:21:01
Patrick
Hi CHarly,
thx, werd das Heute mal testen.

Wenn ich die Variable in dem STil deklariere, dann kann ich ohne weiteres Verknüpfungen zu Zellen in anderen Arbeitsblättern erstellen, welche nicht geöffnet sind ???
Soll heissen, das einmalige anklicken mit der Dialogbox (Getopenfilename) reicht aus, um die Zellen meiner Arbeitsmappe mit denen der angeasprochenen Datei zu füllen ???
Da lag immer mein Problem, excel wollte für jede verknüpfung dass ich die Datei von neuem anklicke, und dass ist nicht im Sinne des Projektes :) Naja bei ca. 100 verknüpfungen...

Ach ja, bezieht sich dein VBA file auf den kompletten Filename oder nur auf dn Ordner ???


Gruß patrick

Anzeige
Re: Getopenfilename + Variable
23.07.2002 11:14:01
Charlie
Hallo, Patrick!

So wie die Formel aufgebaut ist, wird die Verknüpfung dauerhaft in die Tabelle eingefügt. Es reicht daher, wenn Du alle Zellen, die auf die externe Datei verweisen, 1x per Makro bearbeitest. D.h. für jede Zelle musst Du eine Formel wie im Beispiel erstellen.

Und dann musst Du noch beim Öffnen der betroffenen Datei die Abfrage nach dem Aktualisieren der Verknüpfungen bestätigen, damit die Werte aktualisiert werden.

Das Makro bezieht sich auf den ausgewählten Dateinamen. GetOpenFilename liefert den Dateinamen inkl. der Pfadangabe. Daher ist es auch für die Erstellung der Formeln notwendig, den Dateinamen mit der For-Next-Schleife aus der Variablen A auszulesen.

Viel Erfolg,
Charlie

Anzeige
Re: Getopenfilename + Variable
23.07.2002 13:28:51
Patrick
Hi Charlie,
Hat funktioniert.
Das einzigste Problem was ich jetzt hab ist die Tatsache, dass wenn ich die Files verknüpfe mit activecell.formula ("E14") (beispiel).
Ist die Quellzelle leer, so steht in der Zielzelle eine Null, das stört meine statistische Auswertung bezüglich standartabweichung oder Mittelwert.

Wie schaffe ich es nun, die Null werte aus dem Sheet zu nehmen, oder es von vorn herein zu verhindern, dass verknüpfungen aus leeren Zellen, den Wert null in der Zielzelle annehmen ???

Danke für Deine Mühe

Gruß Patrick

Re: Getopenfilename + Variable
23.07.2002 14:00:07
Charlie
Hallo, Patrick!

Ich würde in jedem Fall eine Formel verwenden, damit wirklich alle irgend wann benötigten Werte übernommen werden. Die Nullwerte kann man einfach durch eine Wenn-Abfrage unterdrücken:

In der Formel wird geprüft, ob das Ergebnis der Verknüpfung 0 ist und wenn ja, wird als Ergebnis "Leer" ausgegeben. Das "Leer" stört auch Deine weiteren Berechnungen nicht.

Viel Erfolg,
Charlie

Anzeige
Re: Getopenfilename + Variable
23.07.2002 15:11:13
Patrick
Hi Charlie,
Danke nochmals für die Mühe :)

Kannst Du mir nochmal bitte den allg. string dieser IF anweisung schicken, will das erstmal "in kleinen" auf einem extra sheet testen.
Und kann ich den string dahin modifizieren, dass er mir den wert leer ausgibt, wenn der Zellen wert auch leer ist ??? und nicht 0 ??
Bei den Messungen um die es sich handelt können auch so Werte = Null rauskommen, daher lieber auf beiden Seiten "leer"
Was ist der Befehl für Leer ??
Sind das die """" in dem string ???

Gruß patrick

PS: wegen den "dummen" fragen, bin aber noch der totale Anfänger.

Anzeige
Re: Getopenfilename + Variable
23.07.2002 15:23:16
Patrick
Hi Charlie,
Danke nochmals für die Mühe :)

Kannst Du mir nochmal bitte den allg. string dieser IF anweisung schicken, will das erstmal "in kleinen" auf einem extra sheet testen.
Und kann ich den string dahin modifizieren, dass er mir den wert leer ausgibt, wenn der Zellen wert auch leer ist ??? und nicht 0 ??
Bei den Messungen um die es sich handelt können auch so Werte = Null rauskommen, daher lieber auf beiden Seiten "leer"
Was ist der Befehl für Leer ??
Sind das die """" in dem string ???

Gruß patrick

PS: wegen den "dummen" fragen, bin aber noch der totale Anfänger.

Anzeige
Re: Getopenfilename + Variable
23.07.2002 19:56:42
Charlie
Hallo, Patrick!

Aller Anfang ist schwer, ich weiß das, bin doch selber noch ein Anfänger. ;)

?? Kannst Du mir nochmal bitte den allg. string dieser IF anweisung schicken, will das erstmal "in kleinen" auf einem extra sheet testen.
Was soll ich Dir da schicken? Du kannst einfach die betreffende Zeile aus dem Code kopieren und in einer anderen Tabelle oder Arbeitsmappe testen (einfügen, anpassen).

?? Und kann ich den string dahin modifizieren, dass er mir den wert leer ausgibt, wenn der Zellen wert auch leer ist ??? und nicht 0 ??
Die Formel liefert dann "Leer", wenn die betreffende Zelle in der Quelldatei auch leer ist oder den Wert 0 enthält, sonst wird der tatsächliche Zellinhalt der Quelldatei ausgegeben. Wenn nämlich die Quellzelle tatsächlich leer ist, würde das Formelergebnis 0 sein. Und dieses Ergebnis soll durch "Leer" verhindert werden.

Sind das die """" in dem string ???
Ja, das ist richtig. In einer Tabellenformel werden aber nur zwei "" benötigt. Da im Code ein Anführungszeichen immer als Begrenzung für Text gilt, müssen die beiden Anführungszeichen wiederum in Anführungszeichen gesetzt werden, damit die beiden benötigten auch tatsächlich als solche erkannt werden, daher sind im Makrocode 4 Anführungzeichen notwendig. Den Unterschied kannst Du sehen, wenn Du Dir die eingetragene Formel in der Tabelle ansiehst.

Bis dann,
Charlie

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige