Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Zähler in For each Schleife | Herbers Excel-Forum


Betrifft: Zähler in For each Schleife von: WolfgangN
Geschrieben am: 02.12.2009 10:41:18

Hallo,
mit dem nachfolgenden Makro wird in Zellen mit Kommentaren ein in einer Textbox eingegebener Begriff gesucht. Die gefundenen Zellen erhalten einen Rahmen. Dies klappt auch.
Ich möchte jetzt aber noch eine Meldung erhalten, wenn keine Kommentarzelle diesen Begriff hat, ideal wäre es noch wenn eine Meldung kommt, wieviel Zellen mit dem Begriff gefunden wurden.
Leider führten meine Versuche, siehe kommentierte Zeilen im Makro, nicht zum Erfolg.
Vielen Dank und Gruß
Wolfgang

Private Sub CommandButton4_Click()
Dim varAbfrage As Variant
Dim comZelle As Comment

   varAbfrage = TextBox2.Value
   If varAbfrage <> "" Then
      For Each comZelle In ActiveSheet.Comments
         If InStr(comZelle.Shape.DrawingObject.Text, varAbfrage) > 0 Then
            ActiveSheet.Range(comZelle.Parent.Cells.Address).Borders _
            (xlEdgeLeft).LineStyle = xlContinuous
         End If
      Next comZelle
'      If Application.WorksheetFunction.CountA _
'       (ActiveSheet.Range(comZelle.Parent.Cells.Address).Borders _
'        (xlEdgeLeft).LineStyle = xlContinuous) = 0 Then
'      MsgBox "Kein Begriff"
'      End If
   End If
End Sub

  

Betrifft: AW: Zähler in For each Schleife von: Rudi Maintaire
Geschrieben am: 02.12.2009 10:48:07

Hallo,
du kannst keine Rahmenlinien zählen.
Lass einfach einen Zähler mitlaufen.

Private Sub CommandButton4_Click()
Dim varAbfrage As Variant
Dim comZelle As Comment
Dim lngCounter As Long

   varAbfrage = TextBox2.Value
   If varAbfrage <> "" Then
      For Each comZelle In ActiveSheet.Comments
         If InStr(comZelle.Shape.DrawingObject.Text, varAbfrage) > 0 Then
            lngCounter = lngCounter + 1
            ActiveSheet.Range(comZelle.Parent.Cells.Address).Borders _
            (xlEdgeLeft).LineStyle = xlContinuous
         End If
      Next comZelle
      If lngCounter = 0 Then
        MsgBox "Kein Begriff"
      End If
   End If
End Sub

Gruß
Rudi


  

Betrifft: AW: Zähler in For each Schleife von: WolfgangN
Geschrieben am: 02.12.2009 10:55:30

Hallo Rudi,
vielen Dank für Deine Hilfe, alles perfekt.
Gruß
Wolfgang


Beiträge aus den Excel-Beispielen zum Thema "Zähler in For each Schleife"