jobo: VBA, Excel, dynamisch Funktionen zuweisen

Beitrag lesen

Hallo Jörg,

Moin,

»» Und das "Cancel" hilft wobei?

setze es mal auf true: ;-)

cancel = true

Damit wird die eigentliche Funktion des Doppelklicks (Editiermodus der Zelle) nicht ausgeführt.

Gut zu wissen. Macht ja Sinn, wenn die Felder nicht user-editierbar (readonly) sein sollen.

»» Ja, "aber" dann habe ich Deinen Codeschnippsel vielleicht missverstanden. Ich möchte nicht testen ob string "bla" im Range B1:B10 vorkommt, sondern ob "Name1" als Tabellenblatt in Workbook "Abc" vorkommt. So dass ich Workbooks.open("Abc.xls") mach kann um dann mit Workbooks("Abc.xls").Worksheets("Name1") darauf zugreifen kann, ohne einen Fehler zu bekommen Worksheet "Name1" does not exist oder was dann kommen würde.

Dann gibt es zwei Möglichkeiten:

  1. Du gehst mit einer Schleife über die Blätter

dim bolVorhanden as boolean, objBlatt as object
bolvorhanden = false
for each objblatt in workbooks("XYZ").sheets
if objblatt.name = "XXX" then bolvorhanden = true: exit for
next

Gut, das geht ja auch prima. Sowas wie "ObjectExists()" gibts wohl nicht, ist ja mit o.g. auch nicht wirklich nötig.

  1. Du provozierst einen Fehler und behandelst den:

dim varA

on error goto nichtvorhanden
vara = workbooks("XXX").sheets("YYY").range("A1")
goto vorhanden

NICHTVORHANDEN:
Dein Code, wenn das Blatt fehlt

VORHANDEN:
Hier geht es weiter

err.clear
on error goto 0

Naja, lieber in dem Fall wohl nicht, schön aber auch die Syntax hier mit goto und on error mal zu sehen bzw. zu wissen, dass das so auch geht

Danke!

Gruß

Robert aka jobo