IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Powerpoint Discussion :

Aller sur une diapositive d'après son nom et pas son numéro


Sujet :

Powerpoint

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Aller sur une diapositive d'après son nom et pas son numéro
    Bonjour le forum,
    je me sers de ce code pour me rendre sur la diapo 16.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SlideShowWindows(1).View.GotoSlide (16)
    J'aimerais utiliser plutôt le nom de la diapositive que sa position !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SlideShowWindows(1).View.GotoSlide ("Ma diapo nommée")
    Bien sur ce code ne marche pas .
    Merci
    Bonne soirée
    Carlos

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Je ne peux pas t'assurer que cela marche, mais tu pourrais essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SlideShowWindows(1).View.GotoSlide ActivePresentation.Slides("nom").SlideNumber
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Bien sûr que l'aide de VBA-Powerpoint dit que l'index est obligatoire et que l'index est de type Integer.

    Donc, il faut tricher. Cela prend une "Table de correspondance" entre le numéro de diapositive et le nom de la diapositive.

    Cela peut se faire avec un tableau caché à quelque part dans la présentation, quitte à ajouter une diapositive cachée. L'avantage étant que les données sont conservées entre deux utilisations du fichier. Pour exploiter les données on peut utiliser un "dictionnaire" (objet Dictionnary) que l'on peut avoir en liaison précoce (et l'intellisence, si les infos sont disponibles) avec une référence à Microsoft Scripting Runtime ou en liaison tardive avec un CreateObject(Scripting.Dictionnary)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Bonjour,
    La solution en string ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SlideShowWindows(1).View.GotoSlide ActivePresentation.Slides("nom").SlideNumber
    L'autre solution ( dictionnaire)me parait trop difficile à mettre en place avec mon niveau de compétence.

    Donc en faite si on inséré une nouvelle diapositive dans une présentation il faudra modifier tous les codes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SlideShowWindows(1).View.GotoSlide (8 + 1)
    Merci
    Carlos

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Citation Envoyé par Carlos31 Voir le message
    La solution en string ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SlideShowWindows(1).View.GotoSlide ActivePresentation.Slides("nom").SlideNumber
    Intrigué de savoir pourquoi, j'ai essayé et si, cela fonctionne ! Bien sûr, je remplace "nom" par celui d'une diapo.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Voici donc quelque chose qui semble marcher. Bien lire les commentaires du début et agir en conséquence avant de lancer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Dim Relevé As New Scripting.Dictionary
     
    Sub TableauNoms()
        'Commencer ici
        'S'assurer que la référence à
        'Microsoft Scripting Runtime
        'Dans Outils-Références
        'a bien été ajoutée
        'Et ne pas se plaindre que ce n'est pas indiqué
        'Pour avoir de l'informattion sur un
        'mot-clef, il suffit de cliquer sur le mot-clef
        'et de peser sur la touche F1
        'Je laisse à un autre volontaire,
        'le soin d'ajouter un contrôle d'erreurs
        'entre autres quand il n'y a pas de données
        'dans les InputBoxes.
        Dim LeDernier As Integer
        LeDernier = ActivePresentation.Slides.Count
        Dim lenom As String
        Dim i As Integer
        For i = 1 To LeDernier
            lenom = ActivePresentation.Slides(i).Name
            Relevé.Add i, lenom
        Next
        OnDéplaceSelonLeNom
    End Sub
     
    Sub OnDéplaceSelonLeNom()
        Dim unnom As String
        Dim arrivée As Integer
        'Au lieu d'utiliser des InputBoxes, on pourrait faire
        'un UserForm avec de jolis boutons, mais j'ai d'autres
        'chats à fouetter
        unnom = InputBox("Indiquez le nom de la diapositive à déplacer")
        arrivée = CInt(InputBox("Indiquez l'endroit où vous voulez la déplacer"))
        Dim untexte As String
        untexte = "On peut facilement déplacer une diapositive avec un vulgaire"
        untexte = untexte & vbNewLine & "glisser-déposer. C'est encore plus facile quand"
        untexte = untexte & vbNewLine & "l'affichage est en mode Trieuse de diapositives."
        MsgBox (untexte)
        Dim LeNuméroÀDéplacer As Integer
        LeNuméroÀDéplacer = NuméroSelonLeNom(unnom)
        ActivePresentation.Slides(LeNuméroÀDéplacer).MoveTo arrivée
    End Sub
     
    Function NuméroSelonLeNom(nom As String) As Integer
    Dim i As Integer
    i = 0
        For Each p In Relevé.Items
             If p = nom Then
                NuméroSelonLeNom = i
                Exit Function
            End If
            i = i + 1
        Next 'Key
      End Function
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. [PPT-2007] Enettre un son par un click sur un bouton ET aller sur une diapositive
    Par Carlos31 dans le forum Powerpoint
    Réponses: 2
    Dernier message: 27/11/2014, 15h41
  2. Réponses: 1
    Dernier message: 19/07/2013, 16h26
  3. Aller sur un lien seulement après qu'une animation soit effectuée
    Par gitney dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/05/2013, 13h19
  4. [VBA-Excel]Aller sur une feuille sans l'activer.
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/10/2006, 12h50
  5. Réponses: 2
    Dernier message: 21/09/2006, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo