Clipboard si empty

Grifis

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau (Cf. page de présentation des arrivants) et j'ai déjà une question sur un code..

J'utilise un onglet excel avec de nombreuses donnée. Je répète une boucle de macro qui filtre sur différents champs et je lui demande de copier les données puis de les coller dans un .ppt.

Mon problème arrive quand lorsque je n'ai pas de donnée. Le message d'erreur est "Shapes.PasteSpecial : Invalid request. Clipboard is empty or contains data which may not be pasted here."

Je voudrais faire un code qui dise "quand data = "" alors tu ne colle rien"" (je pense que ca doit se mettre après "Range(Selection, Selection.End(xlDown)).Select". J'ai essayé plusieurs choses avec des Then & If mais je ne trouve pas le bon code...


Range("$A$1:$AC$39999").AutoFilter Field:=6, Criteria1:="Integration"

Range("$A$1:$AC$39999").AutoFilter Field:=7, Criteria1:= _
"Aerothermie et thermomecanique"

'Copier/Coller
Range("A1:M1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

PPT.ActivePresentation.Slides(36).Select
PPT.ActivePresentation.Slides(36).Shapes.PasteSpecial (ppPasteBitmap)
NbShpe = Pptdoc.Slides(36).Shapes.Count
With Pptdoc.Slides(36).Shapes(NbShpe)
.Height = 83.01 'hauteur image
.Width = 354.35 'largeur image
.Left = 396.0194 'horizontale dans le slide
.Top = 133.3 'verticale dans le slide

Je reconnais que ce code est très basique mais je débute.. Merci à tous pour votre aide.

Grifis
 

Pierrot93

XLDnaute Barbatruc
Re : Clipboard si empty

Bonjour,

A priori je vois que tu utilises un filtre, pourquoi ne pas tester si ll reste des lignes d'affichées après que le filtre soit appliqué... exemple ci-dessous :
Code:
Dim p As Range
Set p = Range("_FilterDatabase")
If WorksheetFunction.Subtotal(3, p.Offset(1).Resize(p.Rows.Count - 1, 1)) = 0 Then Exit Sub

bon après midi
@+
 

Grifis

XLDnaute Nouveau
Re : Clipboard si empty

Bonjour,

Merci pour votre réponse ! J'ai essayé et ca marche ! Par contre l'inconvénient est que ca ferme la macro car utilise un End Sub. J'ai une dizaine de loop entre mon Sub & mon End Sub.

J'ai trouvé la solution :
J'utilise directement : On Error Goto Loop_XXX

Il suffit de déclarer la loop suivante et des que j'ai une erreur ma macro continu et ne prend pas en compte le message d'erreur.

Merci pour votre aide

Grifis
 

Grifis

XLDnaute Nouveau
Re : Clipboard si empty

Pierrot,

J'ai un dernier problème (je vais peut-être ouvrir un post dedié) mais tu as peut-être sans doute déja la réponse (et comme tu es déja co..)

Je souhaite ouvrir un excel & un ppt. Je souhaite que les adresses soient inclus dans l'excel ("TdB_MT_Mise en forme.xlsm").Sheets("Menu").Cells(2, 2).Value.

J'ai aucun probleme pour l'excel mais impossible de trouver le bon code pour le PPT. Any ideas?

' **** Ouvrir le Excel MT ****

Workbooks.Open Filename:=Workbooks("TdB_MT_Mise en forme.xlsm").Sheets("Menu").Cells(2, 2).Value

' **** Ouvrir le PPT MT ****

Set PPT = CreateObject("PowerPoint.Application")
PPT.Visible = True
Set PptDoc = PPT.Presentations.Open("D:\Users\ST09646\Mes Documents\XX)

Je souhaite avoir un résultat proche de :
Set Pptdoc = PPT.Presentations.Open("TdB_MT_Mise en forme.xlsm").Sheets("Menu").Cells(2, 3).Value


Thanks !
 

Pierrot93

XLDnaute Barbatruc
Re : Clipboard si empty

Bonjour,

pas sûr d'avoir bien compris.. mais si tu as collé des cellules Excel sur une diapositive powerpoint, à mon avis il faut ouvrir d'abord ton power, et ensuite aller chercher "l'objet" (les cellules Excel) sur la diapo en question.... mais bon... jamais fait ce genre de chose... A voir comment et si l'on peut les récupérer....
 

Grifis

XLDnaute Nouveau
Re : Clipboard si empty

Re bonjour,

Effectivement, disons que je me suis mal exprimé sur ce coup la...

Pour faire simple je souhaite juste ouvrir un powerpoint mais je ne veux pas inscrire le chemin dans la macro ("D:\Users\ST09646\Mes Documents\XX) mais juste lui indiquer une cellule dans un fichier excel qui lui contient le chemin vers le powerpoint.

Grifis
 

Pierrot93

XLDnaute Barbatruc
Re : Clipboard si empty

Bonjour,

regarde peut être ceci, nom et chemin complet du ppt doivent setrouver dans la cellule en question :

Code:
Set PptDoc = PPT.Presentations.Open(Workbooks("NomClasseur.xls").Sheets("NomFeuille").Range("A1").Value  )

bonne journée
@+
 

Discussions similaires

Réponses
2
Affichages
731

Statistiques des forums

Discussions
312 231
Messages
2 086 441
Membres
103 210
dernier inscrit
Bay onais