Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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

Zellkommentar bearbeiten

Zellkommentar bearbeiten
28.02.2015 14:01:14
Sibylle Weber

Hallo,
leider wird bei einem Zellkommentar immer der Username oder ? in der ersten Zeile eingeblendet.
Wie kann man einen Kommentar anfertigen ohne diesen Hinweis auf den User?
Gruß
Sibylle

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellkommentar bearbeiten
28.02.2015 14:27:37
Hajo_Zi
Hallo Sibylle,
Du könntest unter Optionen den UserNamen ersetzen durch " " , Excel schreibt aber dann " :" ob das besser ist?

Ist dem wirklich so?
28.02.2015 17:33:50
Sibylle Weber
Hallo Hajo,
Vielen Dank für Deinen Beitrag.
Alle Versuche sind bisher ins Leere gelaufen.
Kannst Du mir bitte die komplette Befehlsfolge mitteilen?
Dank im Voraus.
Gruß
Sibylle

AW: Ist dem wirklich so?
28.02.2015 17:37:22
Hajo_Zi
Hallo Sibylle,
Datei, Optionen, Allgemein.
Gruß Hajo

In der Tat ...
28.02.2015 18:53:03
Sibylle Weber
Hallo Hajo,
ich suche weiter nach einer Lösung.
Gruß
Sibylle

Anzeige
1 automatische Lösung wird's wohl nur per VBA-...
28.02.2015 20:11:51
Luc:-?
…EreignisProzedurnach deinen Vorstellungen geben können, Sibylle.
Gruß, Luc :-?

und wie könnte denn solch eine ...
28.02.2015 21:14:44
Sibylle Weber
Hallo Luc,
Ereignisprozedur aussehen?
Ich würde mich freuen, solch eine Lösung mal testen zu können.
Es ist mir unklar, welchen Sinn in einem Kommentar der Username oder ? haben soll.
Hast Du eine Erklärung welche Gründe die Entwickler für diesen Eintrag gehabt haben könnten?
Einen schönen Abend.
Gruß
Sibylle

Letzteres ist doch klar, ...
01.03.2015 03:08:46
Luc:-?
…Sibylle;
Xl ist ein Office-Pgm, also fürs Büro bestimmt. Da soll es auch sog Teamwork geben… ;-)
In diesem Fall geht MS wohl davon aus, dass die Kommentar-Fktionalität vornehmlich für Bemerkungen von unterschiedlichen Bearbeitern genutzt wird. Derjenige, der die Bemerkung gemacht hat, soll dann halt identifizierbar sein bzw seine eigenen Bemerkungen auch nach Wochen, Monaten, Jahren von denen anderer Mitarbeiter unterscheiden können. Bei privaten Dateien ist das natürlich sinnlos, aber woher soll Xl das wissen? Betriebliche Nutzung hat Vorrang, bringt ja MS auch mehr ein… ;-)
Das Andere ist nicht schwer → evtl im Laufe des Sonntags oder Montag, falls nicht jemand schneller ist…
Morrn & schöSo, Luc :-?

Anzeige
Jetzt der Sinn klar geworden und ...
01.03.2015 10:52:36
Sibylle Weber
Hallo Luc,
und ich freue mich sehr auf die Ereignisprozedur.
Vielen Dank für die Erklärung und vielen Dank im Voraus.
Einen schönen Sonntag.
Gruß
Sibylle

So, sind gleich 2 geworden m.MindestKomfort, ...
02.03.2015 02:00:51
Luc:-?
…Sibylle;
hoffe, du kennst dich mit EreignisProzeduren aus, sonst muss ich dir das Anlegen im bereits vorhandenen DokumentKlassenModul des betreffenden Blattes erst noch erklären. Das sollte man tatsächlich immer auf die vorgesehene Weise über die beiden DropDowns im Kopf des HptFensters des VBEditors tun, weil die ProzedurKöpfe bei manchen XlVersionen etwas abweichen können. Diese Köpfe dürfen dann auch nicht verändert wdn! Ich zeige das im Folgenden zwar komplett, aber leg' bitte die Prozeduren wie erwähnt an und kopiere die Prozedurkörper auf die Leerzeile zwischen Kopf und Fuß der entsprd Prozedur. Falls die Köpfe der LeerProzeduren mit den hier gezeigten übereinstimmen, kannst du aber auch gleich alles aufkopieren. Danach sollte es jedenfalls im Prinzip so aussehen wie nachfolgd gezeigt (die ModulVariable am Anfang nicht vergessen!):
Option Explicit
Dim adLastGenCmt As String

Rem Erzeugt leeren Kommentar per Rechtsklick (m.Nachfrage)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If adLastGenCmt <> "" Then _
Me.Range(adLastGenCmt).Comment.Visible = False: adLastGenCmt = ""
If Target.Count > 1 Then Exit Sub
If Target.Comment Is Nothing Then _
Cancel = CBool(MsgBox("Leeren Kommentar erzeugen?", _
vbQuestion + vbYesNo, "Kommentar") - vbNo)
If Cancel Then Target.AddComment "": Target.Comment.Visible = _
True: adLastGenCmt = Target.Address(0, 0)
End Sub

Rem Korrigiert vorhandene Kommentare per Linksklick (ZellAuswahl)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim p As Long
If adLastGenCmt <> "" Then _
Me.Range(adLastGenCmt).Comment.Visible = False: adLastGenCmt = ""
If Target.Count > 1 Then Exit Sub
If Not Target.Comment Is Nothing Then
With Target.Comment
p = InStr(.Text, ":" & vbLf)
If CBool(p) Then .Shape.TextFrame.Characters(1, p + 1).Delete
End With
End If
End Sub
Gruß & schöMo, Luc :-?

Anzeige
Noch ein Hinweis, ...
02.03.2015 02:20:40
Luc:-?
…Sibylle;
falls du in Kommentaren Zwischenüberschriften, die mit : und nachfolgd Zeilenumbruch enden, verwenden willst, solltest du zwischen : und Zeilenumbruch immer noch ein Leerzeichen setzen, sonst wird alles bis dahin bei Auswahl dieser Zelle ebenfalls gelöscht, es sei denn, du verwendest folgd ProzVersion und stellst die Konstante am PgmAnfang nach deinen Bedürfnissen so ein, dass das immer vermieden wird:
Rem Korrigiert vorhandene Kommentare per Linksklick (ZellAuswahl)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const maxPosEntfZEnde As Long = 20
Dim p As Long
If adLastGenCmt <> "" Then _
Me.Range(adLastGenCmt).Comment.Visible = False: adLastGenCmt = ""
If Target.Count > 1 Then Exit Sub
If Not Target.Comment Is Nothing Then
With Target.Comment
p = InStr(.Text, ":" & vbLf)
If CBool(p) And p <= maxPosEntfZEnde Then _
.Shape.TextFrame.Characters(1, p + 1).Delete
End With
End If
End Sub
Luc :-?

Anzeige
Noch ist es nicht ohne
02.03.2015 14:41:47
Sibylle Weber
Hallo Luc,
eine weitere Hilfe lösbar.
Ich danke Dir für Deine Ereignisprozeduren - leider konnte ich nicht früher reagieren -, benötige aber tatsächlich Deine weitere Unterstützung.
Wenn ich das richtig sehe, kommen Ereignisprozeduren wohl in ein Modul?
Werden die beiden DropDowns im Kopf des HptFensters des VBEditors automatisch erstellt?
Ich würde mich riesig freuen, wenn Du den Einbau der Prozeduren erklären würdest.
Dank im voraus.
Gruß
Sibylle

Ja, so ist es, ...
02.03.2015 22:20:43
Luc:-?
…Sibylle,
und zwar nicht in eines, das du erst anlegen müsstest, sondern in das im VBE-ProjektExplorer gezeigte des Blattes, idR als …
Tabelle#(deinTabName) [für # = lfdNr]
…bezeichnet. Das relevante Blatt doppelklicken und im linken DropDown-Menü des Kopfes des HauptFensters Worksheet auswählen → es wird automatisch der Rahmen (Kopf- u.Fußzeile) der StandardEreignisProzedur des Blattes angelegt. Um den Rahmen der nächsten Prozedur anzulegen, danach das rechte DropDown-Menü benutzen und dort auf BeforeRightClick klicken → dieser Rahmen wird dann ebenfalls angelegt. Stimmen die Rahmen völlig mit den von mir verwendeten überein, was idR so ist, kannst du alles wieder löschen und meinen PgmCode komplett einkopieren. Ansonsten das nun Vorhandene mit den entsprd Teilen meiner Codes so ergänzen, dass sich das gleiche Bild (dann mit Ausnahme der Prozedurköpfe) ergibt.
Viel Erfolg, Luc :-?
Besser informiert mit …

Anzeige
Ist gar nicht so einfach,
03.03.2015 08:57:55
Sibylle Weber
Hallo Luc,
so eine Ereignisprozedur einzurichten. Leider läuft diese noch nicht.
Vielen Dank für Deine weitere Hilfe. Leider bringe ich es trotz der ausführlichen Beschreibung nicht hin.
Meine Vorgehensweise war folgende:
Die Mappe hat den Namen Kommentar, die Tabelle den Namen KommentarmM (mM = mit Makro).
Mit Alt F11 wurde der VBEditor geöffnet, die Tabelle 1 (mM) – weshalb hier nicht KommentarmM steht ist unklar – markiert und mit Einfügen Modul das Modul1 eingefügt, das nun Teil des VBAProjekts (Kommentar.XLSM) ist.
Danach wurde Modul1 doppelgeklickt und Deine beiden Ereignisprozeduren in den Codebereich eingefügt. Am linken Teil des Kopfes dieses Bereiches steht nun (Allgemein), an der rechten oberen Seite dieses Bereichs steht Worksheet_BeforeRightClick bzw. Worksheet_SelectionChange bei der 2. Prozedur.
Dann wurde gespeichert mit Kommentar.XLSM.
Sicher erkennst Du meine fehlerhafte Vorgehensweise und kannst mich bitte entsprechend korrigieren. Besten Dank im Voraus.
Einen schönen Tag.
Gruß
Sibylle

Anzeige
Sicher, genauso habe ich es ja auch NICHT ...
03.03.2015 09:19:34
Luc:-?
…beschrieben, Sibylle;
ich hatte bereits vorhandenes Modul geschrieben und nichts von Modul einfügen! Das von dir eingefügte Modul1 ist ein sog normales Modul, in dem läuft nichts automatisch (viell solltest du doch mal in die VBE-Hilfe schauen →Ereignisse des Blattes; leider geht das bei deiner Xl-Version nur mühselig online → von MS wohl mit böser Absicht verschlimmbessert!).
Für Ereignisse muss ein KlassenModul benutzt wdn. Das benötigte ist bereits vorbereitet, weshalb ich auf das relevante Blatt im ProjektExplorer doppelklicken geschrieben hatte (du kannst auch Rechtsklick nehmen und dann Code anzeigen wählen). Im HauptFenster wird dann ein leeres Blatt (quasi die Rückseite des TabellenBlattes) angezeigt, das im Kopf die beiden DropDown-Möglichkeiten zeigt.
Das Modul1 kannst du wieder entfernen!
Morrn, Luc :-?

Anzeige
Nachtrag:
03.03.2015 09:32:04
Luc:-?
Hier ist das übrigens noch ausführlicher erklärt.
Luc :-?

ein weiterer Schritt ...
03.03.2015 10:27:38
Sibylle Weber
Hallo Luc,
Modul 1 ist gelöscht.
Unter Klassenmodule ist ein Symbol zu sehen mit dem Namen Klasse 1. Bei einem Doppelklick auf Klasse 1 blinkt die Schreibmarke im Codebereich auf.
Nun schreibst Du:
leg' bitte die Prozeduren an und kopiere die Prozedurkörper auf die Leerzeile zwischen Kopf und Fuß der entsprd Prozedur. Aber wie legt man die Prozedurköpfe an?
Danach sollen die beiden Prozedurkörper eingefügt werden.
Bekommen wir das noch hin? Dank im voraus.
Gruß
Sibylle

Anzeige
Kein Modul anlegen! Es ist doch schon da! owT
03.03.2015 16:22:16
Luc:-?
:-?

Einfache Lösung ...
04.03.2015 12:32:01
Sibylle Weber
Hallo Luc,
vielen Dank für Deine zahlreichen Hilfen.
Eine einfache Lösung wäre: Du setzt einen Kommentar und die beiden Ereignisprozeduren in eine Tabelle und leitest einen Upload ein. Was meinst Du dazu?
Dank im Voraus.
Gruß
Sibylle

Ich fürchte nur, dass, so wie du bisher meiner ...
04.03.2015 15:53:12
Luc:-?
…Anleitung gefolgt bist, Sibylle,
du den PgmCode niemals in der Datei entdecken wirst… ;->
Aber bitte sehr, das Bsp findest du hier.
Luc :-?

Danke
05.03.2015 18:50:37
Sibylle Weber
Hallo Luc,
ich danke Dir für die Mappe.
Der Code wird angezeigt unter Tabelle1, aber zum Laufen bringe ich ihn nicht. Schade.
Gruß
Sibylle

Anzeige
Wie wolltest du ihn denn 'zum Laufen' bringen, ...
05.03.2015 20:19:07
Luc:-?
…Sibylle,
der läuft doch automatisch, wenn du auf die KomentarZellen zum Selbstversuch klickst oder einen Rechtsklick auf eine Zelle ausführst. Es sei denn, Xl365 verwendet andere Köpfe, weshalb ich dir das Anlegen einer Ereignisprozedur erläutert hatte. Da du ja jetzt das richtige Blatt gefunden hast, worauf ich dich die ganze Zeit hinzuweisen versucht hatte, müsstest du das in deiner OriginalMappe nun nachvollziehen können. Es könnte natürlich sein, dass deine Version Makros blockiert, die musst du dann noch zulassen, u/o dass die Ereignisreaktion abgestellt ist. Das kannst du über ein Pgm in einem normalen Modul überprüfen:
Sub EventFlipFlop()
Dim isEvOn As Boolean
With Application
isEvOn = .EnableEvents
If MsgBox(IIf(isEvOn, "Aus", "Ein") & "schalten?", vbQuestion + _
vbYesNo, "EventReakt: " & IIf(isEvOn, "Ein", "Aus") = _
vbYes Then .EnableEvents = Not isEvOn
End With
End Sub
Gruß, Luc :-?

Es läuft nicht ...
06.03.2015 14:55:29
Sibylle Weber
Hallo Luc,
das neue Makro läuft nicht. Wenn man es im Modus Einzelschritt prüft, dann wird folgende Fehlermeldung angezeigt:
Fehler beim Kompilieren, Syntaxfehler.
Was ist zu tun?
Gruß
Sibylle

Eine Klammer fehlte, ...
06.03.2015 15:05:24
Luc:-?
…Sibylle:
Sub EventFlipFlop()
Dim isEvOn As Boolean
With Application
isEvOn = .EnableEvents
If MsgBox(IIf(isEvOn, "Aus", "Ein") & "schalten?", vbQuestion + _
vbYesNo, "EventReakt: " & IIf(isEvOn, "Ein", "Aus")) = _
vbYes Then .EnableEvents = Not isEvOn
End With
End Sub
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige