Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
556to560
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
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Target in Variable

Target in Variable
Kristin
Hallo,
ich versuche mit dem SelectionChange-Ereignis bestimmte Änderungen vorzunehmen. In der Prozedur selber verweise ich nur auf eine eigene Prozedur in einem Addin um auch später Änderungen vornehmen zu können, wenn die Arbeitmappe benutzt wird.
Also übergebe ich Target: Application.Run Modul.xla!OwnSelectionChange,Target
alles gut soweit!
Innerhalb dieser Prozedur rufe ich eine UserForm auf, die wiederum verschiedene Prozeduren aufruft - je nachdem welcher Button geklickt wird. Alles ist hier immernoch von Target abhängig.
Hier beginnen die Probleme:
Da ich nicht weiß wie ich an UserForms (deren Prozeduren) Parameter übergebe habe ich mir gedacht: in meinem Modul deklariere ich einfach Target 'über' allen Prozeduren (global) so das ich immer auf Target zugreifen kann, auch wenn ich aus der UserForm "zurück komme".
Das geht aber nicht. ich dachte, ich kann Target.Address(0,0) als String speichern, das gibt aber einen Laufzeitfehler. Andere Versuche mit anderen Variablentypen sind auch gescheitert.
Was ist denn Target für ein/e Variable/Objekt? wie kann ich damit arbeiten?
Oder weiß jemand wie ich Target die ganze Zeit 'aktiv' lassen kann? bzw. wie ich es über die UserForm hinweg übergebe?
vielen Dank für jeden Tipp.
Wenn etwas unklar ist bitte Fragen fragen :)
Nachtschwärmer-Grüße,
Kristin

65
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Target in Variable
Björn
Hallo Kristin,
Target ist ein Range.
Gruß
Björn
AW: Target in Variable
Luschi
Hallo Kristin,
Target ist ein Range-Objekt, also eine oder mehrere Zellen.
Im Add-In solltest Du eine globale Variable vom Typ Range anlegen und in der Funktion/Sub "OwnSelectionChange" dieser den Übergabeparameter Target zuweisen.

Public globTarget as Range
Sub OwnSelectionChange(xTarget as Range)
set globTarget=xTarget
End Sub
Damit kennt das Formular auch dieses Target. Der Vorteil ist, daß globTarget alle
Eigenschaften von Target geerbt hat.
globTarget.Parent.Name        -> Tabellen-Name aus dem Target stammt
globTarget.Parent.Parent.Name -> xls-Dateiname (Arbeitsmappen-Name) von Target.
globTarget.Address            -> Zelladresse von Target
jeweils als String

Gruß von Luschi
aus klein-Paris
Anzeige
AW: Target in Variable
Kristin
Hallo Luschi,
hehe also doch so einfach...ich dachte schon ich bin plöd :)
Danke für die ausführliche Antwort. Der Unterschied war:
1. Ich hatte meine 'globale' Variable als dim deklariert, nicht als public und
2. ich habe nicht wie du 'set' benutzt. sondern nur globTarget = xTarget
habe also genau dein Beispiel kopiert, meins ein bißchen angepaßt und es ging. Nun wollte ich halt wissen was der wichtige Unterschied war, und denke das wirklich alles ganz genau stimmen muss. 'set' + 'public' + nicht Target sondern blaTarget
Ich hab keinen schimmer wieso, aber es geht.
Also lange Rede kurzer Sinn, vielen Dank (!) du hast genau ins Schwarze getroffen.
viele Grüße,
Kristin
Anzeige
AW: Target in Variable
Luschi
Hallo Kristin,
Übergabeparameter an Sub/Function sind immer lokal, d.h. sie sind nur in dieser Sub/Function ansprechbar. Da Target ein Range-Objekt ist muß die Zuweisung zu einer anderen (Objekt)Variavlen immer mit Set erfolgen. Bei einfachen Variablen erfolgt die Zuweisung ohne Set. Eigentlich gibt es für diese normalen Variablen den Anweisungsbefehl "Let", aber der ist optional!, während "Set" bei Objekten Pflicht ist.
Gruß von Luschi
aus klein-Paris
AW: Target in Variable
Kristin
Danke dir für die Erklärung, Luschi.
Habe 'Set' schon direkt in mein Herz geschlossen....habe es schon an diversen weiteren Stellen eingebaut. z.B. bei Langen Range-Zeilen:
Set UpperEdit = Range(Cells(fRowDetect("row_001"), fColumnDetect("col_adserving")), Cells(fRowDetect("row_001"), fColumnDetect("cal_053")))
Wie findest du das? macht doch Sinn das auch so zu verwenden, oder?
Büßt wohl Performance ein, aber bei meinen kleinen Projekten wohl nicht so wild, dafür viel übersichtlicher...
bis bald im Forum :)
Gruß, Kristin
PS: Wo liegt denn klein-Paris?
Anzeige
AW: Target in Variable
Luschi
Hallo Kristin,
um die Performace brauchst Du Die keine Sorgen zu machen. Da wird kein neues Objekt erzeugt mit "Set", sondern nur ein Zeiger auf das Ausgabgsobjekt.
Wichtig ist noch, wenn man Objekte über mehrere Stationen weitergibt, dann so:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call abc(Target)
End Sub

Sub abc(ByRef xTarget as Range)
x=toDo(xTarget
End Sub
Function toDo(Byval xTarget as Range)
toDo= "?"
End Funktion
Die beideb xTarget kennen sich nicht gegenseitig, sonden sind 2 Zeiger auf das Ausgangsobjekt "Target".
Gruß von Luschi
aus klein-Paris (Goethe hatte damit mal Leipzig bezeichnet)
Anzeige
AW: Target in Variable
Kristin
Hallo Luschi,
ahhh, Pointer kenne ich noch von C/C++. Das ist gut, die sind praktisch. Ach ja und die verschiedenen Aufrufe und Übergaben sind auch jetzt ein wenig klarer. Bleibt nur noch 'Run', ich vermute das benutze ich mit anderen Anwendungen richtig? also ich rufe mein Addin z.B. so auf. ist das korrekt?
Ich muss ganz ehrlichsagen ich bastel mir eher was zurecht in vba, aber es macht wirklich spass, man ahnt gar nicht wie 'mächtig' excel ist! :)
Mir fehlt aber die praxis, mache nur immer mal wieder was, leider nicht regelmäßig.
Schön, dass du dir die Zeit genommen hast mir ein paar elementare dinge zu erklären.
liebe Grüße,
Kristin
PS: ahh Leipzig - puhh, da hab ich ja mal wieder mit meiner Allgemeinbildung geglänzt... :)
Anzeige
AW: Target in Variable
Luschi
Hallo Kristin,
brauchst Du etwas ebook-Lektüre zur Vba-Programmierung?
Ich war/bin da immer ein fleißiger Sammler & Jäger.
Dann veröffentliche Deine E-Mail-Adresse und Du kriegst Post!
Gruß von Luschi
aus klein-Paris
AW: Target in Variable
kristin
das hört sich gut an.
meine email, naja, ich hoffe hans kann den Beitrag wieder löschen?!?! :)
kristin at heavyonwire dot net
bin gespannt was ich alles noch nicht weiß...
gruß, kristin
AW: Target in Variable
Luschi
Hallo Kristin,
das verstehe ich nicht, habe gestern Nachmittag das 1. Büchlein auf die Reise geschickt.
Es kam auch keine Fehlermeldung, daß die Adresse falsch ist.
Melde ich doch bei mir unter fam.nuck@primacom.net
Gruß von luschi
aus klein-Paris
Anzeige
AW: Target in Variable
Kristin
hallo luschi,
wie schaut's? hast zu tun? jetzt schreib ich dir extra meine addresse auf und nu :)))
kannst dich ja noch mal melden, bin immer interessiert an doku.
viele Grüße,
kristin
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
kristin
hallo volker p. aus h.,
was ist das denn für eine lustige Nachricht? :)
vielegrüße,
kristin
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
Anzeige
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)
AW: Target in Variable
volker
;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige