Vba : passer d'un ppt à l'autre

Le
Jac
Bonjour à tous,

par vba, je crée un ppt en paysage dont je récupère le nom avec
LE_PAYSAGE = ActivePresentation.Name
et un ppt an portrait dont je récupère le nom avec
LE_PORTRAIT = ActivePresentation.Name
Ensuite, j'ai besoin de passer de l'un à l'autre, mais de façon précise.

En fait, j'ai besoin d'une syntaxe qui ressemblerait à
Windows.Item(LE_PORTRAIT).Activate
mais ça ne fonctionne pas

Avec Windows.Item(1).Activate, Windows.Item(2).Activate et
Windows.Item(3).Activate, l'Item(1) correspond dans une première
sélection à la première fenêtre et dans une deuxième sélection à la
fenêtre 3, donc je ne sais jamais quelle est la fenêtre active.

Quelle serait la formule magique qui me permettrait d'activer
précisément une des fenêtres ouvertes ?

Merci d'avance,

Jac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #1099304

Bonjour à tous,

par vba, je crée un ppt en paysage dont je récupère le nom avec
LE_PAYSAGE = ActivePresentation.Name
et un ppt an portrait dont je récupère le nom avec
LE_PORTRAIT = ActivePresentation.Name
Ensuite, j'ai besoin de passer de l'un à l'autre, mais de façon précise.


Au lieu de travailler avec le nom, utilisez les objets présentation :
Dim LE_PAYSAGE As Presentation
Set LE_PAYSAGE = ActivePresentation
...
Dim LE_PORTRAIT As Presentation
Set LE_PORTRAIT = ActivePresentation

LE_PORTRAIT.Slides(5).Select
...
LE_PORTRAIT.Slides(6).Copy
...
LE_PORTRAIT.SaveAs ....
LE_PORTRAIT.Close

--
A+

Jac
Le #1099892
Merci beaucoup Geo, je vais suivre ton conseil.

"Geo"

Bonjour à tous,

par vba, je crée un ppt en paysage dont je récupère le nom avec
LE_PAYSAGE = ActivePresentation.Name
et un ppt an portrait dont je récupère le nom avec
LE_PORTRAIT = ActivePresentation.Name
Ensuite, j'ai besoin de passer de l'un à l'autre, mais de façon précise.


Au lieu de travailler avec le nom, utilisez les objets présentation :
Dim LE_PAYSAGE As Presentation
Set LE_PAYSAGE = ActivePresentation
...
Dim LE_PORTRAIT As Presentation
Set LE_PORTRAIT = ActivePresentation

LE_PORTRAIT.Slides(5).Select
...
LE_PORTRAIT.Slides(6).Copy
...
LE_PORTRAIT.SaveAs ....
LE_PORTRAIT.Close

--
A+





Jac
Le #1104827
Merci Geo, mais en suivant ton conseil,
"LE_PORTRAIT.Slides(1).Select"
ne me fait pas changer de présentation.

"LE_PORTRAIT" est une variable(il me semble) qui n'affiche
aucune valeur au passage du curseur et même pas une boîte de
dialogue avec un "MsgBox LE_PORTRAIT".

"Geo"

Bonjour à tous,

par vba, je crée un ppt en paysage dont je récupère le nom avec
LE_PAYSAGE = ActivePresentation.Name
et un ppt an portrait dont je récupère le nom avec
LE_PORTRAIT = ActivePresentation.Name
Ensuite, j'ai besoin de passer de l'un à l'autre, mais de façon précise.


Au lieu de travailler avec le nom, utilisez les objets présentation :
Dim LE_PAYSAGE As Presentation
Set LE_PAYSAGE = ActivePresentation
...
Dim LE_PORTRAIT As Presentation
Set LE_PORTRAIT = ActivePresentation

LE_PORTRAIT.Slides(5).Select
...
LE_PORTRAIT.Slides(6).Copy
...
LE_PORTRAIT.SaveAs ....
LE_PORTRAIT.Close



Geo
Le #1108233

"LE_PORTRAIT" est une variable(il me semble) qui n'affiche
aucune valeur au passage du curseur et même pas une boîte de
dialogue avec un "MsgBox LE_PORTRAIT".


Oui l'approche est différente de ce qu'on fait à la main :
C'est une variable qui contient la présentation en sa totalité, c'est à
dire toutes ses caractéristiques, les diapos, les masques etc.
Le nom de la présentation est LE_PORTRAIT.Name .

Vous pouvez recopier des éléments d'un présentation à l'autre en
désignant ces éléments, il n'est pas nécessaire de les afficher.
Par exemple
LE_PORTRAIT.SlideMaster.CustomLayouts(6)
est le masque de la présentation LE_PORTRAIT pour Titre seul.

--
A+

Jac
Le #1116811
Donc j'en reviens à ma question : comment réactiver la présentation
LE_PORTRAIT.name ?

J'arrive atteindre le premier ppt, ou le deuxième, mais premier, deuxième ou
troisième ne sont jamais les mêmes...
Dans Excel, je change de feuille ou de classeur sans soucis. Mais là, est-ce
impossible ?

Heureusement que les produits office font partie d'un package. Qu'est ce que
ça donnerait si chaque produit était vendu par des firmes différentes ?

Voici ce que je cherche à faire : je crée deux ppt LE_PORTRAIT et LE_PAYSAGE
que j'alimente avec des images selon qu'elles sont en portrait ou en
paysage. Donc j'ai besoin à tout moment, selon le format de l'image
considérée, de passer d'un ppt à l'autre.


"Geo"

"LE_PORTRAIT" est une variable(il me semble) qui n'affiche
aucune valeur au passage du curseur et même pas une boîte de
dialogue avec un "MsgBox LE_PORTRAIT".


Oui l'approche est différente de ce qu'on fait à la main :
C'est une variable qui contient la présentation en sa totalité, c'est à
dire toutes ses caractéristiques, les diapos, les masques etc.
Le nom de la présentation est LE_PORTRAIT.Name .

Vous pouvez recopier des éléments d'un présentation à l'autre en désignant
ces éléments, il n'est pas nécessaire de les afficher.
Par exemple
LE_PORTRAIT.SlideMaster.CustomLayouts(6)
est le masque de la présentation LE_PORTRAIT pour Titre seul.

--
A+





Geo
Le #1118884

Heureusement que les produits office font partie d'un package. Qu'est ce que ça
donnerait si chaque produit était vendu par des firmes différentes ?


Bien d'accord avec vous.

Voici ce que je cherche à faire : je crée deux ppt LE_PORTRAIT et LE_PAYSAGE que
j'alimente avec des images selon qu'elles sont en portrait ou en paysage. Donc j'ai
besoin à tout moment, selon le format de l'image considérée, de passer d'un ppt à
l'autre.


D'accord, comme je suis têtu, je vous propose ceci :

Dim MaPrésentation as Presentation

...

Si image en mode portrait then

set MaPrésentation = Le_portrait
else
set MaPrésentation = Le_paysage
end if

Ajouter l'image à la dipao x de MaPrésentation
Vous passez bien d'une présentation à l'autre, mais sans l'afficher
pour autant.

En Excel c'est le même chose, vous pouvez travailler sur une feuille ou
l'autre sans l'afficher.
Si vous tenez à votre affichage :
MaPrésentation.Windows(1).Panes(1).Activate

--
A+

Jac
Le #1134036
Ouf... merci Géo, ça fonctionne comme je veux, maintenant.

Jac

"Geo"

Heureusement que les produits office font partie d'un package. Qu'est ce
que ça donnerait si chaque produit était vendu par des firmes différentes
?


Bien d'accord avec vous.

Voici ce que je cherche à faire : je crée deux ppt LE_PORTRAIT et
LE_PAYSAGE que j'alimente avec des images selon qu'elles sont en portrait
ou en paysage. Donc j'ai besoin à tout moment, selon le format de l'image
considérée, de passer d'un ppt à l'autre.


D'accord, comme je suis têtu, je vous propose ceci :

Dim MaPrésentation as Presentation

...

Si image en mode portrait then

set MaPrésentation = Le_portrait
else
set MaPrésentation = Le_paysage
end if

Ajouter l'image à la dipao x de MaPrésentation
Vous passez bien d'une présentation à l'autre, mais sans l'afficher pour
autant.

En Excel c'est le même chose, vous pouvez travailler sur une feuille ou
l'autre sans l'afficher.
Si vous tenez à votre affichage :
MaPrésentation.Windows(1).Panes(1).Activate

--
A+





Publicité
Poster une réponse
Anonyme