Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : compression d'images

12 réponses
Avatar
Jac
Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les
images du document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation.
De même quand je fais en enregistrer sous... et que je passe dans
Outils / Compresser les images.

Merci d'avance à qui me mettra sur la voie.

Jac

10 réponses

1 2
Avatar
Geo

Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir sélectionné une
image de ma présentation, de compresser toutes les images du document, avec une
résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De même quand je
fais en enregistrer sous... et que je passe dans Outils / Compresser les images.


Voici la solution de MS :
http://support.microsoft.com/kb/469871/fr

Pas testée.

--
A+

Avatar
Jean-Pierre Forestier [MVP[
Outre la réponse de Géo qui semble bien sollicité ces derniers temps avec le
VBA
Ce code existe par défaut dans PowerPoint : il s'appelle Compresser (barre
d'outils image) et fait exactement ce que tu cherches !
"Jac" a écrit dans le message de news:

Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les images
du document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De
même quand je fais en enregistrer sous... et que je passe dans Outils /
Compresser les images.

Merci d'avance à qui me mettra sur la voie.

Jac




Avatar
Jac
... oui Jean-Pierre, c'est vrai, j'avais remarqué... mais, c'est par
macro que je veux que ça se fasse (Voir le sujet original : "VBA :..."

Ce que tu annonces, ce n'est pas du code, mais tout simplement une
fonctionalité accessible via une barre d'icônes. Donc pour ce qui est
de son automatisation, c'est une autre affaire.

Si tu as une solution pour transposer ton affirmation en vba, je veux
bien la tester.

Jac

Outre la réponse de Géo qui semble bien sollicité ces derniers temps avec le
VBA
Ce code existe par défaut dans PowerPoint : il s'appelle Compresser (barre
d'outils image) et fait exactement ce que tu cherches !
"Jac" a écrit dans le message de news:

Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les images
du document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De
même quand je fais en enregistrer sous... et que je passe dans Outils /
Compresser les images.

Merci d'avance à qui me mettra sur la voie.

Jac






Avatar
Jac
Bonjour Geo,

ça fait plus de deux heures que j'essaye d'adapter le code MS, mais ce
n'est pas concluant. il ne compacte rien du tout...



Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les images
du document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De
même quand je fais en enregistrer sous... et que je passe dans Outils /
Compresser les images.


Voici la solution de MS :
http://support.microsoft.com/kb/469871/fr

Pas testée.



Avatar
Geo

Bonjour Geo,

ça fait plus de deux heures que j'essaye d'adapter le code MS, mais ce n'est pas
concluant. il ne compacte rien du tout...


Elle est annoncée pour 2002, il faudrait vérifier que la séquence
s'applique bien à votre version.
Il me semble aussi que le sendkeys marche mal en pas à pas.
Je vais voir si je peux essayer avec une version 2003.

--
A+

Avatar
Nikita
Salut,

essaie ce bout de code :

Sub CompressImages()
CommandBars("Picture").FindControl(Id:c82).Execute
SendKeys "a"
SendKeys "w"
SendKeys "{enter}"
End Sub

Il ouvre la boîte de dialogue de compression.
Il sélectionne la commande Toutes les images du document, même si tu as
une image sélectionnée lorsque tu lances la macro.
Il sélectionne la compression Site web/écran.

Termine par Enregistrer sous, tu devrais voir la différence, si tes
images ne sont pas déjà compressées bien sûr.

Niki


Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les images du
document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De même
quand je fais en enregistrer sous... et que je passe dans Outils / Compresser
les images.

Merci d'avance à qui me mettra sur la voie.

Jac


--
Niki

Avatar
Geo
Je vais voir si je peux essayer avec une version 2003.


Voici ce qui a l'air de marcher :
Sub test()
Dim MyShape As Shape
Dim Sl As Slide
For Each Sl In ActivePresentation.Slides
For Each MyShape In Sl.Shapes
If InStr(1, MyShape.Name, "Picture") > 0 Then
On Error Resume Next
Sl.Select
MyShape.Select
SendKeys "%{t}" ' Format
SendKeys "{g}" ' image
SendKeys "%{m}" ' compresser
SendKeys "%{w}" ' compression Web
SendKeys "{ENTER}" ' Ok
SendKeys "{ENTER}" ' Ok
End If
Next MyShape
SendKeys "%{F4}"
Next Sl
End Sub

Il faut s'assurer qu'il n'y a pas la fenêtre d'avertissement de perte
de qualité entre les deux OK

--
A+

Avatar
Jac
Desolé, mais je n'obtiens aucune diminution de taille.

Merci pour ta contribution.

Jac


Je vais voir si je peux essayer avec une version 2003.


Voici ce qui a l'air de marcher :
Sub test()
Dim MyShape As Shape
Dim Sl As Slide
For Each Sl In ActivePresentation.Slides
For Each MyShape In Sl.Shapes
If InStr(1, MyShape.Name, "Picture") > 0 Then
On Error Resume Next
Sl.Select
MyShape.Select
SendKeys "%{t}" ' Format
SendKeys "{g}" ' image
SendKeys "%{m}" ' compresser
SendKeys "%{w}" ' compression Web
SendKeys "{ENTER}" ' Ok
SendKeys "{ENTER}" ' Ok
End If
Next MyShape
SendKeys "%{F4}"
Next Sl
End Sub

Il faut s'assurer qu'il n'y a pas la fenêtre d'avertissement de perte de
qualité entre les deux OK



Avatar
Jac
Bonjour Nikita,

ça fonctionne impec.

Avec un grand merci,

Jac

Salut,

essaie ce bout de code :

Sub CompressImages()
CommandBars("Picture").FindControl(Id:c82).Execute
SendKeys "a"
SendKeys "w"
SendKeys "{enter}"
End Sub

Il ouvre la boîte de dialogue de compression.
Il sélectionne la commande Toutes les images du document, même si tu as une
image sélectionnée lorsque tu lances la macro.
Il sélectionne la compression Site web/écran.

Termine par Enregistrer sous, tu devrais voir la différence, si tes images ne
sont pas déjà compressées bien sûr.

Niki


Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les images
du document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De
même quand je fais en enregistrer sous... et que je passe dans Outils /
Compresser les images.

Merci d'avance à qui me mettra sur la voie.

Jac




Avatar
Nikita
Quand l'enregistreur de macros n'enregistre rien, on peut utiliser la
simulation des touches (SendKeys et la lettre soulignée dans la boîte
de dialogue). Pour accéder à l'outil, on peut utiliser son Identifiant
ou sa légende.

Par exemple, on peut remplacer :
CommandBars("Picture").FindControl(Id:c82).Execute
par
CommandBars("Picture").Controls("&Compresser les images...").Execute
plus parlant et surtout plus facile à trouver.

A noter que le nom de la barre d'outils est son nom anglais, mais que
l'on utilise la légende de l'outil telle qu'elle est indiquée quand on
va dans la personnalisation des menus.

Niki


Bonjour Nikita,

ça fonctionne impec.

Avec un grand merci,

Jac

Salut,

essaie ce bout de code :

Sub CompressImages()
CommandBars("Picture").FindControl(Id:c82).Execute
SendKeys "a"
SendKeys "w"
SendKeys "{enter}"
End Sub

Il ouvre la boîte de dialogue de compression.
Il sélectionne la commande Toutes les images du document, même si tu as une
image sélectionnée lorsque tu lances la macro.
Il sélectionne la compression Site web/écran.

Termine par Enregistrer sous, tu devrais voir la différence, si tes images
ne sont pas déjà compressées bien sûr.

Niki


Bonjour à tous,

je suis à la recherche du code vba qui me permettrait, après avoir
sélectionné une image de ma présentation, de compresser toutes les images
du document, avec une résolution site Web/écran.

L'enregistreur de macros reste muet quand je fais cette manipulation. De
même quand je fais en enregistrer sous... et que je passe dans Outils /
Compresser les images.

Merci d'avance à qui me mettra sur la voie.

Jac




--
Niki



1 2