Conserver la valeur d'une variable à la fin du sub

Bonjour,

Dans ma macro VBA sur PPT "Slide 1" k qui prend une certaine valeur à la fin de la macro.

Sub slide1()
k = ActivePresentation.Slides(2).SlideNumber
If OptionButton1.Value = True Then
ActivePresentation.SlideShowWindow.View.GotoSlide (17)
ElseIf OptionButton2.Value = True Then
ActivePresentation.SlideShowWindow.View.GotoSlide (18)
End If
OptionButton1.Value = False
OptionButton2.Value = False
End Sub

Je voudrais conserver cette valeur et l'appeler dans les macros des "Slide 2", "Slide 3"...

Sub slide2()
ActivePresentation.SlideShowWindow.View.GotoSlide (k + 1)
End Sub

mais je n'y arrive pas, à la fin du sub du slide1, k reprend la valeur 0.

Avez-vous une solution svp ?

Merci

Bonjour Doofy59

Vous avez tout ce qu'il faut ici
https://www.excel-pratique.com/fr/vba/variables

Il faut déclarer ses variables et mettre celle-ci en Public dans un module

Public K as Integer

A+

Bonjour,

Essayez de renommer votre macro en:

Static Sub slide1()

Autre solution si ça ne marchait pas, enregistrez la valeur de "k" dans une cellule, ainsi vous saurez toujours où elle se trouve pour pouvoir la récupérer.

Cdlt

Edit: bonjour BrunoM45, désolé j'avais pas rafraichi l'afichage.

BONJOUR Arturo83

On parle de PowerPoint... ou avez vu des cellules

Effectivement, j'ai un peu tout mélangé. pas encore les yeux bien en face des trous

Merci pour vos réponse,

Je viens de tous les tester mais cela ne résoud toujours pas mon problème

En fait les macros slide1 et slide2 sont dans deux slides différents. en déclarant "k" comme variable public dans le slide 1 sa valeur est conserver pour tous les autres macro du slide 1 mais lorsque je passe à une macro du slide 2, "k" reprend la valeur 0.

macro du slide1

Public k As Integer
Sub slide1()
'k = ActivePresentation.Slides().SlideNumber
k = ActivePresentation.Slides(2).SlideNumber
If OptionButton1.Value = True Then
ActivePresentation.SlideShowWindow.View.GotoSlide (17)
'Call bravo
ElseIf OptionButton2.Value = True Then
ActivePresentation.SlideShowWindow.View.GotoSlide (18)
End If
OptionButton1.Value = False
OptionButton2.Value = False
End Sub

macro du slide 2

Public k As Integer
Sub slide2()
n = k + 1
ActivePresentation.SlideShowWindow.View.GotoSlide (n)
End Sub
Private Sub Label1_Click()
Call bravo
End Sub

une idée de solution ?

En vous remerciant par avance.

Je n'ai jamais essayé VBA sur Powerpoint, mais il doit y avoir un système de module non ?

Si la variable publique est déclarée, non pas au niveau des slides, mais dans un module, ça devrait fonctionner.

Bonjour le fil,

Il faut déclarer K comme Public 1 seule fois, sinon la variable est réinitialisée

De plus, dans le code donné, vous utiliser "n" comme variable au lieu de "k"

Il faut faire quelque chose comme

Option Explicit
' Déclaration publique
Public k As Integer

Sub slide1()
  k = ActivePresentation.Slides(2).SlideNumber
  If OptionButton1.Value = True Then
    ActivePresentation.SlideShowWindow.View.GotoSlide (17)
    'Call bravo
  ElseIf OptionButton2.Value = True Then
    ActivePresentation.SlideShowWindow.View.GotoSlide (18)
  End If
  OptionButton1.Value = False
  OptionButton2.Value = False
End Sub

Sub slide2()
  K = k + 1
  ActivePresentation.SlideShowWindow.View.GotoSlide (K)
End Sub

A+

Je viens d'essayer l’écriture de BrunoM45 en supprimant la déclaration de variable au slide2, mais ça ne marche toujours pas .

k reprend la valeur 0 dans la macro du slide2

Re,

Vous n'avez que le code donné dans votre PPT

Nota : j'ai déplacé le sujet, pour moi rien à faire dans Excel - VBA

Oui je n'ai que les codes dont je vous ai affiché dans mon PPT.

Merci,

Re,

Alors je ne comprends pas et je suppose que vous ne pouvez pas mettre ce fichier en partage

Désolé, mais nous ne pourrons pas plus vous aider, je pense.

Bonjour,

Je viens d'aller tester rapidement.

En déclarant k en public dans un module, la variable k garde sa valeur dans toutes les slides tant qu'elle n'est pas réinitialisée.

powt

Salut Le Drosophile

Bonjour,

Je viens d'aller tester rapidement.

En déclarant k en public dans un module, la variable k garde sa valeur dans toutes les slides tant qu'elle n'est pas réinitialisée.

powt

Nous sommes bien d'accord

Chez moi aussi çà a marché

Merci beaucoup et merci au forum

Re,

Non mais sérieux il faudrait déjà commencer par vous former au VBA... non

Que vous avais-je dis au 1er post !?
https://forum.excel-pratique.com/s/goto/1131464

Si maintenant il faut que l'on mette des images comme pour les enfants... ou allons nous

[c'est mon coup de gueule du jour]

Rechercher des sujets similaires à "conserver valeur variable fin sub"