VBA : Insérer un QuickPart ailleurs que dans Selection.Range
Fermé
SunIsShining
-
28 juil. 2017 à 14:14
m@rina Messages postés 21218 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 1 janvier 2025 - 31 juil. 2017 à 14:24
m@rina Messages postés 21218 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 1 janvier 2025 - 31 juil. 2017 à 14:24
A voir également:
- VBA : Insérer un QuickPart ailleurs que dans Selection.Range
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
1 réponse
m@rina
Messages postés
21218
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
1 janvier 2025
11 373
29 juil. 2017 à 01:14
29 juil. 2017 à 01:14
Bonjour,
Déjà, il faut savoir où tu veux l'insérer exactement. Tu dis "dans la page active", mais ce n'est pas précis.
Maintenant tu peux aussi tester quel est le type de sélection. Par exemple pour une image :
Ce qui signifie : si la sélection actuelle est une image, alors...
Tu peux aussi tester qu'il n'y a pas de sélection :
m@rina
Déjà, il faut savoir où tu veux l'insérer exactement. Tu dis "dans la page active", mais ce n'est pas précis.
Maintenant tu peux aussi tester quel est le type de sélection. Par exemple pour une image :
If Selection.Type = wdSelectionShape Then
...
Ce qui signifie : si la sélection actuelle est une image, alors...
Tu peux aussi tester qu'il n'y a pas de sélection :
If Selection.Type <> 1
m@rina
29 juil. 2017 à 15:41
Tu peux juste utiliser un Collapse avant l'insertion du bloc :
Mais je suis quand même étonnée, car si une image est sélectionnée, l'insertion du quickpart devrait le remplacer. C'est quoi le message d'erreur ?
m@rina
30 juil. 2017 à 11:39
Ca me met l'erreur suivante : Erreur d'execution 2147467259 (80004005) : La méthode insert de l'objet building block a échoué.
Si j('essaye ce que tu m'a dit en ajoutant le Insertion.Collapse, ça me met Erreur d'execution 424 : Objet requis. Code :
Public Sub inserer(nomSignet As String)
Insertion.Collapse
Application.Templates(chemin).BuildingBlockEntries(nomSignet).Insert Where:=Selection.Range, RichText:=True
End Sub
31 juil. 2017 à 02:37
Cette erreur n'est pas relative au Collapse qui ne fait que bouger la sélection.
Quand on veut insérer des blocs par macro, il faut commencer par charger :
Templates.LoadBuildingBlocks
https://docs.microsoft.com/fr-fr/office/vba/api/word.templates.loadbuildingblocks?redirectedfrom=MSDN
Et au risque de me répéter, il ne doit pas y avoir d'erreur avec le where:=selection.range, car si une autre image est sélectionnée, elle sera remplacée. Ce n'est pas forcément ce qu'on souhaite mais ça ne génère pas d'erreur.
m@rina
31 juil. 2017 à 07:52
Avec le code suivant, la ligne jaune se met sur le Insertion.Collapse :
Sub insert (nomSignet as String)
Insertion.Collapse
Application.Templates(chemin).BuildingBlockEntries(nomSignet).Insert Where:=Selection.Range, RichText:=True
End Sub
Est ce que je me suis trompé qq part ?
Ensuite, sans le Insertion.Collapse, si jinsere par exemple lobjet de signet "photo1"issu de chemin, ça marche. Si je clique sur un control dimage et que je reessaye, ça met le msg d erreur et ça ne remplace pas mon controle d image par photo1, bizzard..
31 juil. 2017 à 14:24
https://www.cjoint.com/