Naja nicht ganz. Mit Application.Caller erhältst du lediglich den Namen des Buttons der gedrückt wurde. Du müsstest dann über ActiveSheet.Shapes auf diesen Button zugreifen und über dessen .TopLeftCell-Eigenschaft die Zeilennr (.Row) oder die ganze Zeile (.EntireRow) abfragen. Das ist aber gefährlich. Wenn du Zeilen ausblendest und einfügst, kann es u.U. dazu kommen, dass sich die Buttons verschieben und diese Eigenschaft dann auf eine andere Zeile als die gewünschte verweist.
Ich würde auf die Erstellung von Buttons gänzlich verzichten und im Worksheet_Change-Ereignis über Target.EntireRow mit Hilfe von WorksheetFunction.CountA die Anzahl der eingetragenen Zellen abfragen. Entspricht diese der vorgegebenen Zahl von Pflichtfeldern, kannst du den von EntireRow zurückgebenen Range an dein Makro übergeben.
Gruß Mr. K.
|