Thema Datum  Von Nutzer Rating
Antwort
13.02.2021 13:17:55 Felix
NotSolved
13.02.2021 13:22:53 Gast45136
NotSolved
13.02.2021 13:28:43 Gast25899
NotSolved
13.02.2021 16:30:32 Gast74318
*****
NotSolved
13.02.2021 16:39:32 Gast74318
*****
NotSolved
13.02.2021 16:44:17 Gast74318
NotSolved
14.02.2021 11:53:14 Gast55304
NotSolved
Blau Beispiel-Lösung - Achja, ...
14.02.2021 16:58:29 Gast792
NotSolved
14.02.2021 17:02:26 Gast32651
NotSolved
14.02.2021 11:54:38 Gast27943
NotSolved
14.02.2021 12:09:26 Gast40774
NotSolved
14.02.2021 12:10:49 Gast42313
NotSolved
14.02.2021 12:23:15 Gast27890
NotSolved
14.02.2021 13:06:41 Gast61281
NotSolved
14.02.2021 14:41:18 Gast87063
NotSolved
14.02.2021 15:09:18 Gast38430
NotSolved
14.02.2021 16:50:53 Gast17593
NotSolved
24.02.2021 08:34:17 Gast01287
NotSolved
24.02.2021 09:10:34 Gast55509
NotSolved
14.02.2021 18:16:32 Gast20358
*****
NotSolved
14.02.2021 19:08:57 Gast41973
NotSolved
14.02.2021 19:12:12 Gast20358
*****
NotSolved
23.02.2021 16:53:02 Gast21601
NotSolved
23.02.2021 17:04:41 Gast54879
NotSolved
23.02.2021 17:13:17 Gast59647
NotSolved
23.02.2021 17:29:01 Gast4073
NotSolved
23.02.2021 17:42:56 Mase
NotSolved
23.02.2021 22:03:44 Gast63735
NotSolved
23.02.2021 22:20:44 Mase
NotSolved
23.02.2021 22:26:42 Gast8241
*****
NotSolved
24.02.2021 07:59:20 Mase
NotSolved
24.02.2021 14:17:24 Gast14330
NotSolved
24.02.2021 15:50:14 Gast37999
NotSolved
22.04.2021 17:54:50 Gast45889
NotSolved
22.04.2021 19:11:44 Gast37430
*****
NotSolved
23.04.2021 14:51:50 Gast11080
NotSolved

Ansicht des Beitrags:
Von:
Gast792
Datum:
14.02.2021 16:58:29
Views:
800
Rating: Antwort:
  Ja
Thema:
Beispiel-Lösung - Achja, ...

Es soll hier glaube ich ja sowieso nur das erste markiert werden!?

Ne, es sollen alle weiteren Vorkommen des gleichen Worts markiert werden.

Sind mehrere Wörter gleich einfach/kompliziert, soll wiederum das im Text erste davon bei allen Vorkommen gefärbt werden

Darum steht bei 'cm' in Klammern auch 3x. 'cm' ist das einfachste Wort im Text und kommt 3x vor.


Hab hier noch eine Alternative erstellt - mir war gestern langweilig. Da ist dieser Teil der Aufgabe mit enthalten.

Option Explicit

Sub Test_Alternative()
  
  Dim rngWord As Word.Range
  Dim colMin  As VBA.Collection
  Dim colMax  As VBA.Collection
  Dim k_min   As Long
  Dim k_max   As Long
  Dim k       As Long
  
  'Formatierung aus vorherigen Durchgang rückgängig machen
  ThisDocument.Range.Font.Reset
  ThisDocument.Range.HighlightColorIndex = wdAuto
  
  'Wortweise durch den Text bewegen
  For Each rngWord In ThisDocument.Words
    
    'Leerzeichen am Ende eines Wortes weglassen - seltsames Verhalten von Word ¯\_('-')_/¯
    rngWord.MoveEndWhile " ", wdBackward
    
    'unsere Hilfsfunktion aufrufen (siehe unten)
    k = Complexness(rngWord.Text)
    
    If k > 0 Then
      
      If k < k_min Or k_min = 0 Then
        
'        If Not colMin Is Nothing _
'          Then Debug.Print "[k_min]"; Tab(12); "*entfernt*"
'
'        Debug.Print "[k_min]"; Tab(12); "*neu*"; Tab(24); "'"; rngWord.Text; "'"
        
        k_min = k
        Set colMin = New VBA.Collection
        Call colMin.Add(rngWord, rngWord.Text)
        
      ElseIf k = k_min Then
        'wenn es sich um das gleiche (identische) Wort handelt
        'nehmen wir es mit auf
        On Error Resume Next
        Call colMin(rngWord.Text)
        If Err.Number = 0 Then
'          Debug.Print "[k_min]"; Tab(12); "+1"; Tab(24); "'"; rngWord.Text; "'"
          Call colMin.Add(rngWord)
        End If
        On Error GoTo 0
      End If
      
      If k > k_max Or k_max = 0 Then
        
'        If Not colMax Is Nothing _
'          Then Debug.Print "[k_max]"; Tab(12); "*entfernt*"
'
'        Debug.Print "[k_max]"; Tab(12); "*neu*"; Tab(24); "'"; rngWord.Text; "'"
        
        k_max = k
        Set colMax = New VBA.Collection
        Call colMax.Add(rngWord, rngWord.Text)
        
      ElseIf k = k_max Then
        'wenn es sich um das gleiche (identische) Wort handelt
        'nehmen wir es mit auf
        On Error Resume Next
        Call colMax(rngWord.Text)
        If Err.Number = 0 Then
'          Debug.Print "[k_max]"; Tab(12); "+1"; Tab(24); "'"; rngWord.Text; "'"
          Call colMax.Add(rngWord)
        End If
        On Error GoTo 0
      End If
      
'    Else
'      Debug.Print Tab(12); "*ignoriert*"; Tab(24); "'"; rngWord.Text; "'"
    End If 'k > 0
    
  Next
  
  For Each rngWord In colMin
    rngWord.HighlightColorIndex = WdColorIndex.wdGreen
    rngWord.Font.ColorIndex = WdColorIndex.wdWhite
  Next
  
  For Each rngWord In colMax
    rngWord.HighlightColorIndex = WdColorIndex.wdRed
    rngWord.Font.ColorIndex = WdColorIndex.wdWhite
  Next
  
End Sub

'Hilfsfunktion
' - Alternative mit Mid()- und InStr()-Funktion
' stellt fest wie kompliziert/komplex ein Wort ist
Private Function Complexness(Word As String) As Long
  
  Dim strChr  As String * 1
  Dim i       As Long
  Dim k       As Long
  
  For i = 1 To Len(Word)
    strChr = Mid$(Word, i, 1)
    Select Case strChr
      Case "a" To "z", "A" To "Z", "ä", "ö", "ü", "Ä", "Ö", "Ü", "ß"
        If InStr(Mid$(Word, 1, i - 1), strChr) = 0 Then
          k = k + 1
        End If
    End Select
  Next

  Complexness = k

End Function

Was die Sache mit Ribbon angeht: Da solltest du deine Aufzeichnungen ansehen; ich gehe auf das Thema hier nicht weiter ein - der Löwenanteil der Aufgabe ist das Makro oben.

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.02.2021 13:17:55 Felix
NotSolved
13.02.2021 13:22:53 Gast45136
NotSolved
13.02.2021 13:28:43 Gast25899
NotSolved
13.02.2021 16:30:32 Gast74318
*****
NotSolved
13.02.2021 16:39:32 Gast74318
*****
NotSolved
13.02.2021 16:44:17 Gast74318
NotSolved
14.02.2021 11:53:14 Gast55304
NotSolved
Blau Beispiel-Lösung - Achja, ...
14.02.2021 16:58:29 Gast792
NotSolved
14.02.2021 17:02:26 Gast32651
NotSolved
14.02.2021 11:54:38 Gast27943
NotSolved
14.02.2021 12:09:26 Gast40774
NotSolved
14.02.2021 12:10:49 Gast42313
NotSolved
14.02.2021 12:23:15 Gast27890
NotSolved
14.02.2021 13:06:41 Gast61281
NotSolved
14.02.2021 14:41:18 Gast87063
NotSolved
14.02.2021 15:09:18 Gast38430
NotSolved
14.02.2021 16:50:53 Gast17593
NotSolved
24.02.2021 08:34:17 Gast01287
NotSolved
24.02.2021 09:10:34 Gast55509
NotSolved
14.02.2021 18:16:32 Gast20358
*****
NotSolved
14.02.2021 19:08:57 Gast41973
NotSolved
14.02.2021 19:12:12 Gast20358
*****
NotSolved
23.02.2021 16:53:02 Gast21601
NotSolved
23.02.2021 17:04:41 Gast54879
NotSolved
23.02.2021 17:13:17 Gast59647
NotSolved
23.02.2021 17:29:01 Gast4073
NotSolved
23.02.2021 17:42:56 Mase
NotSolved
23.02.2021 22:03:44 Gast63735
NotSolved
23.02.2021 22:20:44 Mase
NotSolved
23.02.2021 22:26:42 Gast8241
*****
NotSolved
24.02.2021 07:59:20 Mase
NotSolved
24.02.2021 14:17:24 Gast14330
NotSolved
24.02.2021 15:50:14 Gast37999
NotSolved
22.04.2021 17:54:50 Gast45889
NotSolved
22.04.2021 19:11:44 Gast37430
*****
NotSolved
23.04.2021 14:51:50 Gast11080
NotSolved