Wie VBA-Code für PP-Makro anpassen?

Moderator: ModerationP

Wie VBA-Code für PP-Makro anpassen?

Beitragvon BenC » 18. Jan 2019, 20:23

Hallo zusammen,

ich habe im Internet einen VBA-Code für ein PP-Makro gefunden, das die Wiedergabereihenfolge aller 15 Folien in einer PP randomisiert. Funktioniert ganz gut, sofern ich in der Foliensortierungsansicht das Makro ausführe. Hier der Code:

Sub sortierung_rand()

Dim i As Integer
Dim myvalue As Integer
Dim islides As Integer
islides = ActivePresentation.Slides.Count
For i = 1 To ActivePresentation.Slides.Count
myvalue = Int((i * Rnd) + 1)
ActiveWindow.ViewType = ppViewSlideSorter
ActivePresentation.Slides(myvalue).Select
ActiveWindow.Selection.Cut
ActivePresentation.Slides(islides - 1).Select
ActiveWindow.View.Paste
Next

End Sub


Was ich bräuchte, wäre die Wiedergabe der Folien 3 bis 7 und 10 bis :14 randomisiert, während die anderen Folien ihren ursprünglichen Platz behalten sollen.

Hätte jemand eine Idee, wie ich den VBA-Code umschreiben müsste? Es wäre schön, wenn sich das Makro während der Präsentationswiedergabe starten ließe. Mit der Bindung des Makros an eine Aktionsschaltfläche hat es bisher nicht geklappt.

Für alle Antworten jetzt schon Danke.

Mfg
BenC
BenC
 

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon theoS » 20. Jan 2019, 23:14

Hallo, wie willst du das dann genau haben?
die Folien 3-7 innerhalb des Bereichs randomisiert, oder ist das dann egal, Hauptsache, die Nummern 1-3 und 8-9 bleiben an ihrem Platz?
Sprich, die Folie 5 kann auch die Folie 12 werden und umgekehrt?
Oder willst du was anderes?
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4768
Registriert: 19. Apr 2008, 00:14

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon Gast » 21. Jan 2019, 12:35

Hallo,

ich bräuchte folgende Wiedergabe:
Folien 1 bis 2: behalten ihren ursprünglichen Platz
Folien 3 bis 7: randomisiert
Folien 8 bis 9: behalten ihren ursprünglichen Platz
Folien 10 bis 14: randomisiert
Folien 15: behält ihren ursprünglichen Platz

Wie gesagt, es wäre zudem schön, wenn sich das Makro während der Präsentationswiedergabe starten ließe (z.B. über eine transparente Schaltfläche auf Folie 2 bzw. Folie 9). Mit der Altionsschaltfläche klappt es leider nicht.

Für alle Antworten jetzt schon Danke.

mfg
BenC
Gast
 

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon DerHoepp » 21. Jan 2019, 16:55

Moin,

wenn du auf Folie2 einen ActiveX-Button einfügst, kann es so funktionieren:
Code: Alles auswählen
Private Sub CommandButton1_Click()
    Dim i As Long
    For i = 1 To 10
        ActivePresentation.Slides(Int(((7 - 3 + 1) * Rnd) + 3)).MoveTo 3
    Next i
End Sub

Ggf musst du noch gucken, ob tatsächlich die Folien zwischen 3 und 7 getroffen werden.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8307
Registriert: 14. Mai 2013, 11:08

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon BenC » 21. Jan 2019, 18:19

Hallo,

der Code funktioniert klasse für Folie 3 - 7. Die Randomisierung der Folien 10- 14 geht leider noch nicht. Hättest Du einen Tipp, wie ich den Code ändern könnte?

Vielen Dank im Voraas für alle Tipps.

mfg
BenC
BenC
 

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon DerHoepp » 21. Jan 2019, 18:38

Hi, am einfachsten, indem du die Funktionsweise verstehst. ich hab sogar extra die Berechnung aus Ober- und Untergrenze dringelassen. In der Onlinehilfe zu Rnd() findest du auch noch eine kurze Erläuterung. Falls du noch konkrete Verständnisfragen hast, nur zu!

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8307
Registriert: 14. Mai 2013, 11:08

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon BenC » 21. Jan 2019, 20:32

Hallo,

es hat geklappt. Wunderbar, Habe für meinen zweiten Button folgenden Vode verwendet:

Private Sub CommandButton2_Click()
Dim i As Long
For i = 9 To 15
ActivePresentation.Slides(Int(((14- 10 + 1) * Rnd) + 10)).MoveTo 10
Next i
End Sub

Vielen Dank für deine Hilfe und Online-Hilfe-Hinweis .

mfg
BenC
BenC
 

Re: Wie VBA-Code für PP-Makro anpassen?

Beitragvon theoS » 21. Jan 2019, 20:38

und wenn du die beiden Codes zusammenkopierst, dann brauchst du nur einmal drücken.

Code: Alles auswählen
rivate Sub CommandButton1_Click()
    Dim i As Long
    For i = 1 To 10
        ActivePresentation.Slides(Int(((7 - 3 + 1) * Rnd) + 3)).MoveTo 3
    Next i

For i = 9 To 15
ActivePresentation.Slides(Int(((14- 10 + 1) * Rnd) + 10)).MoveTo 10
Next i
End Sub
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4768
Registriert: 19. Apr 2008, 00:14


Zurück zu PowerPoint Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast