Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: Reiner Wolff <spam@xxxxxxxxxxxxxx>
- Date: Sun, 14 Aug 2005 23:43:26 +0200
Moin Thomas, Michael und Lothar,
ich antworte einfach hier mal allen dreien.
Thomas schrieb hier kürzlich:
[bei Ereignissen wird 'Range' nicht als 'Excel.Range' deklariert]
> Vermutlich wurde davon ausgegangen, dass explizit dieses Ereignis wohl nur
> in Excel ausgelöst und ausgewertet wird und daher auf die explizite
> Anfügung der Bibliothek verzichtet.
> Generell gilt dies für alle Ranges in Excel.
Gegenvermutung: in den Verweisen läßt sich Word nicht vor den Excel-Verweis
bringen, daher kann ein nicht näher deklariertes Range-Objekt nur eines von
Excel sein. Deswegen genauere Bezeichnungen wegzulassen, finde ich zwar
nicht gut, aber es ist halt so.
Michael verstand mich hier wie folgt falsch:
>> einmal statt zeile = ActiveCell.Row
>> unabsichtlich
>> zeile = ActiveCell
>> schreibst, dann ist Zeile plötzlich kein numerischer Wert mehr,
>> sondern ein Range-Objekt. Enthält nun diese Zelle auch noch einen
> Nöö, ganz so schlimm ist das nun doch nicht, um einen Objektverweis zu
> bekommen fehlt dann noch ein Set davor. Es wird hier die
> Defaulteigenschaft (Value) zurückgegeben.
Ja, OK ich habe Range-Objekt geschrieben, das war falsch.
Das Ergebnis, das ich im Kopf hatte, führt aber zu dem von mir angedachten
Fehlverhalten. Hier ein einfaches Beispiel:
Sub Demo()
'einfache Demonstration für einen Fehler, der aus einer
'falsch deklarierten Variable kommen kann
'wenn die ActiveCell A1 ist und den Wert 5 hat und
'zudem in A5 'Hallo' steht,
'wird der Unterschied zwischen ActiveCell und ActiveCell.Row
'ganz schnell deutlich
Dim Zeile
Zeile = ActiveCell.Row
Debug.Print Cells(Zeile, 1).Text
End Sub
*llocke* schrieb:
zunächst an Thomas:
> Du glaubst gar nicht, wieviel Schweiß mich diese paar Zeilen gekostet
> haben.
Doch das glaube ich.
Ich hoffe allerdings, Dich mit meinen Kommentaren dazu einfach nur
weiterzubringen. Verstehe sie bitte nicht als etwas, was man unbedingt tun
muss oder das es schlecht wäre, was Du gemacht hast.
> Aber es funktioniert.
Denn das ist die Hauptsache.
> Außerdem ist es mir noch nicht gelungen, die Variable "zeile"
> öffentlich zu machen. Mit Public hat es noch nicht geklappt. Auf die
> Variable soll auch in Personl.xls zugegriffen werden können,
> ohne dass der Wert verloren geht ...
Dazu wäre es zunächst einmal unerlässlich, die Variable aus der Prozedur
heraus zu nehmen. Deklariere sie dafür im Deklarationsteil des Moduls.
Hinzu kommt dabei das Problem, dass sie auch noch über verschiedene
Arbeitsmappen gültig sein soll. Das habe ich jetzt direkt so nicht probiert
und grad auch keine Lust dazu ;-) Müsste man sich ggf. ansonsten nochmal
gesondert drüber Gedanken machen.
*llocke* schrieb:
nun an mich:
> Reiner Wolff schrieb:
>> OT: Was macht denn eigentlich das ganze? Sollte starmMonatsdaten etwas mit
>> StarMoney zu tun haben? Wenn ja, könnte ich mir gut vorstellen, dass ich an
>> der Lösung auch selbst interesse hätte. Denn nützliche Auswertungen dafür
>> fehlen mir im Prinzip dabei sowohl privat als auch beruflich ;-)
>
> Zunächst einmal vielen Dank. Du hast mich richtig eingeschätzt. Ich
> brauche noch erwas Nachhilfe. Und das, was du geschrieben hast, klingt
> für mich ganz spannend. Ich bin allerdings noch nicht dazu gekommen,
> es auszuprobieren.
Das freut mich. Lass Dir mit dem Ausprobieren Zeit. Wenn Du Fragen dazu
haben solltest, stelle sie einfach weiter in diesem Thread.
Ansonsten wäre bei weiterem Interesse mit Sicherheit ein gutes Anfängerbuch
(kennt hier grad mal jemand eines?) für das Programmieren lernen sehr
hilfreich.
Denn wenn Du tatsächlich etwas einsteigen willst, solltest Du mit Variablen
(und dessen Gültigkeitsbereichen) und ein paar Standardstrukturen vertraut
werden.
> Du hast richtig kombiniert. Es geht hier um eine CSV-Datei, die ich mir
> für meine Zwecke gestaltet habe. Erklärungen dazu würden hier den
> Rahmen sprengen. Nenne mir deine Email-Adresse für alles weitere.
Meine hier benutzte Email-Adresse ist durchaus gültig und wird gelesen.
Klicke in Deinem ... oh Dein Newsreader wird als 'G2/0.2' bezeichnet. Das
ist ein Webinterface, wenn ich mich nicht irre. Wie wäre es mit einem
vernüfntigen Newsreader[1]? (Bei Interesse gebe ich auch gerne noch
Links zu anderen Newsreadern, die nicht OjE (Outlook Express) heißen.)
Meine Email-Adresse lautet ansonsten spam ähät wolffsrudel.de
Über Nachricht würde ich mir durchaus freuen.
Greetinx aus Kiel
Reiner
Fußnote(n):
===========
[1] Programm: http://www.40tude.com/dialog/
Anleitung: http://www.gaehn.org/software/40tude-dialog/tutorial/
--
Wenn Du sie nicht überzeugen kannst, verwirre sie.
(Harry S Truman)
.
- Follow-Ups:
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: llocke
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: Michael Schwimmer
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- References:
- Wie geht das: Ein Ereignismakros für alle Sheets
- From: llocke
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: Thomas Ramel
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: llocke
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: Thomas Ramel
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: llocke
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: Reiner Wolff
- Re: Wie geht das: Ein Ereignismakros für alle Sheets
- From: llocke
- Wie geht das: Ein Ereignismakros für alle Sheets
- Prev by Date: Re: Wie geht das: Ein Ereignismakros für alle Sheets
- Next by Date: Suchfunktion Fehlermeldung übergehen
- Previous by thread: Re: Wie geht das: Ein Ereignismakros für alle Sheets
- Next by thread: Re: Wie geht das: Ein Ereignismakros für alle Sheets
- Index(es):