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

Fermé
cocobouuu - 16 juin 2017 à 22:33
 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

A voir également:

4 réponses

m@rina Messages postés 20353 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 13 juin 2024 11 290
18 juin 2017 à 07:05
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
1
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 :)
0
m@rina Messages postés 20353 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 13 juin 2024 11 290
21 juin 2017 à 16:30
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

0
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.
0