Thema Datum  Von Nutzer Rating
Antwort
19.11.2008 14:57:53 Veronique
NotSolved
21.11.2008 15:00:07 Holger
NotSolved
Rot Aw:Aw:Begriffe zählen im Word-Document (2)
25.11.2008 09:45:55 Veronique
NotSolved
26.11.2008 11:30:08 Holger
NotSolved
26.11.2008 11:32:09 Holger
NotSolved
26.11.2008 11:34:31 Holger
NotSolved
26.11.2008 11:36:52 Holger
NotSolved
26.11.2008 11:39:20 Holger
NotSolved
26.11.2008 11:43:52 Holger
NotSolved
26.11.2008 11:47:59 Holger
NotSolved
26.11.2008 11:49:46 Holger
NotSolved
26.11.2008 12:38:03 Veronique
NotSolved

Ansicht des Beitrags:
Von:
Veronique
Datum:
25.11.2008 09:45:55
Views:
1821
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Begriffe zählen im Word-Document (2)
Hallo Holger,

vielen Dank, dass du dich nochmal meinem Problem annimmst!

Leider marktiert mir der Editor die Zeile
ls = 50: If Len(suche) ""
rot, meckert beim Ausführen was von Syntaxfehler. Läuft das bei dir? Oder kann sich da wirklich ein kleiner Fehler eingeschlichen haben?

Veronique



Holger schrieb am 21.11.2008 15:00:07:

Hallo Veronique,
ich hatte dir damals eine InputBox zur Eingabe vorgeschlagen, weil ich davon ausging, dass du nicht in Lage sein würdest, z.B. eine UserForm zu erzeugen. Ich vermute, das bist du heute auch noch nicht. Da es aber sehr umständlich ist, diesen Vorgang in aller Kürze zu beschreiben, modifiziere ich das Makro nur hinsichtlich der Eingabe. Solange die InputBox nicht leer mit OK bestätigt wird, werden die Suchbegriffe ergänzt. Bestätigst du eine leere InputBox mit OK oder den Abbrechen-Button, fängt die Suche wie gewohnt an.

Ersetze die Zeilen
suche = InputBox("Suchbegriffe mit Kommata getrennt eingeben", "Begriffe zählen", suche)
If suche = "" Then MsgBox "Kein Suchbegriff eingegeben!": Exit Sub
'Suchwörter (w()) und Anzahl (v) bestimmen:
w = Split(suche, ",")

durch
pr = "Suchbegriffe mit Kommata getrennt eingeben"
Do
teilsuche = InputBox(pr, "Begriffe zählen")
teilsuche = Trim(teilsuche)
If Right(teilsuche, 1) = "," Then teilsuche = Left(teilsuche, Len(teilsuche) - 1)
If teilsuche <> "" Then
If suche <> "" Then
suche = suche + "," + teilsuche
Else
suche = teilsuche
End If
ls = 50: If Len(suche) ""
If suche = "" Then MsgBox "Kein Suchbegriff eingegeben!": Exit Sub
'Suchwörter (w()) und Anzahl (v) bestimmen:
w = Split(suche, ",")

Viel Erfolg
Holger




Veronique schrieb am 19.11.2008 14:57:53:

Hallo allerseits,

ich habe hier vor Monaten ein Skript vorgeschlagen bekommen (s.u.), mit dem ich im Word-Dokument beliebige Begriffe zählen kann und diese Begriffe mit Anzahl der Häufigkeit ausgegeben bekomme.

Leider haben sich die Anforderungen jüngst erhöht und es handelt sich jetzt um ca. 300 Begriffe, deren Häufigkeit abgefragt werden soll. Die passen alleine schon gar nicht in das Eingabefeld der Inputbox, deswegen wollte ich hier nochmal fragen, wie ich das am geschicktesten löse. Einfach 10 Suchabfragen hintereinander durchführen? Oder geht das eleganter, indem man den "Aufnahmebereich" der Inputbox modifizieren kann?

Vielen Dank für jeden Tipp!

Veronique

Aktuelles Skript:

Sub Begriffe_suchen()
Dim a, AdC, Anzahl(), b, i, k, lMin, s(), suche, v
nocheinmal: 'Sprungadresse, falls z.B. wegen Schreibfehler eine Wiederholung erforderlich ist
suche = InputBox("Suchbegriffe mit Kommata getrennt eingeben", "Begriffe zählen", suche)
If suche = "" Then MsgBox "Kein Suchbegriff eingegeben!": Exit Sub
'Suchwörter (w()) und Anzahl (v) bestimmen:
w = Split(suche, ",")
v = UBound(w)
ReDim s(v)
lMin = Len(w(0))
For k = 0 To v
w(k) = Trim(w(k))
s(k) = LCase(w(k))
If Len(s(k)) < lMin Then lMin = Len(s(k))
Next k
lMin = lMin - 1
'Suchwörter sortieren:
For k = 0 To v - 1
For i = k + 1 To v
If s(i) < s(k) Then
a = w(i): w(i) = w(k): w(k) = a
a = s(i): s(i) = s(k): s(k) = a
End If
Next i
Next k
'Suche durchführen und Anzahl bestimmen
ReDim Anzahl(v)
For i = 0 To v
Set AdC = ActiveDocument.Content
Selection.HomeKey unit:=wdStory
Do
AdC.Find.Execute FindText:=s(i), Forward:=True
If AdC.Find.Found = True Then Anzahl(i) = Anzahl(i) + 1
Loop Until AdC.Find.Found = False
Next i
'in neues Dokument ausgeben
a = ""
For i = 0 To v
a = a + w(i) + ":" + vbTab + Str(Anzahl(i)) + vbCrLf
Next i
b = MsgBox("Folgende Begriff wurden gesucht" + vbCrLf + a + "Schreibfehler? Suche wiederholen?", vbYesNo)
If b = vbYes Then GoTo nocheinmal
Documents.Add
Selection.TypeText Text:=a
End Sub


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
19.11.2008 14:57:53 Veronique
NotSolved
21.11.2008 15:00:07 Holger
NotSolved
Rot Aw:Aw:Begriffe zählen im Word-Document (2)
25.11.2008 09:45:55 Veronique
NotSolved
26.11.2008 11:30:08 Holger
NotSolved
26.11.2008 11:32:09 Holger
NotSolved
26.11.2008 11:34:31 Holger
NotSolved
26.11.2008 11:36:52 Holger
NotSolved
26.11.2008 11:39:20 Holger
NotSolved
26.11.2008 11:43:52 Holger
NotSolved
26.11.2008 11:47:59 Holger
NotSolved
26.11.2008 11:49:46 Holger
NotSolved
26.11.2008 12:38:03 Veronique
NotSolved