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

VBA PowerPoint Discussion :

Faire disparaitre un texte selon la valeur d'une combobox


Sujet :

VBA PowerPoint

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Faire disparaitre un texte selon la valeur d'une combobox
    Bonjour,

    Je débute en VBA et je ne trouve pas beaucoup de documentation spécifique à son utilisation dans powerpoint.
    Voici mon problème :
    J'ai créé une combobox et j'aimerais qu'un texte différent s'affiche sur le slide en fonction de la valeur choisie.
    J'aimerais également que lorsqu'on fait un autre choix dans la combobox, le texte du choix précédent disparaisse pour laisser place au nouveau texte.

    J'ai essayé de faire cette manip' avec une checkbox, mais une fois le texte créé, impossible de le faire disparaitre.
    En fait, je n'arrive pas à faire en sorte que mon code reconnaisse ma textbox et lui applique des propriétés, il crée une nouvelle textbox à chaque clic sur la checkbox.
    Merci pour votre aide, c'est assez urgent hélas !!

    Voici mon code :


    Private Sub CheckBox1_Click()

    Dim sld As Slide
    Dim shp As shape

    ' affectation à l'objet slide la première diapositive de la présentation en cours.
    Set sld = ActivePresentation.Slides(1)
    Set shp = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 300, 350, 400, 350)

    If CheckBox1.Value = True Then


    ' ajout du texte
    With shp.TextFrame.TextRange
    .Text = "case cochée"
    .Font.Name = "Calibri"
    .Font.Size = 15

    End With

    Else: shp.Delete

    End If


    End Sub

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Points : 127
    Points
    127
    Par défaut
    c'est normal qu'il en créé une à chaque fois que tu cliques, au début y'a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set shp = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 300, 350, 400, 350)
    sinon tu peux créer une zone de texte normalement "à la main" récupérer son nom et de là tu peux la faire varier

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse,
    J'avais essayé en premier lieu de créer une forme mais je ne sais pas comment faire pour récupérer son nom.
    J'ai beau faire clic-droit pour trouver des propriétés mais je ne trouve rien.
    Comment peut-on la faire varier ensuite ?

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Points : 127
    Points
    127
    Par défaut
    t'as plusieurs solutions :

    si tu connais le numéro de diapo tu peux faire ça directement (i est le numéro de la diapo), ça tourne et sélectionne toutes les shapes et donne leurs noms dans la variable "nom" (qui est aussi shp.Name)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each shp In ActivePresentation.Slides(i).Shapes
        ActivePresentation.Slides(i).Shapes(shp.Name).Select
        nom = shp.Name
    Next
    ou sinon par ta technique tu peux insérer la zone de texte et connaitre son nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set shp = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 300, 350, 400, 350)
    nom= shp.Name
    après tu peux réécrire le nom en dur car il ne devrait pas varier ex: With Shapes("TextBox 26").TextFrame.TextRange

Discussions similaires

  1. [XL-2007] Répéter une macro selon la valeur d'une ComboBox
    Par Jeromeric dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/12/2011, 13h02
  2. [XL-2007] Filtrer une ListBox selon la valeur d'une ComboBox
    Par Jeromeric dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/11/2011, 23h38
  3. Cacher un champs texte selon la valeur d'une liste déroulante
    Par ntahi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/08/2007, 15h46
  4. [FLASH 8] Faire disparaitre du texte avec alpha
    Par steeves5 dans le forum Flash
    Réponses: 6
    Dernier message: 08/06/2006, 15h47
  5. faire disparaitre du texte par rapport à radio bouton
    Par allowen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/10/2005, 14h20

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