![]() |
|
|
zurück zur ÜbersichtDiskussionsgruppe: TabellenkalkulationHallo zusammen,
Von: wollachee Datum: 08.02.2007, 10:43
alle Antworten zu dieser FrageAntwort 1 von coros vom 08.02.2007, 12:44 Hallo Wollachee, zu 1:: Mir ist nicht bekannt, dass es da eine Möglichkeit gibt, abzufragen wann der Entwurfsmodus beendet wurde, geschweige dann ein Ereignis auszulösen. Zu 2.: Habe ehrlich gesagt nicht ganz den Satz zu 2. verstanden. Eventuell kannst Du das ja etwas einfacher schreiben. Zu Deiner einleitenden Frage: Zitat: Ich hätte nun gerne, das der LinkedCell-Verweis ohne manuelles Zutun immer auf die Zelle verweist, auf der sich das jeweilige Steuerelement befindet. Ich würde das mit nachfolgendem Code realisieren. Das Makro setzt voraus, dass bereits eine ComboBox mit dem Namen "ComboBox1" im Blatt vorhanden ist. Das Makro macht nun nichts anderes, als dass es ComboBox1 kopiert und an der Stelle, an der eine Zelle markiert wurde, einfügt. Die LinkedCell-Eigenschaft wird dann automatisch mit der markierten Zelladresse überschrieben. Kopiere das Makro zum testen in ein StandardModul. Option ExplicitDas reine erstellen einer ComboBox würde etwas komplizierter sein, da man die Postion der Objekte nicht an die aktive Zelle koppeln kann, sondern man müsste anhand der Werte Left, Top, Width und Height ermitteln und errechnen, wo die markierte Zelle sich befindet und welche Werte hier dann anzugeben wären. Das ist aber ein bisschen viel Aufwand für das einfügen einzelnen ComboBoxen. Zum Prüfen ob eine neue ComboBox dazu gekommen ist, könnte man nachfolgendes Makro nehmen. Das speichert die alte Anzahl von ComboBoxen in Zelle A1 ab. Beim nächsten Ausführen wird die Zahl verglichen und einen entsprechende Bildschirmmeldung ausgegeben. Option ExplicitIch hoffe, Du kommst klar. Bei Fragen melde Dich wieder. Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird. MfG, Oliver Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat. Antwort 2 von wollachee vom 08.02.2007, 13:19 @Oliver, vielen Dank für Deine ausführliche Hilfstellung. Ich habe mir inzwischen bereits selbst was ausgedacht, was meine Problemstellung zufriedenstellend löst. Du hast sicher Recht, es gibt vermutlich keine Möglichkeit, direkt das Beenden des Entwurfsmodus im VBA-Code abzufragen. Ich beschränkt mich deshalb jetzt auf ein so unkompliziertes Verfahren wie Klick in eine andere Zelle. Es ist - zumindest im Moment - auch noch nicht nötig, den Typ des Steuerelements abzufragen. Alles, was eine LinkedCell-Eigenschaft bietet, wird bearbeitet. Eventuelle Exceptions anderer Steuerelemente werden abgefangen. Für jedes zu behandelnde Steuerelement frage ich die Koordinaten der TopLeftCell-Eigenschaft ab und berechne daraus den neuen Eintrag für die LinkedCell-Eigenschaft. Anschließend setze ich noch das nicht benötigte Attribut "AltHTML" auf "*", um zu markieren, dass dieses Steuerelement bereits bearbeitet wurde. Nach dem Beenden des Entwurfsmodus muss man nur noch einmal irgendwohin klicken und die Neuberechnung ist gelaufen. Private Sub Worksheet_SelectionChange(ByVal Target As Range)Trotzdem nochmal vielen Dank. Ich wußte doch, dass es hier Leute gibt, die sich damit auskennen. Gruß, Wollachee Antworten der Gruppe: Tabellenkalkulation
|
07111 07112 07113 07114 07115 07116 07117 07118 |