Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1832to1836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Comment Threaded in Excel 2016

Comment Threaded in Excel 2016
31.05.2021 14:26:43
Katja
Moin liebes Forum,
ich hoffe Ihr könnt mir helfen.
Ich schreibe an einem Excelprogramm das bereits bei etlichen Kunden im Einsatz ist.
Bei einem Kunden verzweifele ich allerdings.
Es geht um commentthreaded.
Der Kunde hat Excel 2016 32 BIT im Einsatz.
Allerdings läuft immer ein Befehlt CommentThreaded auf ein Fehler.
Hintergrund: in diesem Excel ist der Befehl nicht enthalten, VBA kenn bei diesem Kunden einfach kein Threaded Comment.
Das scheint nur bei diesem Kunden der Fall zu sein, ich bekomme es auch einfach nicht abgefangen.
Ich frage die Excelversion an (Application.version) ob die Version 16 vorliegt (Läuft auch bei andern Kunden).
Dann habe ich ein On Error goto verbaut
Ich frage auf Nothing ab.
Trotzdem läuft der Aufruf von CommentThreaded auf einen Fehler, da dieser Befehlt einfach nicht vorhanden ist.
Was kann ich noch machen um den Fehler abzufangen, jemand eine Idee?
Oder woran kann es liegen dass Excel 2016 den Befehl nicht kennt?
Liegt es ggf. an 32 Bit Version?
Fehlendes Update VBA seitig?
Irgendwie weiß ich langsam nicht weiter.
Besten Dank für eure Hilfe
Katja

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Comment Threaded in Excel 2016
31.05.2021 14:43:25
ChrisL
Hi Katja
Wäre interessant zu wissen, wie die Fehlermeldung lautet und auf welcher Zeile der Debugger hängen bleibt.
Dass Excel 2016 das Feature nicht unterstützt kann ich nachvollziehen. Jedoch sollte das Fehlerhandling funktionieren. Vielleicht überspringt das Fehlerhandling noch andere wichtige Codezeilen, was dann zu einem Folgefehler führt.
Jedenfalls lassen sich folgende Beispiele in XL2016 mit On-Error leicht überspringen:

Sub t()
On Error Resume Next
Range("a1").CommentThreaded.Text "Test"
Range("a1").AddCommentThreaded "Test"
Range("a1").blablablabla
End Sub
cu
Chris
Anzeige
AW: Comment Threaded in Excel 2016
31.05.2021 14:48:14
EtoPHG
Hallo Profi(n) Katja,
Diese Eigenschaft gibt es erst seit Office 365 (bzw. XL 2019) und es ist katastrophal Code auf dieser Basis zu Entwickeln.
Das finde ich im Übrigen eine der Überflüssigsten Features in den immer wirrer werdenden Roadmaps und Versionen von Excel.
Gruess Hansueli
AW: Comment Threaded in Excel 2016
31.05.2021 15:09:53
Katja
Moin Hansueli,
absolut deiner Meinung.
Ich hatte auch davor gewarnt dieses Feature zu implementieren, da ich es programmatisch als schwierig empfinde.
Üblicherweise wissen ja immer alle mehr als die Person die sich damit beschäftigt.....
Ich habe mal meine aktuelle Fehlerbehandlung angefügt:
Evtl. habe ich ja einfach irgendwas übersehen und euch fällt es sofort auf.
Ihr seht die ist schon recht aufwendig geworden, ist halt immer weiter gewachsen.
Gruß
Katja

If IsNumeric(left(Application.version, 2)) Then
If CInt(left(Application.version, 2)) >= 16 Then
'28477 KB 20.5.2020 Anpassung der Fehlerbehandlung. Es gibt eben doch Excel 2016 Versionen wo das nicht Lauffähig ist
On Error GoTo jumpOvera
If Not lactsheet.Range("c1").CommentThreaded Is Nothing Then
lactsheet.Range("c1").CommentThreaded.Delete
End If
On Error GoTo Jumpover2a
jumpOvera:
lactsheet.Range("C1") = ""
Jumpover2a:
On Error GoTo handleCancel
Else
lactsheet.Range("C1") = ""
End If
Else
lactsheet.Range("C1") = ""
End If

Anzeige
AW: Comment Threaded in Excel 2016
31.05.2021 16:09:57
ChrisL
Hi
Der Schnipsel wird bei mir (XL 2016) ohne Fehlermeldung bzw. mit Fehlerhandling ausgeführt.
Da die Bedingung grösser/gleich 16 lautet, wird der CommenThreaded-Teil ausgeführt, jedoch mit jumpOvera übersprungen. Die eingefügte MsgBox "x" wird danach ausgeführt.

Sub t()
Set lactsheet = ActiveSheet
If IsNumeric(Left(Application.Version, 2)) Then
If CInt(Left(Application.Version, 2)) >= 16 Then
'28477 KB 20.5.2020 Anpassung der Fehlerbehandlung. Es gibt eben doch Excel 2016 Versionen wo das nicht Lauffähig ist
On Error GoTo jumpOvera
If Not lactsheet.Range("c1").CommentThreaded Is Nothing Then
lactsheet.Range("c1").CommentThreaded.Delete
End If
On Error GoTo Jumpover2a
jumpOvera:
lactsheet.Range("C1") = ""
MsgBox "x"
Jumpover2a:
On Error GoTo handleCancel
Else
lactsheet.Range("C1") = ""
End If
Else
lactsheet.Range("C1") = ""
End If
Exit Sub
handleCancel:
MsgBox "y"
End Sub
cu
Chris
Anzeige
AW: Comment Threaded in Excel 2016
31.05.2021 16:17:59
Katja
Hi Chris,
ja genau.
So funktioniert der Code auch bei allen anderen Kunden.
So wäre-ist- auch meine Erwartung.
Das macht es ja so kurios dass es bei einem Kunden nicht funktioniert.
Daher meine Idee ob es an dem Excel selbst liegen kann, fehlendes Update o.ä.
Irgendwo im Netz habe ich einen kleinen Nebensatz gefunden - den ich aber nicht so recht glauben kann- dass es an der Lizenz liegen kann, dass bei unbefristeten Lizenzen von Excel 2016 nicht alle Updaten auch geladen werden und CommentThreaded daher nicht verfügbar ist.
Lizenz wäre eine Katastrophe, wie soll man das absichern?
Viele Grüße
Katja
Anzeige
AW: Comment Threaded in Excel 2016
31.05.2021 16:42:04
ChrisL
Hi Katja
Updates durchführen ist immer eine gute Idee, aber würde mich erstaunen, wenn dies die Lösung des Problems wäre. Ebenfalls scheint mir ein Lizenzproblem eher unwahrscheinlich.
Wie erwähnt, selbst ein Fantasiebefehlt wie Range("A1").blabla lässt sich überspringen.
Ich würde mal den Wortlaut der Fehlermeldung und Stopp-Punkt vom Debugger erfragen. Auch wenn ich keine konkrete Lösung bereit habe, ein Kompilierungsfehler würde dann doch darauf hindeuten, dass ein grundlegendes Problem mit dem 'unbekannten' Befehl vorhanden wäre.
cu
Chris
AW: Comment Threaded in Excel 2016
31.05.2021 16:43:11
ChrisL
PS: Vielleicht Apple Mac mit komplett anderem (mir unbekanntem) Fehlerverhalten
Anzeige
AW: Comment Threaded in Excel 2016
01.06.2021 16:26:05
Katja
Moin @all,
Lösung gefunden.
Im Grunde war es ganz trivial.
Es gab vorab einen Fehler.
Da unter VBA Fehlerbehandlungen nur 1x funktionieren und ein zweiter Fehler unweigerlich zum Abbruch führt ist genau das hier passiert.
Das Kuriose ist, das Err Objekt war nicht gesetzt.
Die Anwendung von On Error Goto -1 brachte den entscheidenden Durchbruch.
Danke für eure Hilfe!
Gruß
Katja
Na, dann hast du aber Glück gehabt, ...
02.06.2021 02:25:31
Luc:-?
…Katja,
dass in diesem einen Fall VBA das doch kannte. Ansonsten will ich nicht wissen, wie deine FehlerBehandlung zuvor aussah! :-]
Morhn, Luc :-?
Nicht vorhandene VBA-Befehle, -Props, -Meths ...
31.05.2021 23:57:51
Luc:-?
…in einer bestimmten xlVBA-Version führen stets zu einem SyntaxFehler, Katja (& all),
den man nur mit bedingter Kompilierung vermeiden kann. Eine einfache Fehlerbehandlung nutzt bei derartigen VBA-Elementen nichts, da beim Kompilieren auch eine SyntaxÜberprüfung stattfindet, der eine FehlerRoutine völlig egal ist. Das kann man im VBE sehen.
Ein Pgm wird bei normalen Fehlern bis zur FehlerStelle ausgeführt und man kann den Fehler abfangen. Bei Feststellung eines SyntaxFehlers wird es gar nicht erst ausgeführt, da es nicht konsistent kompiliert wdn kann.
Übrigens kann man so auch von (einstellbaren) Bedingungen abhängige PgmAusführungen realisieren, was bspw hier gemacht wurde.
Morhn, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige