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 03/03/2011, 00h21   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 14
Points : 14
Par défaut recherche remplacement TextBox

Bonjour,

J'ai trouvé ici, une macro permettant de remplacer du texte au sein d'espaces réservés (TextFrame.TextRange).
Citation:
For Each sld In Application.ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasTextFrame Then
Set txtRng = shp.TextFrame.TextRange

Set foundText = txtRng.Find(FindWhat:=strWhatReplace)
Do While Not (foundText Is Nothing)
With foundText
.Text = CB
Set foundText = _
txtRng.Find(FindWhat:=strWhatReplace, _
After:=.Start + .Length - 1)
End With
Loop
End If
Next
Next
Quel élément dois-je chercher comme 'container' si je veux remplacer une zone de texte saisie dans un masque ? Apparemment il s'agit d'un TextBox mais je ne sais y accéder.
adt30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 04h09   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 609
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 609
Points : 30 959
Points : 30 959
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Peux-tu donner plus de détails sur cette zone de texte. Est-elle sur une diapositive précise ou sur un masque de diapositive (il apparait donc sur toutes).

De plus est-ce tout le texte que tu veux remplacer ou une partie ?

Peux-tu également donner ta version de PowerPoint.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 08h05   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 14
Points : 14
Citation:
Envoyé par Philippe JOCHMANS Voir le message
Bonjour

Peux-tu donner plus de détails sur cette zone de texte. Est-elle sur une diapositive précise ou sur un masque de diapositive (il apparait donc sur toutes).

De plus est-ce tout le texte que tu veux remplacer ou une partie ?

Peux-tu également donner ta version de PowerPoint.

Philippe
Bonjour et merci de cette réponse hyper matinale

Il s'agit d'un mot encadré de crochets {auteur} que je place sur un masque dans une zone de texte afin qu'il apparaisse effectivement sur toutes les diapos utilisant ce masque.
La version de powerpoint est 2007.
adt30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 11h25   #4
Candidat au titre de Membre du Club
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 14
Points : 14
Par défaut ma solution : espace réservé

Bon, j'ai finalement trouvé une solution.

Tout d'abord j'ai changé de tactique en travaillant sur un espace réservé.
Ensuite j'ai utilisé ce bout de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Sub InsAuteur()
    Dim CB As String
 
    CB = InputBox("Entrez le nom de l'auteur")
    For Each sld In Application.ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.Name = "Espace réservé du texte 3" Then
                shp.TextFrame.TextRange = CB
            End If
        Next
    Next
End Sub
A noter que si je change le nom de l'espace réservé dans le masque, cela ne marche pas car les diapositives générées ne semblent pas prendre en compte ce nom : il y a génération d'un nom : "Espace réservé du texte x". Ce qui peut poser problème si d'autres diapositives utilisent des masques différents ayant le même nom.

Il me reste à permettre à l'utilisateur d'appeler la macro par un bouton...
adt30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h18.


 
 
 
 
Partenaires

Hébergement Web