Saut de ligne par rapport à l'emplacement courant (VBA)

cocobouuu - 16 juin 2017 à 22:33 - Dernière réponse :  cocobouuu
- 27 juin 2017 à 08:34
Bonjour :)

Je rencontre le petit problème suivant : J'ai écrit une macro qui permet d'insérer un quickpart dans l'emplacement courant, cependant lorsque j'insère plusieurs quickpart à la suite (en l'occurence ici des tableaux) ceux-ci se supperposent, alors que moi j'aimerai qu'ils ne soient pas superposés mais mis à la suite. Je pense qu'il faut faire des sauts de ligne mais je n'ai pas trouvé un code vba qui permette de sauter une ligne par rapport à l'emplacement courant.

Pour l'insertion du quickpart, voici le code (mon quickpart, un tableau, s'appel test) :

Private Sub Insert_Click()
Templates.LoadBuildingBlocks ' chargement du template building blocks
' recherche du bon template
For Each docModele In Templates
If docModele.Name = "Building Blocks.dotx" Then
' si trouvé insertion du bloc table des matières
Templates(docModele.FullName).BuildingBlockEntries("test"). _
Insert Where:=Selection.Range, RichText:=True
Exit For
End If
Next
End Sub

Vous souhaitant un agréable week-end :p

Afficher la suite 

4 réponses

Répondre au sujet
m@rina 13864 Messages postés mardi 12 juin 2007Date d'inscriptionContributeurStatut 17 décembre 2017 Dernière intervention - 18 juin 2017 à 07:05
+1
Utile
Bonjour

Deja je ne comprends pas ta boucle et ton IF... puisque tu connais le template, autant le nommer directement.

Ensuite des tableaux se chevauchent uniquement s'ils ont un habillage. Si habillage non nécessaire, il ne faut pas en mettre, c'est toujours plus compliqué. Donc commence par recréer tes blocs sans habillage et nomme ton template.

m@rina
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de m@rina
cocobouuu - 19 juin 2017 à 16:36
0
Utile
Bonjour et merci pour votre réponse !

Je n'arrive pas à insérer de quickpart sans la boucle IF si je vais directement chercher l'objet :S avec le code suivant, Word ne trouve pas :
Private Sub Insert_Click()
Templates.LoadBuildingBlocks ' chargement du template building blocks
Templates(docModele.FullName).BuildingBlockEntries("test"). _
Insert Where:=Selection.Range, RichText:=True
End Sub

Ensuite, mes tableaux n'ont pas d'habillage. J'ai du mal m'exprimer, mais en gros quand j'insère à la suite plusieurs quickpart type tableau (nommés "test"), au lieu de me créer plusieurs tableaux l'un en dessous de l'autre, cela me créé un seul tableau où, à chaque clique, viennent s'ajouter des lignes.

Si vous avez des suggestions je serai très très intéressé ^^

Bonne fin de journée :)
Commenter la réponse de cocobouuu
m@rina 13864 Messages postés mardi 12 juin 2007Date d'inscriptionContributeurStatut 17 décembre 2017 Dernière intervention - 21 juin 2017 à 16:30
0
Utile
Bonjour

Si ton bloc se trouve dans le building blocks.dotx, il n'est pas dans le template du document.

Il faut indiquer en dur l'emplacement, par exemple :
chemin = Environ("USERPROFILE") & "\AppData\Roaming\Microsoft\Document Building Blocks\1036\16\Building blocks.dotx"
Application.Templates(chemin).BuildingBlockEntries("test").Insert Where:=Selection.Range, RichText :=True

Quant à tes tableaux on peut insérer un saut de ligne, mais pourquoi ne pas ajouter le saut de ligne au bloc ? C'est + simple.

m@rina

Commenter la réponse de m@rina
cocobouuu - 27 juin 2017 à 08:34
0
Utile
Slt m@rina et merci pour votre réponse :) Lorsque j'essaye de rajouter un saut de ligne avec mon tableau, l'onglet d'ajout de QuickParts devient grisé, c'est pourquoi je n'arrive pas à le faire ^^ Si tu as une autre idée elle sera la bienvenue.
Commenter la réponse de cocobouuu