Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/10/2006, 12h44   #1
Invité de passage
 
Inscription : février 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 33
Points : 4
Points : 4
Par défaut [VBA PP] Renvoyer le nom d'un objet

Bonjour,
Je voudrais savoir si il existerait une fonction qui permetrait de savoir soit l'emplacement d'un objet soit son nom, sur une diapositive, quand on clique dessus.
Je m'explique : j'ai environ une trentaine d'objets qui sont générés aléatoirement à l'aide d'un randomize lors d'un clic sur un bouton. Et j'aimerais bien déplacer ou supprimer un objet créé quand on clique sur ce dernier. Or je ne peux connaître le nom de cet objet donc de lui attribuer un fonction. La macro pour tous les objets générés est la même.

Merci d'avance si vous vous penchez sur mon problème.
Pikasacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 13h02   #2
Membre éclairé
 
Inscription : octobre 2006
Messages : 390
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 390
Points : 396
Points : 396
Essaie :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub SetActionAllObject()
    Dim sl As Slide, sr As Shape
    For Each sl In ActivePresentation.Slides
        For Each sr In sl.Shapes
            With sr.ActionSettings(ppMouseClick) ' ppMouseOver si juste pointage avec la souris
                .Action = ppActionRunMacro
                .Run = "TaMacro" ' ppActionNone par défaut
                .SoundEffect.Type = ppSoundNone
                .AnimateAction = msoFalse
            End With
        Next sr
    Next sl
End Sub
Tu affectes ainsi "TaMacro" sur le clic de chaque objet.
Par contre je ne penses pas qu'avec le diaporama lancé, tu puisses supprimer un objet...
dadavyvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 13h53   #3
Invité de passage
 
Inscription : février 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 33
Points : 4
Points : 4
Ce n'est pas exactement ce que je compte faire
Je ne vois pas comment on peut donner une action à un objet dont on ne connait pas le nom. Dans ton code, dans la macro qu'il renvoit, il faudra forcément définir l'objet auquel l'action doit être effectuée. Ce que j'aimerais c'est que, lors du clic, il se passe quelque chose sur l'objet sur lequel on a cliqué.
Pikasacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 14h21   #4
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonjour

de quel type d'objet s'agit il ?


michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 14h39   #5
Invité de passage
 
Inscription : février 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 33
Points : 4
Points : 4
Une simple forme PowerPoint
Pikasacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 14h41   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
on peu voir le code de génération."randon..."..? doit bien y avoir un moyen d'affecter une macro à l'objet au moment de sa création ..?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 15h44   #7
Invité de passage
 
Inscription : février 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 33
Points : 4
Points : 4
En fait je fais un copier coller pr dupliquer les objets sur la diapo.
L'avantage c'est que si j'atribue une maccro à l'objet qui sera copié, toutes ses copies auront directement eux aussi la meme macro.
Le probleme c'est que je ne sais pas quoi mettre dans cette macro pour que l'objets soit supprimé/disparaisse/change de place quand on clique dessus. La meme macro doit donc etre utilisée pour tous les objets.
C'est pour cela que je me demandais s'il ny avait pas une possibilité de renvoyer le nom de lobjet. Pour pouvoir tout simplement utiliser dans la macro un simple code genre:
Code :
Activepresentation.slides(X).shapes(X).Delete
sinon voici le code de génération:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub generation()
 
Dim ab As Integer
Dim co As Integer
 
 
ActivePresentation.Slides("STRUCT").Shapes(7).Copy 'copie un objet (image) qu'il y a en dehors de la diapositive
 
ActivePresentation.Slides("STRUCT").Shapes(9).TextFrame.TextRange = ActivePresentation.Slides("STRUCT").Shapes(9).TextFrame.TextRange + 1 'pour savoir le nombre d'objets crées
 
'Définition des X et Y dans une certaine portion de la diapo
Randomize
co = Int((328 * Rnd) + 177)
Randomize
ab = Int((403 * Rnd) + 272)
 
With ActivePresentation.Slides("STRUCT").Shapes.Paste
 .Top = co
 .Left = ab
End With
 
' Il y aura apres un compte a rebours. Il faudra cliquer le plus vite possible pour créer le plus d'objets possible
 
End Sub
Merci d'avance
Pikasacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 14h16   #8
Invité de passage
 
Inscription : février 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 33
Points : 4
Points : 4
Personne n'a de solution ?
Pikasacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h21.


 
 
 
 
Partenaires

Hébergement Web