Signaler

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

Posez votre question cocobouuu - Dernière réponse le 27 juin 2017 à 08:34 par cocobouuu
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 
Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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 :)
Donnez votre avis
Utile
+0
plus moins
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

Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !