Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1468to1472
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
Zwingender Kommentar bei Änderung einer Zelle
26.01.2016 11:40:47
Henny
Hallo zusammen,
ich möchte in einem Excelsheet den User dazu zwingen ein Kommentar (über eine Inputbox) zu verfassen, wenn er in Tabelle 2 in Zelle F8 einen Wert einträgt.
Dieser Kommentar soll dann in Zelle H8 geschrieben werden.
Da Ganze soll auch für (F9 (Eingabe) und H9 (Kommentar), F10 und H10) gelten.
Ich habe folgenden Code gefunden:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tmp As String, antw As Integer
If Not IsEmpty(Tabelle2.Range("F8").Value) Then
Do
tmp = InputBox("Eingabe erwartet !", "Eingabe-Box", "Test")
If tmp = "" Then antw = MsgBox("Aber doch bitte was eingeben oder jetzt [Abbrechen] drü _
cken !", 1)
If antw = 2 Then Exit Do
Loop Until tmp  ""
End Sub
Allerdings öffnet sich mit diesem für jede Zelle das Kommentarfeld. Zudem fehlt noch, dass der Wert in die Spalte H eingetragenw wir (Tabelle2.Range("H8).value = tmp)
ansonsten gefällt mir der Sub gut weil er den User zwei mal auffodert.
Kann mir jemand helfen?
Vielen Dank!
Henny

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwingender Kommentar bei Änderung einer Zelle
26.01.2016 12:15:53
fcs
Hallo henny,
mit den folgenden Anpassungen des Makros wrd die Abfrage nach dem Kommentar auf die 3 Zellen begrenzt.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tmp As String, antw As Integer, sZelle As String, Zelle_Kom As Range
sZelle = Target.Address(Rowabsolute:=False, columnabsolute:=False, _
ReferenceStyle:=xlA1)
Select Case sZelle
Case "F8", "F9", "F10"
Set Zelle_Kom = Target.Offset(0, 2) 'Komentar in SPalte H eintragen
If Not IsEmpty(Target) Then
Do
tmp = InputBox("Eingabe erwartet !", "Kommentar zu Eingabe in Zelle " & sZelle, _
"Test")
If tmp = "" Then
antw = MsgBox("Aber doch bitte was eingeben oder jetzt [Abbrechen] drücken !",  _
_
vbOKCancel, "Kommentar zu Eingabe in Zelle " & sZelle)
If antw = vbCancel Then Exit Do
Else
Zelle_Kom.Value = tmp
End If
Loop Until tmp  ""
End If
End Select
End Sub

Anzeige
AW: Zwingender Kommentar bei Änderung einer Zelle
27.01.2016 09:59:30
Henny
Hallo Franz,
das ist schon fast ganz genau das was ich brauche.
Wo muss ist denn If antw = 2 Then Exit Do einbauen, damit ich maximal zwei mal das ganze durchführe?
Ich würde gerne noch den Befehl geben, dass die Zelle in Spalte H wieder gelöscht wird, wenn man auf Abbrechen drückt. Denke der Befehl müsste lauten szelle.Clearcontents
Habe versucht ihn vor Exit do einzufügen. Passiert aber nichts.
Danke und Gruß
Henny

AW: Zwingender Kommentar bei Änderung einer Zelle
27.01.2016 13:16:52
fcs
Hallo Henny,
vbCancel ist eine VBA-Konstante, die den Wert 2 hat.
Wenn der vorhandene Kommentar gelöscht werden soll, dann muss der Inhalt der Zelle gelöscht werden, die der Variablen "Zelle_Kom" zugewiesen wurde.
Mit den folgenden Anpassungen wird der Kommentar bei "Abbrechen" gelöscht.
Die Meldung nach Abbrechen in der Input-Box wird nach dem 2. Abbrechen nicht mehr angezeigt.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tmp As String, antw As Integer, sZelle As String, Zelle_Kom As Range
sZelle = Target.Address(Rowabsolute:=False, columnabsolute:=False, _
ReferenceStyle:=xlA1)
Select Case sZelle
Case "F8", "F9", "F10"
Set Zelle_Kom = Target.Offset(0, 2) 'Zelle setzen, in die Komentar eingetragen wird
If Not IsEmpty(Target) Then
Do
tmp = InputBox("Eingabe erwartet !", "Kommentar zu Eingabe in Zelle " & sZelle, _
"Test")
If tmp = "" Then 'Abbrechen wurde gewählt oder Eingabefeld leer gelassen
If antw = 0 Then 'Eingabe in Inputbox wurde noch nicht abgebrochen
antw = MsgBox("Aber doch bitte was eingeben oder jetzt [Abbrechen] drücken !" _
& vbLf & "(Bei ""Abbrechen"" wird der vorhandenen Kommentar gelöscht.)", _
vbOKCancel, "Kommentar zu Eingabe in Zelle " & sZelle)
Else
antw = vbCancel
End If
If antw = vbCancel Then 'vbCancel = 2  - Abbrechen wurde gewählt
Zelle_Kom.ClearContents 'vorhandenen Kommentar Löschen
Exit Do
End If
Else
Zelle_Kom.Value = tmp
End If
Loop Until tmp  ""
End If
End Select
End Sub

Anzeige
AW: Zwingender Kommentar bei Änderung einer Zelle
28.01.2016 13:39:06
Henny
Danke Franz,
Habe leider eine Kleinigkeit vertauscht. Möchte nicht den Kommentar ist Spalte H löschen, sondern den Wert den ich in Spalte F eingetragen habe.
Zelle_Kom.ClearContents durch
sZelle.CearContents zu erstezten klappt leider nicht.
Kannst du mir auch da noch helfen?
Danke Gruß
Henny

AW: Zwingender Kommentar bei Änderung einer Zelle
29.01.2016 09:34:06
fcs
Hallo Henny,
ersetze
             Zelle_Kom.ClearContents 'vorhandenen Kommentar Löschen

durch
             Target.ClearContents 'eingegebenen Wert wieder Löschen
Gruß
Franz

Anzeige
AW: Korrektur
29.01.2016 09:36:56
fcs
Hallo Henny,
ersetze

Zelle_Kom.ClearContents 'vorhandenen Kommentar Löschen

durch
             Application.EnableEvents = False
Target.ClearContents 'eingegebenen Wert wieder Löschen
Application.EnableEvents = True
Gruß
Franz

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige