HERBERS Excel-Forum - das Archiv

Thema: Variable als Teil des Worksheetnamen

Variable als Teil des Worksheetnamen
Andreas Hantschmann
Hallo,

ich benötige Eure Hilfe.

Ich mochte mit [counta] Daten aus einer Tabelle auslesen. (nicht das Problem) - der Name der Datenquelle zum auslesen ist allerdings variabel und besteht aus dem activen Worksheet und der Endung "_edit"

Ich möchte also auf dem Reiter Dierhagen die Daten aus dem Reiter "Dierhagen_edit" ausgeben.
Der Code soll allerdings noch in 6 weiteren Reitern die im selben Muster aufgebaut sind funktionieren, also nimm den Namen vom aktiven Reiter, packe diesen mit der Endung "_edit" in den Code und lies die Daten aus

was habe ich


Dim Aname As String
Dim iRow As Long

Aname = ActiveSheet.Name

iRow = [counta("Aname" & _edit!B:B)]

MsgBox iRow


verkürzt ich zähle die Zeilen aus - is mein Test...könnt Ihr mir bitte helfen. Ich bin bei unzähligen Foren-Artikeln durch im Kopf.

Danke der Hunchback
AW: Variable als Teil des Worksheetnamen
peter
Hallo

CountA erwartet einen Range



Dim Aname As String
Dim iRow As Long
Dim rng As Range

Aname = ActiveSheet.Name & "_edit!B:B"
Set rng = Range(Aname)

iRow = WorksheetFunction.CountA(rng)


Peter
AW: Variable als Teil des Worksheetnamen
daniel
Hi
die eckigen Klammern sind in VBA so etwas wie ein Wurmloch in die Excelwelt.
innerhalb der Klammern befindest du dich quasi in einer Excelzelle und musst dort dann "excel-formulieren" anstelle von "vba-programmieren".
das bedeutet aber auch, dass du dort keine Variablen aus VBA verwenden kannst.

Wenn du jetzt Excelfunktionalitäten kombiniert mit VBA-Methoden nutzen willst, gibt es zwei Wege:
a) VBA hat die entsprechende Excelfunktion importiert und du kannst sie - so wie von peter gezeigt - via Worksheetfunction in VBA nutzen.
b) du erstellst zu erst die benötigte Excel-Formel als Text in VBA und lässt diese dann mit EVALUATE berechnen:
irow = Evaluate("counta('" & aName & "_edit'!B:B")



kleiner Tipp: bei variablen Tabellenblattnamen sollte man immer die Hochkommas mit einsetzen.
Diese werden zwar nur dann benötigt, wenn der Dateiname ein Sonderzeichen enthält oder nur aus Zahlen besteht, da aber schon das normale Leerzeichen ein solches Sonderzeichen ist, tritt dieser Fall schnell ein.

Gruß Daniel
AW: Variable als Teil des Worksheetnamen
Andreas Hantschmann
Hallo Peter,

vielen lieben Dank - sollte mein VBA-Kenntnisse doch auf unterirdisch Ändern.
Danke für die schnelle Hilfe

Der Hunchback