Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen

Kommentar bei bestimmten Text löschen


Betrifft: Kommentar bei bestimmten Text löschen von: Kevin Bonk
Geschrieben am: 14.01.2018 09:59:53

Hallo und guten Morgen liebe Gemeinde!

Ich habe hier folgenden Code der in einem Bereich (D5:F500)bei dem Wort "Nein" eine Inputbox aufruft. Der Inhalt der Box wird dann als Kommentar gespeichert.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim zell As Range
    Dim strKommentar As String
    If Not Intersect(Target, Range("D5:F500")) Is Nothing Then
       
            If Target.Value = "Nein" Then
                strKommentar = InputBox("Bitte Begründung eingeben:", "Hinweis")
                If strKommentar <> "" Then
                    If Not Target.Comment Is Nothing Then Target.Comment.Delete
                    Target.AddComment strKommentar
                End If
            End If
        End If

End Sub

Gestern Abend beim Basteln hatte ich noch 2 weitere Elemente im Code. Ich hatte mich aber verzettelt und nun krieg ich es logisch nicht mehr auf die Reihe. Ich hoffe jemand von euch kann mir helfen.

1. Zusätzlich soll in dem Bereich bei dem Wort "Ja" das Kommentar gelöscht werden.
2. Ist in dem Bereich die Zelle leer soll ebenfalls das Kommentar gelöscht werden.

Ich freu mich auf eure Antworten. MfG Bonki

  

Betrifft: AW: Kommentar bei bestimmten Text löschen von: Sepp
Geschrieben am: 14.01.2018 10:21:55

Hallo Kevin,

so?

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strKommentar As String

If Not Intersect(Target, Range("D5:F500")) Is Nothing Then
  With Target(1, 1)
    If LCase(.Value) = "nein" Then
      strKommentar = InputBox("Bitte Begründung eingeben:", "Hinweis")
      If strKommentar <> "" Then
        If Not .Comment Is Nothing Then
          .Comment.Shape.TextFrame.Characters.Text = strKommentar
        Else
          .AddComment strKommentar
        End If
      End If
    ElseIf LCase(.Value) = "ja" Or .Value = "" Then
      .ClearComments
    End If
  End With
End If

End Sub


Gruß Sepp



  

Betrifft: AW: Kommentar bei bestimmten Text löschen von: ransi
Geschrieben am: 14.01.2018 10:22:53

Hallo,

Versuch mal so:

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim zell As Range
    Dim strKommentar As String
    For Each zell In Intersect(Target, Range("D5:F500")).Cells
        Select Case zell.Value
            Case "ja", ""
                If Not zell.Comment Is Nothing Then zell.Comment.Delete
            Case "Nein"
                strKommentar = InputBox("Bitte Begründung eingeben:", "Hinweis")
                If strKommentar <> "" Then
                    If Not zell.Comment Is Nothing Then zell.Comment.Delete
                    zell.AddComment strKommentar
                End If
        End Select
    Next zell
End Sub



ransi


  

Betrifft: AW: Kommentar bei bestimmten Text löschen von: Beverly
Geschrieben am: 14.01.2018 10:23:32

Hi,

meinst du so etwas:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strKommentar As String
    If Not Intersect(Target, Range("D5:F500")) Is Nothing Then
        If Target.Value = "Nein" Then
            strKommentar = InputBox("Bitte Begründung eingeben:", "Hinweis")
            If strKommentar <> "" Then
                If Not Target.Comment Is Nothing Then Target.Comment.Delete
                Target.AddComment strKommentar
            End If
        ElseIf Target = "" Or Target = "Ja" Then
            If Not Target.Comment Is Nothing Then Target.Comment.Delete
        End If
    End If
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Kommentar bei bestimmten Text löschen von: Kevin Bonk
Geschrieben am: 14.01.2018 10:47:38

Vielen Dank an alle 3! Funzt super.

Mein Haupt vor so viel Fachkenntnis! Vielen Dank und euch noch einen schönen Tag.


  

Betrifft: AW: Kleine Erweiterung von Beverlys Code von: Dieter(Drummer)
Geschrieben am: 14.01.2018 10:46:45

Hallo Kevin,

ich habe den Code von Beverly etwas erweitert, damit bei "nein" und "ja", also bei Eingabe mit Kleinbuchstbaben, der Code von Breverly auch das gewünschte Ergebnis zeigt.
Ich hoffe Beverly verzeit mir den Eingriff/Erweiterung.

Gruß, Dieter(Drummer)
'Code von: Herber, Beverly am 14.01.2018 10:23:32

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strKommentar As String
    If Not Intersect(Target, Range("A2:B5")) Is Nothing Then
        If Target.Value = "Nein" Or Target = "nein" Then
            strKommentar = InputBox("Bitte Begründung eingeben:", "Hinweis")
            If strKommentar <> "" Then
                If Not Target.Comment Is Nothing Then Target.Comment.Delete
                Target.AddComment strKommentar
            End If
        ElseIf Target = "" Or Target = "Ja" Or Target = "ja" Then
            If Not Target.Comment Is Nothing Then Target.Comment.Delete
        End If
    End If
End Sub



  

Betrifft: AW: Kleine Erweiterung von Beverlys Code von: Hajo_Zi
Geschrieben am: 14.01.2018 11:10:07

da reicht Ucase(Target)="NEIN"

GrußformelHomepage

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.

Beiträge von Werner, Luc, robert und folgende lese ich nicht.


  

Betrifft: AW: Danke Hajo, habe jetzt den Code so ... von: Dieter(Drummer)
Geschrieben am: 14.01.2018 14:00:21

... mal geändert und es funktioniert prima. Danke für Hinweis.
Gruß, Dieter(Drummer)
Jetziger, geänderter Code:
'Code von: Herber, Beverly am 14.01.2018 10:23:32
'Anpassung von Mx und Info von Hajo

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strKommentar As String
    If Not Intersect(Target, Range("A2:B5")) Is Nothing Then
        If UCase(Target) = "NEIN" Then
            strKommentar = InputBox("Bitte Begründung eingeben:", "Hinweis")
            If strKommentar <> "" Then
                If Not Target.Comment Is Nothing Then Target.Comment.Delete
                Target.AddComment strKommentar
            End If
        ElseIf UCase(Target) = "JA" Then
            If Not Target.Comment Is Nothing Then Target.Comment.Delete
        End If
    End If
End Sub



Beiträge aus dem Excel-Forum zum Thema "Kommentar bei bestimmten Text löschen"