Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
704to708
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
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nach Makro Zelle verlassen (1x nach rechts)

Nach Makro Zelle verlassen (1x nach rechts)
07.12.2005 09:26:33
Glen
Hallo liebe Excelgemeinde
Durch nette Helfer kann ich seit einiger Zeit folgend geniales Makro nutzen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim eing As String
eing = InputBox("Bitte hinterlegen Sie ihren Kommentar!")
If eing <> "" Then
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:=eing
End If
End Sub

Nun fällt mir nach einiger Zeit ein kleiner Schönheitsfehler auf. Kann mir bitte jemand sagen, wie man dieses "Fehlerchen" entfernen kann.
Das Makro ruft nach Doppelklich in einer beliebigen Zelle eine Inputbox auf, in der man einen Kommentar ablegen kann. Nach bestätigen mit OK ist der Kommentar drin und die Inputbox weg (was so auch i.O. ist). Doch die Zelle ist jetzt "offen"; also bereit um hinein zu schreiben. Genau das ist der von mir bezeichnete "Schönheitsfehler". Kann man das Makro dahingehend erweitern, dass nach drücken auf OK (und auch Abbrechen) die nächste Zelle angesprungen wird, ohne das diese "offen" ist?
Besten Dank im voraus allen Helfern
Grüsse, Glen

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

Betreff
Datum
Anwender
Anzeige
AW: Nach Makro Zelle verlassen (1x nach rechts)
07.12.2005 09:29:28
Andi
Hi,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim eing As String
eing = InputBox("Bitte hinterlegen Sie ihren Kommentar!")
If eing <> "" Then
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:=eing
End If
Cancel = True
End Sub

Schönen Gruß,
Andi
Quatsch
07.12.2005 09:33:07
Andi
Wenigstens die Betreffzeile sollte man sich aufmerksam durchlesen, bevor man antwortet... :-)
Wenn Du eins nach rechts springen willst, dann so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim eing As String
eing = InputBox("Bitte hinterlegen Sie ihren Kommentar!")
If eing <> "" Then
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:=eing
End If
Target.Offset(0, 1).Select
End Sub

Schönen Gruß,
Andi
Anzeige
AW: Nach Makro Zelle verlassen (1x nach rechts)
07.12.2005 10:15:51
Matthias
Hallo Glen,
im Code Cancel=True setzen, oder wie Andi schreibt, wenn du die nächste Zelle anspringen willst.
Gruß Matthias
P.S: Dein Code führt zum Laufzeitfehler, wenn schon ein Kommentar vorhanden ist.
Frage nicht wieder, sondern neu offen :-)
07.12.2005 10:59:37
Glen
Hallo liebe Leute
Danke an Andi und Mathias G
Toll! der Schönheitsfehler ist weg und ein neuer (Matthias hat's gemerkt) da.
Wie kann man den Laufzeitfehler abfangen der erscheint, wenn bereits ein Kommentar drin steht?
Habe mit meiner "bloss Recorder VBA-(Erfahrung)" folgendes probiert:
Den Teil von "Else" bis "End If" habe ich verbrochen

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim eing As String
eing = InputBox("Bitte hinterlegen Sie ihren Kommentar!")
If eing <> "" Then
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:=eing
Else
ActiveCell.Comment Then
MsgBox "Hier steht schon etwas drin", vbOKOnly, "Kommentar existiert bereits"
End If
Target.Offset(0, 1).Select
End Sub

was natürlich nicht geht.
Kann mir jemand helfen?
Grüsse, Glen
Anzeige
AW: Frage nicht wieder, sondern neu offen :-)
07.12.2005 11:04:16
Andi
Hi,
was soll denn passieren, wennn schon ein Kommentar da ist?
Abbruch?
oder Ergänzung des vorhanden Kommentars durch die neue Eingabe?
oder Ersetzen des vorhandenen Kommentars duch die neue Eingabe?
Schönen Gruß,
Andi
AW: Frage nicht wieder, sondern neu offen :-)
07.12.2005 11:13:58
Glen
Hallo Andi
Sensationell wäre natürlich die Möglichkeit den Kommentar zu erweitern.
Gruss, Glen
AW: Frage nicht wieder, sondern neu offen :-)
07.12.2005 11:28:43
Andi
Hi,
so wird dem Kommentar jedesmal ne neue Zeile hinzugefügt:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim eing As String
With Target
eing = InputBox("Bitte hinterlegen Sie ihren Kommentar!")
If eing <> "" Then
If .Comment Is Nothing Then .AddComment
.Comment.Visible = False
.Comment.Text Text:=.Comment.Text & eing & Chr(10)
End If
.Offset(0, 1).Select
End With
End Sub

Ich hab mir erlaubt, ActiveCell gegen Target zu ersetzen; wenn das Ereignis sowas schon anbietet, sollte man es imho auch nutzen. Außerdem hab ich aus Gründen der Übersichtlichkeit die with-Anweisung verwendet, um nicht jedesmal wieder
Target.[irgendwas] schreiben zu müssen, sondern einfach nur .[irgendwas]
Schönen Gruß,
Andi
Anzeige
Andi du bist grossartig ! tausend Dank
07.12.2005 11:34:30
Glen
Super Lösung Andi!!!!!!
Nochmals vielen Dank und dir (und auch allen anderern Helfern und Forumbesucher) einen schönen Tag, frohe Adventszeit, und anschliessend schöne Weihnachtstage.
Gruss, Glen
Gern geschehen...
07.12.2005 11:44:49
Andi
und vielen Dank für die nette Rückmeldung; da macht's gleich doppelt Spaß zu helfen!
Dir auch ne schöne Adventszeit,
schönen Gruß,
Andi
AW: Gern geschehen...
07.12.2005 11:49:36
Matthias
Hi Andi,
er hat aber den guten Rutsch und frohe Ostern vergessen ;-))
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige