Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1408 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  selection entre deux textes (dans word a partir d'excel)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

selection entre deux textes (dans word a partir d'excel)

n°1839363
marie49200​4
Posté le 17-01-2009 à 12:35:23  profilanswer
 

Bonjour,
Dans une macro excel, j'ouvre un fichier word pour faire une fusion. Après, je dois réaliier une mise en forme pour une chaine de caractères qui se trouve entre deux textes(DebutTableau et FinTableau) et bien sur supprimer ces deux textes.
 
Suite à mes recherches sur internet, voici ce que j'ai fait :
 
 
Ouverture du word et publipostage, il s'agit de la sub publipostage
Sélection du texte et mise en forme , il s'agit de la sub SelectionEntreDeuxTextes. Dans l'exemple ci'dessous, je n'ai aps encore fait la mise en forme. Il s'agit de convertir du texte en tableau, de faire des bordures et de donner la largeur des cellules...
 
Sub Publipostage()
'
'Penser à activer la référence : Microsoft Word 11.0 Object Library
'Pour excel 2003, au niveau du débuggage (code), choisir menu Outils et ensuite Préférences
'Pour excel 2000, revoir le programmation en passant par les objets (late binding)
 
'
 
Dim Wkb As Workbook
Dim Monword As Word.Application
Dim Mondoc As Word.Document
Dim Conn As String
 
    Application.ScreenUpdating = False
    ActiveSheet.Range("A2" ).CurrentRegion.Copy
   
    Set Monword = New Word.Application
    Monword.DisplayAlerts = wdAlertsNone
 
        Set Mondoc = Monword.Documents.Open(Filename:=ThisWorkbook.Path & "\ModeleFiche.doc", ConfirmConversions:=True, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="" )
         
        Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & ThisWorkbook.Path & "\base fiche PE.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet "
     
     Mondoc.MailMerge.OpenDataSource Name:= _
        ThisWorkbook.Path & "\base fiche PE.xls" _
        , ConfirmConversions:=True, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:=Conn, SQLStatement:="SELECT * FROM `Feuil1$`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
   
        With Mondoc.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
 
       
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
     
    Mondoc.ActiveWindow.ActivePane.View.ShowAll = False
    Stop
 
    Monword.Visible = True
    Call SelectionEntreDeuxTextes(Monword)
    Mondoc.Close False
     
    Monword.DisplayAlerts = wdAlertsAll
 
    Set Mondoc = Nothing
    Application.ScreenUpdating = True
End Sub
 
 
Private Sub SelectionEntreDeuxTextes(Monword)
Monword.Selection.HomeKey unit:=wdStory
Monword.ScreenUpdating = False
With Monword.Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .MatchWildcards = True
    .Text = "(\debutTableau*\FinTableau)"
    .Replacement.Text = "\1"
    .Forward = True
    .Execute Replace:=wdReplaceAll
End With
Stop
Monword.ScreenUpdating = True
End Sub
 
 
Mon problème est que la sélection ne se fait pas...Je pense surtout du fait que je ne comprenne pas ".Text = "(\DebutTableau*\FinTableau)""  
 
Pouvez-vous m'aider?
 
Marie

mood
Publicité
Posté le 17-01-2009 à 12:35:23  profilanswer
 

n°1839440
marie49200​4
Posté le 17-01-2009 à 15:56:04  profilanswer
 

J'ai trouvé une partie de mon erreur : en fait, je n'avais pas mis les parentheses... j'avais du les enlever pour tester.
 
Maintenant je souhaiterai faire une boucle jusqu'à la fin du document?
Comment fait-on?
 
J'ai testé avec  
Do While Not Monword.Selection.EndKey
 
.....
Loop
 
Merci de m'apporter une petite aide
Marie

n°1839459
marie49200​4
Posté le 17-01-2009 à 16:46:14  profilanswer
 

J'ai trouvé pour la boucle...
il faut mettre :
Do While Monword.Selection.Find.Execute("(\DebutTableau*\FinTableau)" ) = True
 
....
 
Monword.Selection.MoveRight Unit:=wdCharacter, Count:=1
Loop
 
 
Mon probleme suivant est de modifier la largeur des cellules de mon tableau.
 
Voici ce que j'ai fait :
Monword.Selection.Tables(1).Columns(1).PreferredWidthType = wdPreferredWidthPoints
    Monword.Selection.Tables(1).Columns(1).PreferredWidth = CentimetersToPoints(3.25)
 
Mais ca ne marche pas, j'ai une erreur...
 
Y a personne pour aider?
 
A bientot
Marie

n°1839461
LePhasme
Les Belges domineront le monde
Posté le 17-01-2009 à 16:52:55  profilanswer
 

Essaie avec la propriété columnwidth plutot que preferredwidth


---------------
Instagram - Mon PVT en Australie.
n°1839477
marie49200​4
Posté le 17-01-2009 à 17:40:56  profilanswer
 

Bonjour,
 
Merci pour la proposition...
j'ai un message d'erreur d'execution 438  
"Propriété ou methode non geree par cet objet"
 
J'avais mis :
Monword.Selection.Tables(1).Columns(1).ColumnWidth = CentimetersToPoints(3.25)
 
Il ne me reste plus que ca et j'ai fini....
Avez-vous une autre idée?
 
Merci
Marie

n°1839480
LePhasme
Les Belges domineront le monde
Posté le 17-01-2009 à 18:10:07  profilanswer
 

Et avec la propriété width à la place de columnwidth simplement ?


---------------
Instagram - Mon PVT en Australie.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  selection entre deux textes (dans word a partir d'excel)

 

Sujets relatifs
Selection d'une plage variable de celluleselect d'une ligne entière à partir d'une condition
[WORD] insérer un saut de page dans document filsrestitution d'info à partir d'un fichier txt
aide excel annuaireLister les différents champs d'un parametre d'une fonction. Possible ?
Problème de sélection dans une ComboBoxImportation des données depuis SQL vers EXCEL
AS3 : charger plusieurs images à partir d'une bouclephp et excel
Plus de sujets relatifs à : selection entre deux textes (dans word a partir d'excel)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR