MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 08.01.2017, 18:18   #1
musmur
MOF User
MOF User
Standard Word 2010 - VBA Addition

Hallo,

ich schreibe Fragebögen mit Word und gebe für jede vollständig beantwortete Frage eine Höchstpunktezahl an und zwar (Tabulation auf 14) mit ___/4.
___ ist die Stelle wo ich dann die erreichte Punktezahl angebe, /1 bedeutet Punkte von 1 (/2 Punkte von 2, /3 Punkte von 3 usw.)

Nun die Frage: Da ich versuche so viel wie möglich zu automatisieren und ich schon einige male Fehler beim Zusammenzählen der maximal erreichbaren Punkte gemacht habe, ist es möglich ein VBA zu erstellen, das die Zahlen nach dem "___/" automatisch zusammenzählt und am Ende des Fragebogens (wo ich es gerne möchte) wiedergibt?
Es wäre mir eine große Hilfe, denn es sind sehr viele Fragebögen die ich schreiben muss und jedes Zeitersparnis ergibt am Ende viel Zeit und es wären somit auch unsympatische Mathefehler vermieden.
Herzlichen Dank für jede Hilfe
Daniel
musmur ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2017, 18:42   #2
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Daniel,

"ist es möglich ein VBA zu erstellen, das die Zahlen nach dem "___/" automatisch zusammenzählt..."

Das ist natürlich möglich. Allerdings sollten die Zahlenwerte dann nicht irgendwo im Fließtext stehen, sondern in identifizierbaren Behältern wie Textmarken oder Inhaltssteuerelementen. Ich empfehle dir die letzteren, weil man sie in ihren Eigenschaften auch gegen versehentliche Löschen schützen kann.

Anbei ein ganz einfaches Beispiel, das natürlich noch modifiziert werden muss, je nachdem, ob du noch weitere Inhaltssteuerelemente im Dokument hast, ob du auch mit halben Punkten arbeitest, usw.

Im Zweifelsfall lade deinen Fragebogen hoch, bei Bedarf in anonymisierter Form.
Angehängte Dateien
Dateityp: docm PunkteAddieren.docm (36,9 KB, 1x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2017, 19:25   #3
musmur
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Gerhard,

danke für die Hilfe.

ich habe in deinem Bespiel die Punkte verändert, aber das Ergebnis bleibt gleich. müsste es sich nicht automatisch aktualisieren soblad ein Inhaltssteuerelement verändert wird? auch mit F9 passiert nichts.

Im Anhang habe ich dir einen default anonymen Fragebogen mit deinem Code hinzugegeben. ich habe die maximal erreichbaren Punkte pro Frage in die Inhaltssteuerelemente gegeben, aber beim letzten wo die maximale Gesamtpunktezahl erscheinen müsste ist kein Ergebnis zu sehen. Mach ich was falsch?

Danke
Daniel
Angehängte Dateien
Dateityp: zip PunkteAddieren_1.zip (30,2 KB, 1x aufgerufen)
musmur ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2017, 22:25   #4
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Daniel,

"müsste es sich nicht automatisch aktualisieren sobald ein Inhaltssteuerelement verändert wird?"

Nein. Das Makro im letzten Beispiel muss nach Eintrag der Punkte händisch aufgerufen werden (Entwicklertools > Makros). Natürlich kann man es auch so machen, dass es sich automatisch aktualisiert. Dafür häng ich dir dein modifiziertes Dokument an. Du kannst es um beliebig viele Fragen erweitern, ohne die Makros ändern zu müssen.

Folgende Anpassungen waren nötig:

1.
Zunächst braucht es pro Frage natürlich zwei Inhaltssteuerelemente, eins für die erreichte Punktzahl und eins für die maximale Punktzahl.

2.
Damit das Makro diese beiden Kategorien unterscheiden kann, brauchen die Steuerelemente Tags (einzutragen in den Eigenschaften). Ich hab jedem Element, das für eine erreichte Punktzahl steht, den Tag "erreicht" gegeben, und jedem Element, das für die maximale Punktzahl steht, den Tag "max".
Ausnahme: Die beiden Elemente für die Summen haben die Tags "sum_erreicht" bzw. "sum_max"

Es gibt jetzt zwei Makros:

Das Makro in Document_Open stellt zunächst die Anzahl der Fragen fest (anhand der Anzahl der Steuerelemente für die erreichten Punktzahlen)

Das Makro Document_ContentControlOnExit summiert nun jedesmal, wenn du ein Steuerelement verlässt, die erreichten und maximalen Punkte und trägt sie in die beiden Summenfelder ein.

Wichtig zu wissen ist, dass diese Sorte Makro erst reagiert, wenn ein Steuerelement verlassen wird, d.h. du musst auch beim Eintrag der Punkte im letzten Feld das Feld verlassen, damit aktualisiert wird.

So sehen die Makros jetzt aus (sind bereits im angehängten Dokument enthalten)
Code:

Dim anzFragen As Long

Sub document_Open() 'bzw document_new, wenn es eine Dokumentvorlage ist
Dim i As Long

    'Anzahl Fragen feststellen
    With ActiveDocument
        For i = 1 To .ContentControls.Count
            If .ContentControls(i).Tag = "erreicht" Then
                anzFragen = anzFragen + 1
            End If
        Next i
    End With
End Sub

Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
Dim i As Long, erreichtGesamt As Long, maxGesamt As Long

With ActiveDocument
    
    'Fragen durchgehen und erreichte / max Punkte addieren
    For i = 1 To anzFragen
        erreichtGesamt = CLng(erreichtGesamt + _
        SelectContentControlsByTag("erreicht").Item(i).Range.Text)
        maxGesamt = CLng(maxGesamt + _
        SelectContentControlsByTag("max").Item(i).Range.Text)
    Next i
  
  'Additionen in die Summen-Elemente eintragen
  SelectContentControlsByTag("sum_erreicht").Item(1).Range.Text = erreichtGesamt
  SelectContentControlsByTag("sum_max").Item(1).Range.Text = maxGesamt
   
End With
End Sub
Angehängte Dateien
Dateityp: docm PunkteAddieren_2.docm (39,8 KB, 4x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.01.2017, 15:10   #5
musmur
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Gerhard,

du bist ein Genie!!! Du hast keine Ahnung wieviel du mir geholfen hast und das für mich ersparte Zeit bedeutet bzw. ich nun sicher fehlerfrei auswerten kann.

Herzlichen Dank
Daniel
musmur ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.