J'ai un ppt qui est en cours d'enregistrement en format pdf pour l'utiliser comme catalogue. J'aimerais pouvoir nommer les formes de texte en fonction d'un identifiant de produit unique, puis les mettre à jour en fonction d'une connexion à une base de données d'accès. Je peux nommer les formes et mettre à jour les valeurs avec vba en utilisant une boîte de saisie (pour tester) mais je n'arrive pas à comprendre comment faire défiler toutes les formes et mettre à jour le texte en fonction des critères d'identification uniques. Voici ce que j'utilise pour tester le changement de nom et la mise à jour depuis une boîte de saisie.Mise à jour Powerpoint VBA Forme à partir de la base de données
Sous UpdateShape() Dim oShape Comme forme
Dim objName
On Error GoTo CheckErrors
If ActiveWindow.Selection.ShapeRange.Count = 0 Then
MsgBox "You need to select a shape first"
Exit Sub
End If
objName = ActiveWindow.Selection.ShapeRange(1).Name
objName = InputBox$("Assign a new name and value to this shape", "Update Shape", objName)
If objName <> "" Then
ActiveWindow.Selection.ShapeRange(1).Name = objName
ActiveWindow.Selection.ShapeRange(1).TextFrame.TextRange.Text = objName
End If
Exit Sub
CheckErrors: MsgBox Err.Description
End Sub
Ce que j'ai à l'esprit est pour le créateur de catalogue pour nommer le formes basées sur les images qu'ils mettent dans le catalogue. Le prix proviendra de la base de données en fonction du client pour lequel le catalogue est créé. Je voudrais que la vba parcourt les enregistrements de la base de données et renvoie le prix de vente en fonction de l'appariement de l'ID du produit avec le nom de la forme.
J'ai essayé d'utiliser Set oShape = ActivePresentation.Slides ("MySlide"). Formes ("myShape") et oShape.TextFrame.TextRange.Text = "objName"
Mais je ne peux pas obtenir le texte mise à jour et je ne peux pas comprendre comment utiliser une variable à la place de "MySlide"
Le nom de la table est tblProduct. Le nom du champ d'identifiant de produit est productid. le nom du champ de prix de vente est saleprice.
J'apprécie toute aide que je peux obtenir.
Merci
Steve, C'est exactement ce que je cherchais! Je l'ai travailler avec mes variables. Je vais travailler sur l'ouverture de la requête d'accès pour faire défiler les enregistrements pour mettre à jour chacun des champs. Merci beaucoup d'avoir pris le temps de répondre à ma question. – user3737686
Je me suis sorti d'une autre vente de mon complément Merge, n'est-ce pas? ;-) –