Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2011, 17h42   #1
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
Par défaut Encadrer et espacer du texte (vb .net)

* Bonjour *

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
Sub Main
 
Dim App As Object
Dim TempDir As String
 
With App
.Documents.Open Doc
.visible = False
'Create a new document
'.Documents.Add
.Selection.InsertBreak Type:=7
'Add text to the document
With .Selection.Font
.Size =16
.Bold =True
End With
With .Selection.ParagraphFormat
.Alignment = 1
End With
 
 
.Selection.TypeText("FEUILLE DE ROUTE DU " & date_tirage)
.Selection.TypeParagraph
.Selection.TypeText("LE MONDE")
.Selection.TypeParagraph
 
  With .Selection.Font
  .Size =12
  .Bold = True
 End With
 With .Selection.ParagraphFormat
  .Alignment = wdAlignParagraphLeft
  End With
.Selection.TypeText(" PORTEUR :  " & porteur & " " & nom_porteur & vbTab & vbTab & vbTab & " TOTAUX:")
.Selection.TypeParagraph
.Selection.TypeText(" TOURNEE :  " & tournee & " " & nom_tournee )
.Selection.TypeParagraph
.Selection.TypeText(" ILOT :  " & ilot & " "  & nom_ilot)
.Selection.TypeParagraph
 
  With .Selection.Font
  .Size =16
  .Bold = True
 End With
 With .Selection.ParagraphFormat
  .Alignment = 1
  End With
  .Selection.TypeText("PARTENAIRES")
 
 
.ActiveDocument.SaveAs(Doc)
 
 
.Documents(1).Close
End With
 
'Quit Word
App.Quit
Set App =Nothing
End Sub
je voudrais trouver le code qui permet d'encadrer ces deux lignes

de plus baisser l'interlignage de ceci
Code :
1
2
3
4
5
 
.Selection.TypeText("FEUILLE DE ROUTE DU " & date_tirage)
.Selection.TypeParagraph
.Selection.TypeText("LE MONDE")
.Selection.TypeParagraph
* Merci *
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 00h26   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

L'enregistreur de macro donne un résultat satisfaisant cette fois-ci.

Pour les interlignes :
Code :
Selection.ParagraphFormat.LineSpacing = LinesToPoints(1)
Pour la bordure :
Code :
1
2
3
4
5
6
7
8
With Selection.ParagraphFormat
        With .Borders(wdBorderLeft)
            .LineStyle = wdLineStyleSingle
            .LineWidth = wdLineWidth050pt
            .Color = wdColorAutomatic
        End With
End With
Idem avec  With .Borders(wdBorderRight),  With .Borders(wdBorderBottom),  With .Borders(wdBorderTop)
Il est toutefois préférable de travailler sur des objets range plutôt que selection. Même principe.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 09h08   #3
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
je ne comprends pas ça fonctionne pas peux etre faut il que j'active quelque chose dans mes references
ou ma syntaxe n'est pas la bonne
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 09h13   #4
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
avec les objets range comment ça marche?
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 09h35   #5
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Essaye plutôt ceci
Code :
.LineSpacing = LinesToPoints(1)
à la place de ta ligne surlignée en jaune

Il lui dit que l'espacement entre les lignes (Interlignes) est de 1.

Pour les range
Code :
1
2
3
4
5
dim r as range (definition)
set r=selection.range
With r.paragraphFormat
.LineSpacing=LinesToPoints(1)
End With
Tu peux regarder dans la FAQ, il y a une partie qui explique pourquoi utiliser les range plutôt que l'objet selection
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 10h20   #6
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
je ne comprend pas qu'elle tytpe de code je doit prendre

en faisant ça ça à l'air de fonctionner mais j'ai un resultat pas terrible et plus cela met pour tout le texte
Code :
1
2
3
4
5
 
With .Selection.ParagraphFormat
.Alignement = 1
.LineSpacing = 5
end With
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 10h54   #7
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Le code a appliquer simplement est celui-là.
Tu dois l'appliquer juste avant ton paragraphe.

Code :
.LineSpacing = LinesToPoints(ta_valeur)
Attention, cela est appliqué jusqu'à lui donner une nouvelle valeur.
Pour l'appliquer uniquement à ce paragraphe, tu dois placer avant le paragraphe suivant.
.LineSpacing = LinesToPoints(ta_valeur_paragraphesuivant)
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 10h59   #8
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
En mettant
Tu lui indiques de mettre 5pt entre les paragraphes.
La fonction LineToPoints convertis en ligne le nombre de points correspondant.
Ainsi LineToPoints(2)=24pt

Logiquement, il faut aussi définir la valeur de la propriété LineSpacingRule
Code :
.LineSpacingRule=wdLineSpaceExactly
Voici ce que l'aide donne sur cette propriété :

Citation:
wdLineSpaceAtLeast : l'interligne peut être supérieur ou égal mais jamais inférieur à la valeur affectée à la propriété LineSpacing.
wdLineSpaceExactly : l'interligne ne change jamais et conserve toujours la valeur affectée à la propriété LineSpacing, même si une police de taille supérieure est utilisée à l'intérieur du paragraphe.
wdLineSpaceMultiple : vous devez spécifier une valeur pour la propriété LineSpacing, exprimée en points
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 14h00   #9
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
Code :
.LineSpacing = LinesToPoints(ta_valeur)
en fait derreire j'attaque word en vbscript et LinesTopoints n'est pas reconnu

y a t'il un site qui documente toute les fonctions word avec vbscript?

comment dois je faire si vbscript ne reconnait pas linestopoint?
as tu un exmple de range en vbscript?
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 14h02   #10
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
de la meme façon worddoc.sections(1) pour changer le haut de page ne fonctionne pas en vbscript
est ce normale?
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 14h10   #11
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
Code :
1
2
3
4
5
6
7
8
9
 
With Selection.ParagraphFormat
        With .Borders(wdBorderLeft)
            .LineStyle = wdLineStyleSingle
            .LineWidth = wdLineWidth050pt
            .Color = wdColorAutomatic
        End With
End With
Idem avec  With .Borders(wdBorderRight),  With .Borders(wdBorderBottom),  With .Borders(wdBorderTop
don je suppose que ce code je n'arriverait pas à le faire fonctionner en vbscript
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 20h03   #12
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 171
Points : 12
Points : 12
je commence à avancer ouf....
mais maintenant j'ai à nouveau un probleme comment inserer deux tableaux différents dans une meme page (un paragraphe différent par exemple) ci joint mon code apres
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,2,1
Set objTable = objDoc.Tables(1)
objTable.Range.Font.Size = 18
objTable.Range.Font.Bold = True
objTable.ApplyStyleHeadingRows = True
objTable.ApplyStyleLastRow = False
objTable.ApplyStyleFirstColumn = True
objTable.ApplyStyleLastColumn = False
objTable.ApplyStyleRowBands = True
objTable.ApplyStyleColumnBands = False
objTable.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
objTable.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
objTable.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
objTable.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
    'Selection.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleSingle
    'Selection.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleSingle
 
objTable.Cell(1, 1).Range.Text = "Feuille de route du " + date_tirage
objTable.Cell(2, 1).Range.Text = "LE JOURNAL"
 
Set objRange=Nothing
Set objTable =Nothing
battit64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h36.


 
 
 
 
Partenaires

Hébergement Web