J'ai une très longue présentation de ppt (environ 850 diapos) et la seconde moitié est pleine de formes avec certains textes que je voudrais supprimer . Malheureusement, il semble que cela n'a rien à voir avec le Slide Master, donc je ne peux pas l'utiliser.VBA Powerpoint: Supprimer la forme avec un texte spécifique. Erreur d'exécution '-2147024809 (80070057)': La valeur spécifiée est en dehors de la plage
J'ai eu une erreur:
Run-time error '-2147024809 (80070057)':
The specified value is out of range
Voici le code, je suis arrivé au moment
Sub DeleteShapeWithSpecTxt()
Dim oSl As Slides, oSh As Shapes, oTr As TextRange
Dim str As String
Dim testcomp1, testcomp2
Dim lppt, ShapeNb, k, j As Long
Dim pptAct
Set pptAct = PowerPoint.ActivePresentation
str = pptAct.Slides(335).Shapes(4).TextFrame.TextRange.Text
lppt = pptAct.Slides.Count
For k = 1 To lppt
ShapeNb = pptAct.Slides(k).Shapes.Count
For j = 1 To ShapeNb
If pptAct.Slides(k).Shapes(j).HasTextFrame And StrComp(str, pptAct.Slides(k).Shapes(j).TextFrame.TextRange.Text) = 0 Then
pptAct.Slides(k).Shapes(j).Delete
End If
Next
Next
End Sub
Cool. J'ai mis à jour la réponse pour inclure la possibilité d'obtenir la chaîne de recherche de l'utilisateur pendant que la macro s'exécute. Si la réponse aide, n'hésitez pas à voter pour cela :-) –
Aimerait, mais j'ai besoin de 15 points de réputation, que je n'ai pas depuis que je suis nouveau à stackoverflow ... –