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

VBA: Wörer markieren und zählen

VBA: Wörer markieren und zählen
03.05.2023 09:37:10
Erwin

Guten Morgen,

ich habe einige große Tabellen, in denen ich in langen Texten Wörter oder Wortteile suchen muss.
Derzeit gibt es ein VBA, welches die Zeile grün und die Zelle gelb markiert, wenn das Suchkriterium vorkommt.
Es gibt ein weiteres Modul, welches das gesuchte Wort andersfarbig hervorhebt, aber hier muss ich Groß- u. Kleinschreibung gesondert laufen lassen.

Verkürzte Beispieldatei: https://www.herber.de/bbs/user/159010.xlsb

Kann man das VBA "Wörter_markieren" in das "Suchkriterien_markieren" packen, damit ich den Suchbegriff nicht 3 x eingeben muss und es zu keinen Inkonsistenzen durch unterschiedliche Suchen kommt?
Toll wäre es auch, wenn in der MsgBox am Ende 3 Zähler (Anzahl Zeilen, Zellen, Wörter) ausgegeben würden.

Wer kann mir hier bitte helfen?

Grüße - Erwin

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Wörer markieren und zählen
03.05.2023 14:26:09
Erwin
Hallo Ralf,

Danke, genau so habe ich mir den Ablauf vorgestellt.
Ich habe das jetzt mit dem Wort "Verdacht" geprüft und festgestellt, dass die Anzahl der Gelben Zellen (18x) und der rot markierten Wörter (19x) richtig ist.
Ein kleines Problem gibt es noch bei den Zeilen; nach deinem Code wären es 17 Zeilen, ich zähle nur 12 Zeilen, die das Suchkriterium haben.

Kannst du das bitte nochmals nachprüfen u. berichtigen.

Danke - Erwin


AW: VBA: Wörer markieren und zählen
03.05.2023 14:42:56
Rudi Maintaire
Hallo,
aufgebohrt:
Sub Suchkriterienmarkieren()
  'Diese SUCHE funktioniert am besten, weil auch Wortteile gefunden werden.
  Dim xRg As Range
  Dim xFRg As Range
  Dim xStrAddress As String
  Dim xVrt As Variant
  Dim lCnt&, lRw&, a As Range, r As Range
  Dim objRowCount As Object
  
  Set objRowCount = CreateObject("scripting.dictionary")
  
  ActiveSheet.UsedRange.Interior.Color = xlNone
  ActiveSheet.UsedRange.Font.ColorIndex = 0
  
  
  xVrt = Application.InputBox(prompt:="Ein Wort oder Wortteil suchen.", Title:="Suche")
  
  
  If xVrt > "" Then
    
    
    Set xFRg = ActiveSheet.UsedRange.Find(what:=xVrt, LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)
    If xFRg Is Nothing Then
      MsgBox prompt:="Suchbegriff konnte nicht gefunden werden.", Title:="Suche"
      Exit Sub
    End If
    xStrAddress = xFRg.Address
    Set xRg = xFRg
    Do
      lCnt = lCnt + Woertermarkieren(CStr(xVrt), xFRg)
      Set xFRg = ActiveSheet.UsedRange.FindNext(after:=xFRg)
      Set xRg = Application.Union(xRg, xFRg)
    Loop Until xFRg.Address = xStrAddress
    If xRg.Count > 0 Then
      
      For Each a In xRg.Areas
        For Each r In a.Rows
          objRowCount(r.Row) = 0
        Next r
      Next
      lRw = objRowCount.Count
      Intersect(ActiveSheet.UsedRange, xRg.EntireRow).Interior.ColorIndex = 4 'Zeile wird grün markiert, eigentlich würde der benutzte Bereich ausreichen
      
      xRg.Interior.ColorIndex = 6 ' Zelle wird gelb markiert
      
      
      '...........Font.ColorIndex = 3   ' Wort wird rot markiert
      
    End If
  End If
  MsgBox "Suchwort: " & xVrt & vbLf & vbLf & _
    xRg.Count & " Zellen gelb markiert" & vbLf & _
    lRw & " Zeilen markiert" & vbLf & _
    lCnt & " Wörter markiert"
End Sub
Gruß
Rudi


Anzeige
AW: VBA: Wörer markieren und zählen
03.05.2023 15:22:35
Daniel
Hi
das Problem bei dieser Zählweise ist, dass sie nicht berücksichtigt, dass mehrere Zellen in einer Zeile betroffen sein können und dass es dann mehrere Areas in einer Zeile geben kann, so werden die Zeilen dann mehrfach gezählt.

bestimme die Anzahl der Zeilen in der Variable lRw so:

lRw = Intersect(ActiveSheet.UsedRange.Columns(1), xRg.EntireRow).Cells.Count
das ersetzt dann die Schleife

For Each a In xRg.Areas
lRw = lRw + ...
Next
Gruß Daniel


AW: VBA: Wörer markieren und zählen
03.05.2023 15:56:41
Erwin
Hallo Daniel,

auch dir herzlichen Dank für deine Mühe, auch dein Code führt zum richtigen Ergebnis.

Grüße - Erwin


Anzeige
VBA: Wörer markieren und zählen -Ergänzung
04.05.2023 08:48:28
Erwin
Guten Morgen,

gestern abend ist mir noch eingefallen, ob es evtl. möglich wäre, das Endergebnis nicht in einer MsgBox auszugeben, sondern in einer UF (hätte ich im angehängten Beispiel schon mal erstellt).

Ergänzte Beispieldatei: https://www.herber.de/bbs/user/159025.xlsb

Ziel ist es, mit einem Kopieren-Button den Text der Labels (falls das möglich ist) und die Inhalte der Textboxen in die Zwischenablage zu kopieren, damit ich die Daten auf einem anderen Blatt irgendwo einsetzen kann.

Grüße - Erwin


Anzeige
AW: VBA: Wörer markieren und zählen -Ergänzung
04.05.2023 09:06:42
ralf_b
du hast die ursprüngliche Datei gepostet.
für eine Verwendung in der Zwischenablage bedarf es keiner Userform.
Wenn es noch ein paar Funktionalitäten mehr sein dürfen, die dir spät abends noch so einfallen, dann gibt es dafür Auftragsprogrammierer.


AW: VBA: Wörer markieren und zählen -Ergänzung
04.05.2023 09:17:09
Erwin
Hallo Ralf,

danke für den Hinweis mit der falschen Datei, jetzt sollte die richtige Datei mit der vorgefertigten UF vorhanden sein.

https://www.herber.de/bbs/user/159026.xlsb

Mit der Auftragsprogrammierung hast du sicher auch recht, aber manchmal sieht man erst im weiteren Verlauf, ob man an alles gedacht hat.
Für dich / euch VBA Spezialisten sollte das aber keine echte Auftragsprogrammierung sein, sondern einfach zu lösen; ich müsste mich wahrscheinlich Stunden durch codes quälen.

Warum zuerst eine UF; ich dachte mir, dass ich erstens schon mal das Ergebnis sehe und zweitens dieses dann an verschiedenen Stellen auf anderen Blättern einfügen kann.
Wer also Lust und Laune hat, könnte mir hier sehr viel weiterhelfen.

Danke - Erwin


Anzeige
AW: VBA: Wörer markieren und zählen -Ergänzung
04.05.2023 10:31:40
Erwin
Hallo Ralf,

das ist ja besser als ich dachte, weil ich das Suchkriterium dort eingeben kann, wo auch das Ergebnis herauskommt.

Das kleine Restproblem ist, wenn ich ein Ergebnis in den TextBoxen habe und den Button "kopieren" drücke und anschließend die UF schließen muss, dass ich bei mir nichts einfügen kann (es erscheint lediglich ein kleines Symbol).
Gibt es hier noch eine Lösung (UF modal?) oder liegt es irgendwo bei meinen Excel - Einstellungen?

Grüße - Erwin


Anzeige
AW: VBA: Wörer markieren und zählen -Ergänzung
04.05.2023 11:00:24
ralf_b
das kann ich nicht nachvollziehen. Ich kann in andere Programme als auch in Excel die Daten nach Beenden der Userform einfügen.


AW: VBA: Wörer markieren und zählen -Ergänzung
04.05.2023 11:46:04
Erwin
Hallo Ralf,

tortz einiger Versuche kommen nur 2 winzige Fragezeichen als Ergebnis des clipboards heraus, da muss ich heute abend nochmals probieren.

Vielen Dank für deine Hilfe

Grüße - Erwin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige