[VBA]Einfügen von Formel führt zu #NAME?

Moderator: ModerationP

[VBA]Einfügen von Formel führt zu #NAME?

Beitragvon Flesby » 14. Jun 2019, 11:44

Hallo,

wenn ich die Formel

Code: Alles auswählen
k.Offset(0, 4).Value = "=IF(ISLIKE(RIGHT(RC[-3],8),""##-##-##""),RIGHT(RC[-3],8),IF(RIGHT(RC[-3],3)=""PoE"",RIGHT(RC[-3],8),RIGHT(RC[-3],5)))"


In einem Tabelleblatt via VBA einfügen lasse und sich dieses Tabellenblatt in einem Add-In befindet (*.xlsm) und die Tabelle anschließend kopiere, steht im entsprechenden Feld #NAME?

Füge ich die Formale hingegen auf einem sichtbaren Tabellenblatt ein, funktioniert sie auf Anhieb.

Kann mir jemand erklären, was es mit diesem Verhalten auf sich hat?

Vielen Dank im Voraus.
Flesby
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 48
Registriert: 26. Jul 2016, 20:42

Re: [VBA]Einfügen von Formel führt zu #NAME?

Beitragvon MisterBurns » 14. Jun 2019, 11:51

Code: Alles auswählen
k.Offset(0, 4).FormulaR1C1= "=IF(ISLIKE(RIGHT(RC[-3],8),""##-##-##""),RIGHT(RC[-3],8),IF(RIGHT(RC[-3],3)=""PoE"",RIGHT(RC[-3],8),RIGHT(RC[-3],5)))"

Aber mit ISLIKE wird Excel nichts anfangen können, zumindest nicht die deutsche Version.
Schöne Grüße
Berni
MisterBurns
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1334
Registriert: 28. Mär 2018, 13:13

Re: [VBA]Einfügen von Formel führt zu #NAME?

Beitragvon Flesby » 14. Jun 2019, 12:09

Da sagst Du was, die Funktion hatte ich irgendwann selbst mal ergänzt.

Code: Alles auswählen
Function ISLIKE(inValue As Variant _
               , hasValue As Variant _
               , Optional caseSensitive As Integer = 0)
 
  ' Define a logical return variable and assign a default value.
  Dim logicReturn As Boolean
  logicReturn = False
 
  If caseSensitive Then
 
    ' Finds a case-insensitive value as a component in a larger value.
    If inValue Like "*" + hasValue + "*" Then
      logicReturn = True
    End If
 
  Else
 
    ' Finds a case-sensitive value as a component in a larger value.
    If UCase(inValue) Like "*" + UCase(hasValue) + "*" Then
      logicReturn = True
    End If
 
  End If
  ' Return the logical value.
  ISLIKE = logicReturn
 
End Function


Wie bewege ich Excl nun dazu, diese Funktion auch anzuwenden, bei einem sichtbaren Tabellenblatt funktioniert es ja auch.
Flesby
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 48
Registriert: 26. Jul 2016, 20:42

Wo steht die UDF?

Beitragvon Luc$:-? » 14. Jun 2019, 13:13

Hallo, Flesby:
1. xlsm ist nicht die übliche Endung für ein AddIn, die lautet .xlam! Trotzdem kann man auch eine .xlsm durch setzen von IsAddin=True ausblenden.
2. Warum soll eine im AddIn definierte UDF in einer Fml auf dem unsichtbaren(!) Blatt eines AddIns angewendet wdn? Außerdem weist man Fmln auch einer (der hier zutreffenden) der 5 Range-Eigenschaften (.Formula~) und nicht der Standard-Eigenschaft .Value zu.
3. Bei einer normalen .xlsm muss eine UDF entweder in ihrem VBA-Projekt oder dem eines vereinbarten AddIns stehen, um von Xl erkannt zu wdn. Bei Verwendung der UDF im VBA-Projekt (nicht nur einer ZellFml!) einer anderen Datei reicht das allerdings nicht. Es muss dort noch ein Verweis auf das AddIn gesetzt wdn. Das sollte hier aber nicht zutreffen.
Gruß, Luc :-?
Luc$:-?
 

Re: [VBA]Einfügen von Formel führt zu #NAME?

Beitragvon Flesby » 15. Jun 2019, 01:04

Kann sein, dass ich mich verschrieben habe und das ding xlam heißt....

Warum soll das so sein, nun ich habe mehrere Arbeitsmappen und kopiere im Hintergrund alles auf ein Tabellenblatt im besagten AddIn zusammen, letztlich auch um nicht nocht mehr offne Mappen zu haben. Am Ende möchte ich diese Blatt dann kopieren und in einer eigenen Arbeitsmappe öffnen.

mfG
Flesby
Flesby
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 48
Registriert: 26. Jul 2016, 20:42

Re: [VBA]Einfügen von Formel führt zu #NAME?

Beitragvon snb » 15. Jun 2019, 14:36

Warum verwendest du kein not case sensitive:

=IFERROR(SEARCH("aaa";"dfgaamnb");"")
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6684
Registriert: 25. Sep 2014, 16:37

Re: [VBA]Einfügen von Formel führt zu #NAME?

Beitragvon Flesby » 15. Jun 2019, 22:13

Hallo snb,

ich kann dir nicht ganz folgen. Was genau bringt mir die Formel, wenn fehler?
Flesby
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 48
Registriert: 26. Jul 2016, 20:42

Sieht nach ISLIKE-Bezug aus

Beitragvon Luc$:-? » 16. Jun 2019, 00:07

Was snb dir geantwortet hat, Flesby,
scheint sich auf die von ihm vermutete Aufgabe von ISLIKE zu beziehen, stellte somit ein ErsatzAngebot dar.
Es könnte aber auch sein, dass auf diese Weise 'nur' das Auftreten von gb/kb-sensitiven Zeichen in Texten festgestellt wdn soll, was man auch anders machen könnte, aber ebenfalls mit VBA, wenn man wirklich alle evtl auftretenden Fälle erfassen wollte (in UPPER/LOWER fehlen welche). IdR sind das alles Buchstaben, allerdings gibt es ja auch einige, für die nur eine der beiden Formen existiert, zB dt ß.
Aber zurück zu deinem HptProblem. Bis Xl9/2k hat das einwandfrei fktioniert, denn ich verwende selber eine im AddIn stationierte UDF, um auf einem Blatt des AddIns einen DateiPfad zu einer HilfeDatei festzustellen. Das läuft auch noch unter Xl14/2010, selbst dann, wenn dieses AddIn gar nicht als solches aktiv ist. Falls also MS inzwischen nicht irgendwas verändert hat, sollte es bei dir auch fktionieren, anderenfalls könnte der Fehler auch an etwas Anderem liegen, das viell durch das automatische Ausblenden verursacht wird...
Erklärbar wäre der Fehler evtl dann, wenn 2 AddIns im Spiel sind und die UDF im anderen stationiert ist und somit das erste sie nicht kennt, weil es als AddIn keine xl-üblichen Verweise auf ein anderes AddIn akzeptiert, als normale Mappe aber schon. Das habe ich nun nicht auch noch untersucht. Hier würde evtl tatsächlich auch ein im VBA-Projekt gesetzter Verweis auf das andere AddIn helfen oder man muss den ganzen Pfad zur UDF mit in der Fml auf xl-übliche Weise angeben.
Ansonsten könnte es auch noch darauf ankommen, welchen Status die UDF im AddIn hat und wo sie ggf dort stationiert ist (KlassenModul, .cls?), wobei ihr Standort in einem normalen Option Private Module (.bas) normalerweise keinen Einfluss auf ihre Verwendung in einer ZellFml eines AddIn-Blattes hat.
Morhn, Luc :-?
Luc$:-?
 


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: FabMan19, jackthebender, JBruemmer, krug96, Lucky Joe, TommyDerWalker und 17 Gäste