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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  piloter word depuis excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

piloter word depuis excel

n°1593166
zoreye
Posté le 30-07-2007 à 09:59:09  profilanswer
 

Bonjour,
 
j'ai un problème à vous soumettre: je réalise une application sous excel qui édite un rapport word.
Sous excel, je me retrouve avec une colonne qui contient à chaque ligne un paragraphe de mon texte word. Une ligne peut être vide si l'utilisateur n'a pas rentré les données correspondantes à cette ligne sous excel.
C'est l'envoi de ces lignes (environ 3000) de texte vers word qui me pose problème. Pour ça j'ai trouvé deux solutions:
 
PREMIERE SOLUTION:
J'insère des signets que je nomme aI (avec I le numéro de la ligne sous excel) dans word et je relie chaque ligne de texte sous excel à un signet. Ca donne un truc du style:
Dim h As Integer
 
For h = 323 To 3004
 
Dim Texte As Variant
Texte = Cells(h, 3).Value
 
With appWord
 
If Not Texte = "" Then
 
 
.Selection.Goto What:=wdGoToBookmark, Name:="a" & h
.Selection.TypeText Text:=Texte
End If
End With
 
Ca marche très bien mais il y a de gros inconvénients:
1/je n'ai pas le temps d'insérer 3000 signets sous word
2/ca prend un peu de temps pour générer le rapport
Il y a par contre un avantage de taille:
1/Si le texte est vide je peux lui dire de passer au texte suivant
 
DEUXIEME SOLUTION
 
Au lieu d'insérer des signets j'utilise les caractères génériques. Par exemple, j'insère 3000 fois un symbole sous word: à chaque fois qu'il rencontre une ligne vide il efface ou saute ce symbole et passe au suivant, à chaque fois qu'il trouve une ligne remplie il remplace le symbole par la ligne de texte.
Ca donne quelque chose du style:
 
For h = 323 To 3004
 
Dim Texte As Variant
Texte = Cells(h, 3).Value
 
With appWord
.Selection.Find.Execute
    .Selection.Find.ClearFormatting
    .Selection.Find.Replacement.ClearFormatting
    With appWord.Selection.Find
        .Text = "^symbole"
        .Replacement.Text = "^Texte"  
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True  
    End With
    .Selection.Find.Execute Replace:=wdReplaceAll
     
End With
Next
 
 
MON PROBLEME:
1/ je ne sais pas comment lui dire que si la ligne est vide il doit passer au symbole suivant
2/ si on ne peut pas lui dire ca, word mettra trop de temps pour éditer le rapport
 
 
 
 
Voila pour les courageux qui sont arrivés au bout du sujet, j'espere ne pas trop vous avoir saouler et avoir été clair. Bien sur je suis ouvert à toute solution autre que les deux précédentes.
Merci d'avance pour votre aide :hello:  
 
zoreye

mood
Publicité
Posté le 30-07-2007 à 09:59:09  profilanswer
 

n°1593205
jpcheck
Pioupiou
Posté le 30-07-2007 à 11:13:09  profilanswer
 

bonjour,
quelques infos pour accélérer ton traitement :
screenupdate doit être mis à false, ca évitera de voir tout ce qui se passe.
 
je ne vois pas où tu as placé ton next h...

n°1593241
zoreye
Posté le 30-07-2007 à 12:31:27  profilanswer
 

salut
tu parles de la premiere solution ou de la deuxieme pour screenupdate?Ou des deux?  
 
 
Pour le next:
 
pour la premiere, j'ai oublie de le mettre dans mon mess mais ca marche pas de pb
pour le deuxieme, je l'ai mis tout à la fin mais pour l'instant la deuxieme solution ne me sert à rien tant que je ne saurai pas comment lui dire de sauter des symboles
 
merci de l'info en tout cas


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

  piloter word depuis excel

 

Sujets relatifs
Comment vérifier si une feuille Excel existe ?Excel et PHP
Information VBA excel<VBA EXCEL> Macro qui remplace des liens par leur valeur...
[VBA] Word, En tête différent pour chaque pageExcel macro pour appliquer fonction sur une colonne
[Résolu par voie détournée] Piloter des contraintes d'intégrité[Excel] Mélange de somme.si et nb.si
[VBA] piloter word depuis une macro excel -- Chercher remplacer 
Plus de sujets relatifs à : piloter word depuis excel


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