Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA Script überwacht Dokumentenlänge

Frage Microsoft Microsoft Office

Mitglied: Quinni

Quinni (Level 1) - Jetzt verbinden

15.07.2014, aktualisiert 16.07.2014, 1470 Aufrufe, 1 Kommentar, 1 Danke

Hallo allesamt,

ich suche seit einigen Stunden ein Script das permanent das Word Dokument überwacht und eine message box bringt wenn das Dokument eine Zeichenzahl von X überschreitet.
Leider finde ich nichts was genau dem entspricht. (WORD 2010 - 2013)

Diese Überprüfung müsste so aussehen: WENN Zeichenanzahl über "LIMIT" UND seit "x" Sekunden nichts weiter geschrieben, DANN Box: "Achtung, "LIMIT" überschrieben. Du hast "XXX" Zeichen ( Summe("LIMIT" - "XXX")) zu viel ANSONSTEN prüfe wieder in "X" Sekunden

Ich habe eine Limitierung bereits für Formulare in Word gefunden. Allerdings dürfen es keine Formularfelder sein. Es muss über das gesamte Word Dokument gehen.
Zudem kommt erschwerend hinzu, dass Ich leider kein Programmierer sondern Gestalter bin. Benötige dieses Skript in meiner .dotx Vorlage da diese fertigen Word Dokumente dann in InDesign Dokumente importiert werden.

Daher bin ich gezwungen, fachkundige Office-Gurus darum zu bitten mir ein solches Script zur Verfügung zu stellen.

Danke schonmal im Voraus für diejenigen die sich dazu bereit erklären.

P.s. ich hatte zwar was gefunden. Aber dieser Code ist aus Word 2000 und wenn ich das bei VBA Script einfüge kommt eine Fehlermeldung von wegen Fehler bei Kompilieren: Erwartet Zeilennummer oder Sprungmarke oder Anweisung oder Anweisungsende

01.
 Sub ZeichenZaehlen() 
02.
 
03.
Dim effW, effC, C As Variant 
04.
Dim maxW, maxC, W As Variant 
05.
Dim Wtxt, Ctxt As String 
06.
maxW = 5930 'Max Anzahl Worte 
07.
maxC = 5960 'Max Anzahl Zeichen 
08.
effW = ActiveDocument.BuiltInDocumentProperties(wdPropertyWords) 
09.
effC = ActiveDocument.BuiltInDocumentProperties(wdPropertyCharsWSpaces) 
10.
If maxW < effW Or maxC < effC Then 
11.
If maxW < effW Then 
12.
W = effW & " (statt max " & maxW & ")" 
13.
 
14.
Else 
15.
W = effW 
16.
End If 
17.
 
18.
If maxC < effC Then 
19.
C = effC & " (statt max " & maxC & ")" 
20.
Else 
21.
 
22.
C = effC 
23.
End If 
24.
 
25.
MsgBox "ACHTUNG! Sie habeny die maximale Anzahl Worte " & _ 
26.
"bzw. too many chars" & Chr(13) & Chr(13) & _ 
27.
"Verwendete Anzahl WORTE: " & W & Chr(13) & _ 
28.
"Verwendete Anzahl ZEICHEN: " & C 
29.
Else 
30.
 
31.
W = maxW - effW 
32.
C = maxC - effC 
33.
MsgBox "* Maximale Anzahl WORTE: " & maxW & Chr(13) & _ 
34.
"* Maximale Anzahl ZEICHEN: " & maxC & Chr(13) & Chr(13) & _ 
35.
"* Verwendete Anzahl WORTE: " & effW & Chr(13) & _ 
36.
"* Verwendete Anzahl ZEICHEN: " & effC & Chr(13) & Chr(13) & _ 
37.
"Sie können noch " & W & " WORTE bzw. " & C & " ZEICHEN eingeben" 
38.
End If 
39.
 
40.
End Sub

Mitglied: colinardo
LÖSUNG 15.07.2014, aktualisiert 16.07.2014
Hallo Quinni,
das überwachen der Useraktivität, also ob er schreibt oder nicht, geht schon mal nicht so einfach da es dafür kein Event gibt. Dies lässt sich jedoch durch überprüfen der Textlänge umgehen. Was mit VBA nicht so resourcenschonend geht, ist das kontinuierliche Überwachen. Das geht zwar mit unten stehendem Code, verbraucht dann aber etwas mehr Resourcen. Besser ginge dies mit einem richtigen Managed- oder COM-Plugin.

Probier es einfach mal aus:
(Zeile 6 und 8 kannst du nach deinen Anforderungen anpassen). In der aktuellen Konfiguration werden Leerzeichen mitgezählt, das lässt sich aber leicht ändern wenn gewünscht. Dazu muss in Zeile 14 die Konstante auf wdPropertyCharacters abgeändert werden.
01.
Sub CheckChars() 
02.
On Error Resume Next 
03.
    Dim longChars As Long, intLimit As Integer, oldLength As Long, intSecondsWait As Integer, doc As Document 
04.
    Set doc = ActiveDocument 
05.
    'Limit an Zeichen 
06.
    intLimit = 50 
07.
    ' Wartezeit zwischen den Überprüfungen 
08.
    intSecondsWait = 10 
09.
     
10.
    oldLength = 0 
11.
    ' kontinuierlich überwachen 
12.
    While True 
13.
        ' aktuelle Anzahl der Zeichen 
14.
        longChars = doc.BuiltInDocumentProperties(wdPropertyCharsWSpaces) 
15.
        ' Nur überprüfen wenn sich die Anzahl der Zeichen im Dokument geändert hat 
16.
        If oldLength <> longChars Then 
17.
            ' Wenn die Anzahl der Zeichen das Limit überschreitet, Msgbox anzeigen 
18.
            If longChars > intLimit Then 
19.
                MsgBox "Achtung du hast das LIMIT von " & intLimit & " Zeichen überschritten!" & vbNewLine & "Du hast aktuell: " & longChars - intLimit & " Zeichen zu viel!", vbExclamation 
20.
            End If 
21.
        End If 
22.
        ' aktuelle Zeichenanzahl zwischenspeichern 
23.
        oldLength = longChars 
24.
        ' Wartefunktion aufrufen 
25.
        pause intSecondsWait 
26.
    Wend 
27.
End Sub 
28.
 
29.
' Pause-Funktion 
30.
Sub pause(t As Integer) 
31.
    Start = Timer 
32.
    Do While Timer < Start + t 
33.
        DoEvents 
34.
    Loop 
35.
End Sub 
36.
 
37.
' Prüfenfunktion beim öffnen des Dokuments starten 
38.
Private Sub Document_Open() 
39.
    CheckChars 
40.
End Sub
Benötige dieses Skript in meiner .dotx Vorlage
dann benötigst du aber ab jetzt das *.dotm Format wegen der Makros

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Reports - Überwachtes Kopieren
gelöst Frage von TlBERlUSBatch & Shell2 Kommentare

Hallo Zusammen, ich habe momentan die Aufgabe, Dateiübertragungen zu automatisieren. Hierbei sind die Daten wie folgt aufgebaut: \\QuellFreigabe\Name\Fortlaufende Nummer\Sammelordner ...

VB for Applications
Powershell Script aus VBA heraus ausführen
Frage von mcnico1978VB for Applications2 Kommentare

OS: Windows 10 Office 2016 Hallo Leute, Ich möchte aus VBA heraus ein Powershell Script (dies beinhaltet Citrix Befehle ...

VB for Applications
VBA Script - Pfade zu Dokumentevorlagen anpassen
gelöst Frage von JuckieVB for Applications11 Kommentare

Guten Morgen an alle, wir haben unser zentrales Dokumentenverzeichnis auf einen anderen Server umgezogen. Nun befinden sich in dem ...

Batch & Shell
Prozess wird überwacht und neu gestartet - probleme
gelöst Frage von MarabuntaBatch & Shell2 Kommentare

Hallo, ein Prozess einer Software wird gestartet, falls er beendet wurde. Das Problem ist, dass er zwar funktioniert, aber ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 4 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 5 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 20 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 23 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte15 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...