Selectionner les shapes d'une page quand la feuille contient plusieurs pages

Le
manbas
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller dans
PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1, puis
celles de la page 2, etc(pour éviter le trop plein d'objets dans la
première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse
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
isabelle
Le #20177171
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1 et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller dans
PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1,
puis celles de la page 2, etc...(pour éviter le trop plein d'objets
dans la première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse



manbas
Le #20178571
Bonjour Isabelle
Merci pour ta réponse, qui me fournit enfin une idée car je n'en avais pas.
Les éléments de ma feuille sont toujours répartis dans un format paysage,
car les lignes sont masquées au-dessous de la 38eme. Par contre les colonnes
vont jusqu'au bout du classeur. Quel serait alors le pendant de
TopLeftCell.Row?


"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1 et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller dans
PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1, puis
celles de la page 2, etc...(pour éviter le trop plein d'objets dans la
première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse





manbas
Le #20179921
Je suis parti bille en tête sur une modif possible avec les colonnes, sans
succès.
Tardivement je découvre que ce code (même en rajoutant if) ne fonctionne
pas: le shape n'est pas selectionné??


"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1 et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller dans
PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1, puis
celles de la page 2, etc...(pour éviter le trop plein d'objets dans la
première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse





manbas
Le #20181371
Isabelle j'ai le souci suivant:
le code fonctionne dans Excel, pourtant lorsqu'on l'execute pas-à-pas on ne
voit pas la selection des shapes "activée".
Lorsque le code demande le collage (dans powerpoint) des shapes copiés, le
bug survient car il n'y a "rien" de copié.
Quel est ton avis?

"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1 et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller dans
PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1, puis
celles de la page 2, etc...(pour éviter le trop plein d'objets dans la
première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse





isabelle
Le #20181591
bonjour Manbas,

TopLeftCell.Column

isabelle

manbas a écrit :
Bonjour Isabelle
Merci pour ta réponse, qui me fournit enfin une idée car je n'en avais
pas.
Les éléments de ma feuille sont toujours répartis dans un format
paysage, car les lignes sont masquées au-dessous de la 38eme. Par
contre les colonnes vont jusqu'au bout du classeur. Quel serait alors
le pendant de TopLeftCell.Row?


"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1
et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller
dans PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1,
puis celles de la page 2, etc...(pour éviter le trop plein d'objets
dans la première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse








isabelle
Le #20181751
difficile de répondre sans savoir quel méthode tu utilise pour faire ton
copier coller,

isabelle

manbas a écrit :
Isabelle j'ai le souci suivant:
le code fonctionne dans Excel, pourtant lorsqu'on l'execute pas-à-pas
on ne voit pas la selection des shapes "activée".
Lorsque le code demande le collage (dans powerpoint) des shapes
copiés, le bug survient car il n'y a "rien" de copié.
Quel est ton avis?

"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1
et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller
dans PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1,
puis celles de la page 2, etc...(pour éviter le trop plein d'objets
dans la première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse








michdenis
Le #20182101
Bonjour Isabelle,

Avec Excel 2007, la commande Shapes.SelectAll
ne sélectionnes pas "toutes" les shapes

Shapes.SelectAll : Valides pour tout sauf : les contrôles
émanant de la barre d'outils "Contrôle" et "formulaire"
y compris les graphes.

Feuil1.DrawingObjects.Select -> bon pour les contrôles
de la barre d'outils "Formulaires" et "Contrôles" seulement.



"isabelle" a écrit dans le message de groupe de discussion :
##
difficile de répondre sans savoir quel méthode tu utilise pour faire ton
copier coller,

isabelle

manbas a écrit :
Isabelle j'ai le souci suivant:
le code fonctionne dans Excel, pourtant lorsqu'on l'execute pas-à-pas
on ne voit pas la selection des shapes "activée".
Lorsque le code demande le collage (dans powerpoint) des shapes
copiés, le bug survient car il n'y a "rien" de copié.
Quel est ton avis?

"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1
et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller
dans PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1,
puis celles de la page 2, etc...(pour éviter le trop plein d'objets
dans la première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse








isabelle
Le #20182091
salut Denis,

qu'en est t'il de la commande Shapes.Range ?

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

michdenis a écrit :
Bonjour Isabelle,

Avec Excel 2007, la commande Shapes.SelectAll
ne sélectionnes pas "toutes" les shapes

Shapes.SelectAll : Valides pour tout sauf : les contrôles
émanant de la barre d'outils "Contrôle" et "formulaire"
y compris les graphes.

Feuil1.DrawingObjects.Select -> bon pour les contrôles
de la barre d'outils "Formulaires" et "Contrôles" seulement.



"isabelle" a écrit dans le message de groupe de discussion :
##
difficile de répondre sans savoir quel méthode tu utilise pour faire ton
copier coller,

isabelle

manbas a écrit :

Isabelle j'ai le souci suivant:
le code fonctionne dans Excel, pourtant lorsqu'on l'execute pas-à-pas
on ne voit pas la selection des shapes "activée".
Lorsque le code demande le collage (dans powerpoint) des shapes
copiés, le bug survient car il n'y a "rien" de copié.
Quel est ton avis?

"isabelle" a écrit dans le message de
news:%

bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1
et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :

Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller
dans PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1,
puis celles de la page 2, etc...(pour éviter le trop plein d'objets
dans la première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse










michdenis
Le #20182221
Seule la dernière shape (telle que définie dans mon message
précédent) est sélectionnée.


"isabelle" a écrit dans le message de groupe de discussion :
#rO$
salut Denis,

qu'en est t'il de la commande Shapes.Range ?

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

michdenis a écrit :
Bonjour Isabelle,

Avec Excel 2007, la commande Shapes.SelectAll
ne sélectionnes pas "toutes" les shapes

Shapes.SelectAll : Valides pour tout sauf : les contrôles
émanant de la barre d'outils "Contrôle" et "formulaire"
y compris les graphes.

Feuil1.DrawingObjects.Select -> bon pour les contrôles
de la barre d'outils "Formulaires" et "Contrôles" seulement.



"isabelle" a écrit dans le message de groupe de discussion :
##
difficile de répondre sans savoir quel méthode tu utilise pour faire ton
copier coller,

isabelle

manbas a écrit :

Isabelle j'ai le souci suivant:
le code fonctionne dans Excel, pourtant lorsqu'on l'execute pas-à-pas
on ne voit pas la selection des shapes "activée".
Lorsque le code demande le collage (dans powerpoint) des shapes
copiés, le bug survient car il n'y a "rien" de copié.
Quel est ton avis?

"isabelle" a écrit dans le message de
news:%

bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1
et 41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :

Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller
dans PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1,
puis celles de la page 2, etc...(pour éviter le trop plein d'objets
dans la première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse










manbas
Le #20182201
La "base" du code est celle-ci, dans laquelle j'ai remplacé
Activesheet.shapes.selectall par la boucle proposée:
Sub Diapo()
Dim fichier
fichier = ActiveWorkbook.Name
Dim obj As OLEObject
' déclare une variable de type Application PowerPoint
Dim ppt As PowerPoint.Application
Set ppt = CreateObject("PowerPoint.Application")
ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier
(Erreur)
' crée maintenant un objet Presentation
Dim Pres As PowerPoint.Presentation
' on lui dit de quelle présentation il s'agit
Set Pres = ppt.Presentations.Add
' On active, sélectionne et copie dans Excel :
ActiveSheet.Shapes.SelectAll
Selection.Copy
' on colle dans la dia 1 de la présentation :
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste
' enregistre la présentation PowerPoint :
Pres.SaveAs Filename:= _
"C:UsersJacquesDesktop" & fichier & ".ppt"
' on quitte PowerPoint proprement :
ppt.Quit
Set ppt = Nothing
'Windows(fichier).Activate
End Sub

Pour avoir une idée du truc à exporter (4 dia), j'ai mis un modele sur
http://cjoint.com/?jtqLHHDtJb et MichDenis réponds à mon problème entre les
versions XL2003 et XL2007.



"isabelle" a écrit dans le message de
news:%23%
difficile de répondre sans savoir quel méthode tu utilise pour faire ton
copier coller,

isabelle

manbas a écrit :
Isabelle j'ai le souci suivant:
le code fonctionne dans Excel, pourtant lorsqu'on l'execute pas-à-pas on
ne voit pas la selection des shapes "activée".
Lorsque le code demande le collage (dans powerpoint) des shapes copiés,
le bug survient car il n'y a "rien" de copié.
Quel est ton avis?

"isabelle" a écrit dans le message de
news:%
bonjour manbas,

en supposant que tu veuille sélectionner les objets entre la ligne 1 et
41

Sub test1()
For Each obj In ActiveSheet.OLEObjects
If obj.TopLeftCell.Row < 42 Then
ActiveSheet.Shapes.Range(Array(obj.Name)).Select Replace:úlse
Next
End Sub

isabelle

manbas a écrit :
Bonjour à tous
Dans une macro je copie les shapes de la feuille pour les coller dans
PowerPoint.
Existe-t'il une solution pour copier d'abord les shapes de page 1, puis
celles de la page 2, etc...(pour éviter le trop plein d'objets dans la
première slide)

ActiveSheet.Shapes.SelectAll
Selection.Copy
Pres.Slides.Add Index:=1, Layout:=ppLayoutBlank
Pres.Slides(1).Shapes.Paste

Merci par avance pour votre réponse










Publicité
Poster une réponse
Anonyme