jobo: VBA, Excel, dynamisch Funktionen zuweisen

Beitrag lesen

Hallo,

»» Ja, aber ich bin ja in Ausgabe.xls in der Tabelle Ausgabe. Und habe dort eine Liste generiert, in Spalte A stehten die Workbooks, in B die darin enthaltenen Tabellen. Ich dachte erst mit Klick auf sagen wir B5 in dem "Produkt123" steht, eine Funktion aufrufen zu können. Vermutlich aber geht das so nicht (a la HTML-Javascript einen Event einer Zelle zuzordnen).

doch.

Klicke im VBA-Editor doppelt auf die Tabelle Ausgabe. Dann hast Du ein Klassenmodul dieser Tabelle, in die Du eintragen kannst:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

  
Fein, das ist also ein Eventhandler, der sich aufs aktuelle Worksheet bezieht und deshalb immer "Worksheet\_SelectionChange" heißt (analog zu Javascripts "onclick", "onmouseout") und als Paramter immer den selected Range enthält? Der Variablenname "Target" wäre also frei wählbar? Is ByVal Pflicht, oder wäre ByRef auch sinnvoll? Gibt es ein Fachwort in VBA für dieses Eventhandling (da gibts ja sicher noch mehr als "SelectionChange", oder?  
  

> Füge aber am Anfang eine Abfrage ein, dass wirklich nur eine Zelle markiert ist, weil es sonst Fehlermeldungen gibt, zum Beispiel:  
>   
> if selection.cells.count > 1 then exit sub  
  
Fein. Weiter oben "addete" (;-) ich noch eine Frage, wie ich zB. rausbekomme, ob die Tabelle mit dem Namen im aktuellen Sheet schon existiert. <https://forum.selfhtml.org/?t=188131&m=1251822>.  
  
Bisher habe ich die Prozeduren immer der Tabelle zugeordnet (Doppelklich wie oben beschrieben). "Normal" ist wohl, Makros erstmal dem ganzen Workbook zur Verfügung zu stellen? (Doppelklick auf "diese Arbeitsmappe")?  
  
Dank und Gruß  
  
jobo