VBA in Powerpoint 2010

  • PowerPoint

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    VBA in Powerpoint 2010

    Ich muss mich zunächst mal Outen: ich habe keine Ahnung von Visual Basics oder auch nur vom Programmieren - aber ein Problem^^

    Ich möchte in PowerPoint (2010) einen Klick-Dummy bauen und ein Formular darstellen. Inhalt des Formulars ist u.a. die Abfrage des Geburtsdatums und das restliche Formular ist abhängig vom angegebenen Datum (Fragebogen für U35 & Ü35). Nun habe ich auf normalem Weg keine Funktion gefunden, mit der man die nächste Folie (oder bspw. die Frage ob Objekt A oder B erscheint, oder ob Hyperlink 1 oder 2 genutzt wird) abhängig von der Eingabe im Textfeld machen kann.
    Gibt es da über den Visual Basics Code eine Möglichkeit das einzurichten?

    Vielen Dank!
    Willkommen im Forum.
    Nur nochmal, um alle Klarheiten zu beseitigen. Du startest eine Präsentation und dann soll ein Formular erscheinen, welches nach dem Geburtsdatum fragt. Und abhängig, ob < 35 oder >= (?) 35 wird ne andere Präsentation angezeigt oder unterscheidet es sich dann nur in einzelnen Folien der Gesamtpräsentation? Nicht, dass Du 2 komplett unterschiedliche Präsentationen hast, zwischen denen altersabhängig entschieden werden soll.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke :)

    Also die Präsentation kann man sich als Klick-Dummy einer Website vorstellen. Auf Folie 6 Sieht man dann einen Fragebogen. Dort soll man dann zunächst die üblichen Angaben zur Person machen (habe dort einfach in der Präsentation beschreibbare Textfelder eingefügt). Auf der nächsten Folie kommt dann der restliche Fragebogen, von dem es 2 unterschiedliche Versionen u35 (Folie 7) und ü35 (Folie 8) gibt.
    Es geht unterm Strich also darum, ob -je nach Alterseingabe - Folie 7 oder Folie 8 als nächstes erscheint.
    Hm, ja geht schon, ist aber nicht idiotensicher:

    Visual Basic-Quellcode

    1. Private Sub BtnValidateBirthDateAndJumpToNextSlide_Click()
    2. Dim GebDatum As Date
    3. GebDatum = CDate(TextBox1.Text) 'oder wie das Feld auch immer heißt, wo ein Geburtsdatum eingetragen wird.
    4. If DateDiff("yyyy", GebDatum, Now) >= 35 Then
    5. ActivePresentation.SlideShowWindow.View.GotoSlide 7
    6. Else
    7. ActivePresentation.SlideShowWindow.View.GotoSlide 8
    8. End If
    9. End Sub
    (vorausgesetzt es gibt eine Befehlsschaltfläche (alias Button) mit jenem Namen BtnValidateBirthDateAndJumpToNextSlide, ansonsten Zeile#1 entsprechend umschreiben.

    Nen DateTimePicker oder MonthCalendar hab ich auf Anhieb bei PP nicht gefunden. Wäre Eingabetechnisch sicherer. Außerdem reicht es ja nicht, einfach nur auf die entsprechende Folie zu gehen. Wenn man auf Folie#7 ist, muss ja die nächste Folie#9 sein. Außerdem muss man auch verhindern, dass der User zurückspringen kann.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    "nicht idiotensicher" ist ja genau das richtige für einen, der keine Ahnung von Visual Basic hat :D

    also ich habe es soweit, dass mit dem Klick auf die Befehlsschaltfläche Folie 7 geöffnet wird - leider klappt die Differenzierung, die alle Unter 35 auf Folie 8 schicken soll noch nicht. (den Namen vom CommandButton1 hab ich auch nicht hinbekommen zu ändern, da jedes mal ne Fehlermeldung kam^^). Aber ansonsten passt das doch zu deinem Coder oder?

    Quellcode

    1. Private Sub CommandButton1_Click()
    2. Dim GebDatum As Date
    3. GebDatum = CDate(TextBox1.Text) 'oder wie das Feld auch immer heißt, wo ein Geburtsdatum eingetragen wird.
    4. If DateDiff("yyyy", GebDatum, Now) >= 35 Then
    5. ActivePresentation.SlideShowWindow.View.GotoSlide 7
    6. Else
    7. ActivePresentation.SlideShowWindow.View.GotoSlide 8
    8. End If
    9. End Sub
    10. Private Sub TextBox1_Change()
    11. End Sub



    EDIT:
    Ok glaub ich habs. Wegen deinem Einwand zum Tag & Monat dachte ich man sollte in das Datum nur das Geburtsjahr schreiben. Oberflächlich getestet erscheint es mir aber so, dass es funktioniert, wenn man das ganze Datum DD.MM.YYYY eingibt. Ist das auch genau so richtig?
    Das kommt jetzt drauf an: Du sprichst im Eingangspost von Geburtsdatum. Daher läuft der Code auch nur, wenn ein vollständiges Geburtsdatum eingegeben wird. Ansonsten kommt wahrscheinlich Mus raus und das Programm stürzt ab. Von daher ist Deine Vermutung mit Tag.Monat.Jahr richtig.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.