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

Kommentarfelfd

Kommentarfelfd
Ernst
Hallo Vba Experten !
gibt es eine Möglichkeit das Kommentarfeld per doppelklick aufzurufen ?
Wäre für lösungsvorschläge Dankbar.
lg.Ernst
Was verstehst du unter aufrufen ? (owT)
22.03.2010 09:50:26
Renee

AW: Was verstehst du unter aufrufen ? (owT)
22.03.2010 09:55:22
Ernst
Hallo !
ich verstehe unter Aufrufen,was ich normalerweise mit rechter Maustaste ,Kontexmenü ,Kommentar einfügen erreiche !
lg.Ernst
Und warum eine neue Funktion,
22.03.2010 10:09:30
Renee
für eine schon bestehende, Ernst?
Ich sehe keinen grossen Sinn in einer solchen Aktion.
Was soll den passieren ?
MUSS dann ein Kommentar eingefügt werden ?
Soll dann ein Kommentar-Text abgefragt werden oder direkt ein fixer eingefügt werden ?
Soll der/die KommentatorIn ebenfalls im Kommentar stehen ?
Was soll passieren, wenn bereits ein Kommentar vorhanden ist ?
Gilt das für jede Zelle der Auswahl ?
Fragen über Fragen! Aber die Hauptfrage bleibt "Warum etwas Programmieren, dass dann anders funktionier, wie das vorgegebene Standard-Verhalten von Excel ?"
GreetZ Renée
Anzeige
AW: Und warum eine neue Funktion,
22.03.2010 10:20:09
Ernst
Hallo !
Danke für die rasche Antwort.
Also es handelt sich um eine Spalte in der Fehler durch eine "x" Eingabe in den Jeweilligen Zellen markiert werden die x Eingabe wird durch einen Doppelklick erzeugt ,gleichzeitig möchte ich das kommentarfeld aufrufen um den Fehler zu dokumentieren.
ist sowas möglich bzw.gibt es hierfür einen anderen Lösungsansatz ?
lg.Ernst
AW: Und warum eine neue Funktion,
22.03.2010 10:32:02
Reinhard
Hallo Ernst,
den Fokus kriegt er leider nicht. Müßte man ggfs. ein Textfeld zur Eingabe drüberlegen o.ä.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo Hell
Cancel = True
Target.Value = "x"
Target.AddComment
Target.Comment.Visible = True
Target.Comment.Shape.Select
Exit Sub
Hell:
Target.Comment.Text ""
Resume Next
End Sub

Gruß
Reinhard
Anzeige
AW: Und warum eine neue Funktion,
22.03.2010 10:36:09
Renee
Hi Ernst,
Das könnte dann z.B.so aussehen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' Beispiel für Spalte C (=3)
If Target.Column  3 Or Target.Count > 1 Then Exit Sub
If Target = "x" Then
If vbOK = MsgBox("Eintrag und Kommentar löschen?", _
vbExclamation + vbOKCancel) Then
Target = ""
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Cancel = True
End If
Else
Cancel = True
Target = "x"
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Target.AddComment (InputBox("Bitte Fehlerbeschreibung eingeben:", _
"Begründung", "Fehlerbeschreibung?"))
Cancel = True
End If
End Sub

GreetZ Renée
Anzeige
Kleine Korrektur/Verbesserung:
22.03.2010 10:38:48
Renee
Hi,
Bei Abbruch oder Schliessen der Inptubox einen Fehler verhindern. darum besser:
        Target.AddComment (InputBox("Bitte Fehlerbeschreibung eingeben:", _
"Begründung", "Fehlerbeschreibung?") & "")

GreetZ Renée
AW: Kleine Korrektur/Verbesserung:
22.03.2010 10:56:26
Ernst
Hallo !
Danke für die Lösung
genau das was ich mir vorgestellt habe, wenn ich allerdings auf abrechen gehe wenn die msg Box Fehlerbeschreibung kommt erhalte ich einen Laufzeitfehler 1004 ansonst perfect !
Anbei der Code um den es geht
lg.Ernst
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
Dim zelle As Long
If Not Intersect(Target, Range("B8:B105,F8:F105,J8:J105")) Is Nothing Then
Application.EnableEvents = False
With Target
NumberFormat = "dd.mm.yyyy"
.Value = Date
End With
Application.EnableEvents = True
For i = 6 To 247
Next
Cancel = True
ElseIf Not Intersect(Target, Range("C8:C105,G8:G105,K8:K105")) Is Nothing Then
UserForm1.Show
Cancel = True
Else
'   x in die Zelle
Dim RaBereich As Range
Set RaBereich = Range("l8:l87,m8:m87")
If Intersect(Target, RaBereich) Is Nothing Then Exit Sub
' Abbruch, wenn Aktion nicht im Zielbereich
Application.EnableEvents = False
Cancel = True
If Target.Value = "X" Then
Target.Value = ""
Else
Target.Value = "X"
End If
Application.EnableEvents = True
Set RaBereich = Nothing
If Target.Column  13 Or Target.Count > 1 Then Exit Sub
If Target = "x" Then
If vbOK = MsgBox("Eintrag und Kommentar löschen?", _
vbExclamation + vbOKCancel) Then
Target = ""
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Cancel = True
End If
Else
Cancel = True
Target = "x"
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Target.AddComment (InputBox("Bitte Fehlerbeschreibung eingeben:", _
"Begründung", "Fehlerbeschreibung?"))
Cancel = True
End If
End If
End Sub

Anzeige
Siehe meine Korrektur-Zeile!! (owT)
22.03.2010 11:02:48
Renee

AW: Siehe meine Korrektur-Zeile!! (owT)
22.03.2010 11:14:02
Ernst
Hallo !
Also wenn ich das richtig verstanden habe sollte bei bereits bestehendem Kommentar MsgBox("Eintrag und Kommentar löschen? erscheinen ,erscheint allerdings nicht , weiters wenn info MsgBox erscheint und ich auf abbrechen gehe kommt Laufzeitfehler 1004 "
Wäre für Lösung noch dankbar.
lg.Ernst
Mach überall "X" (Gross, statt klein x) (owT)
22.03.2010 11:23:43
Renee

AW: Mach überall "X" (Gross, statt klein x) (owT)
22.03.2010 11:36:35
Ernst
Hallo !
Danke das klappt jetzt mit der ersten MsgBox allerdings steckt irgendwo noch ein Fehler drinn und zwar wenn ich in der Spalte M auf die sich der Code bezieht in eine leere Zelle doppelklicke wird das X gesetzt anschliesend erscheint sofort eintrag löschen anstatt fehlerbeschreibung !
was gehört da noch geändert ?
lg.Ernst
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
Dim zelle As Long
If Not Intersect(Target, Range("B8:B105,F8:F105,J8:J105")) Is Nothing Then
Application.EnableEvents = False
With Target
NumberFormat = "dd.mm.yyyy"
.Value = Date
End With
Application.EnableEvents = True
For i = 6 To 247
Next
Cancel = True
ElseIf Not Intersect(Target, Range("C8:C105,G8:G105,K8:K105")) Is Nothing Then
UserForm1.Show
Cancel = True
Else
'   x in die Zelle
Dim RaBereich As Range
Set RaBereich = Range("l8:l87,m8:m87")
If Intersect(Target, RaBereich) Is Nothing Then Exit Sub
' Abbruch, wenn Aktion nicht im Zielbereich
Application.EnableEvents = False
Cancel = True
If Target.Value = "X" Then
Target.Value = ""
Else
Target.Value = "X"
End If
Application.EnableEvents = True
Set RaBereich = Nothing
If Target.Column  13 Or Target.Count > 1 Then Exit Sub
If Target = "X" Then
If vbOK = MsgBox("Eintrag und Kommentar löschen?", _
vbExclamation + vbOKCancel) Then
Target = ""
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Cancel = True
End If
Else
Cancel = True
Target = ""
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Target.AddComment (InputBox("Bitte Fehlerbeschreibung eingeben:", _
"Begründung", "Fehlerbeschreibung?"))
Cancel = True
End If
End If
End Sub

Anzeige
Da stehen mir Haare zu Berge...
22.03.2010 14:32:54
Renee
Ernst,
Dein Code hat x überflüssige, sinnfreie Zeilen, ist schwer lesbar und macht Sachen doppelt, andere falsch und für Ähnliches verschieden !!
Dieser weniger:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 then Exit Sub
Application.EnableEvents = False
If Not Intersect(Target, Range("B8:B105,F8:F105,J8:J105")) Is Nothing Then
With Target
.NumberFormat = "dd.mm.yyyy"
.Value = Date
End With
Cancel = True
End If
If Not Intersect(Target, Range("C8:C105,G8:G105,K8:K105")) Is Nothing Then
UserForm1.Show
Cancel = True
End If
If Not Intersect(Target, Range("L8:L87,M8:M87")) Is Nothing Then
If Target = "X" Then
If vbOK = MsgBox("Eintrag und Kommentar löschen?", _
vbExclamation + vbOKCancel) Then
Target = ""
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Cancel = True
End If
Else
Cancel = True
Target = "X"
If Not Target.Comment Is Nothing Then Target.Comment.Delete
Target.AddComment (InputBox("Bitte Fehlerbeschreibung eingeben:", _
"Begründung", "Fehlerbeschreibung?") & "")
Cancel = True
End If
End If
Application.EnableEvents = True
End Sub

GreetZ Renée
Anzeige
AW:Perfekt..Danke !
22.03.2010 15:05:33
Ernst
Hallo Renee!
Ich hoffe es sind dir keine ausgegangen.
ggggg
Recht herzlichen Dank für deine Bemühungen .
Jetzt funktioniert alles so wie gewollt.
lg.Ernst

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige