Jörg: VB-Script und Excel Button

Beitrag lesen

Hi,

Ich muss nur jedesmal aufwendig erst vorne in die Tabelle (also die Auswertung) wieder den Namen eingeben (den von den Blättern -> sicher auch via activesheet.range("C2").value = Traegername realisierbar richtig?).

Jaein. Die Auswertung ist ja in dem Moment nicht das aktive Blatt, also nicht das ActiveSheet. Du hast nun zwei Möglichkeiten. Entweder Du aktivierst das Blatt mit

Sheets("Auswertung").Select

, allerdings sollte man "Select" und "Activate" weitestgehend vermeiden. Jedoch könntest Du dann Deine Zeile verwenden. Oder Du sprichst das Blatt direkt an:

Sheets("Auswertung").Range("C2").Value = …

Das ist die elegantere Methode.

Das man das automatisch machen könnte, wäre sicherlich nicht so schwer mit der Funktion nehme ich an. Es muss halt nur erkannt werden das immer die folgende LEERE Zelle genutzt wird. Der Button mit dem alles ausgeführt wird, ist übrigens auf dem selben Blatt.

Die erste leere Zelle in Spalte C kannst Du so abfragen:

lngZ = Cells(rows.count, 3).End(XlUp).row + 1

Die 3 steht für Spalte C.
Falls das auf dem Blatt Auswertung geschehen soll, müsste es so sein:

lngZ = Sheets("Auswertung").Cells(rows.count, 3).End(XlUp).row + 1

Nur wäre es nun schön wenn in der Funktion von oben -> =ZÄHLENWENN(TraegerXYZ!H:H;Haupt!AQ9) der Name TraegerXYZ automatisch gesetzt werden würde (auf dem Auswertungsblatt). Dann würde das mühsame erstellen entfallen. Im gleichen Zuge sollte natürlich diese Zelle unter Auswertung erstellt werden. Sonst würde das ja auch kein Sinn machen.

Einfach mal als Ansatz (ungetestet):

Sheets("Auswertung").cells(lngz, 3).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!H:H;Haupt!AQ9)"

Klappt's?

Viele Grüße

Jörg