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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA]Copier une phrase de word dans excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA]Copier une phrase de word dans excel

n°1390875
shooker
Posté le 19-06-2006 à 17:58:26  profilanswer
 

Bonjour,
 
Je voudrais prendre une partie d'un texte saisi dans un document word pour l'insérer dans un tableau excel. Seul problème, je n'arrive pas à sélectionner le morceau de texte désiré. En sachant que le texte peut changer (donc la fonction mid je ne pense pas qu'elle puisse m'aider), quel serait la solution à mon problème ?
 
Merci !

mood
Publicité
Posté le 19-06-2006 à 17:58:26  profilanswer
 

n°1391131
shooker
Posté le 20-06-2006 à 08:12:05  profilanswer
 

Personne n'a de réponse ? Est-ce possible ? Dites le moi que je ne m'acharne pas pour rien !
 
Allez je compte sur vous ;)

n°1391184
shooker
Posté le 20-06-2006 à 10:05:28  profilanswer
 

Bon je viens de trouver une solution mais qui ne fonctionne pas sur mon PC. En cherchant dans le MSDN de Microsoft j'ai trouvé cette page  : http://msdn.microsoft.com/library/ [...] uments.asp
 
 
Problème : quand je copie le code dans le VBA, il n'accepte pas "rng.Select()"
 
Je ne sais pas si le problème vient de la, mais ma version de word et excel est la 2000. Pourquoi je ne peux pas utiliser cette procédure ?

n°1391543
tegu
Posté le 20-06-2006 à 15:32:35  profilanswer
 

« il n'accepte pas "rng.Select()"  » ? Il lui fait les gros yeux ?
Donne le message d'erreur stp.
Mais je suppose qu'il s'agit d'un problème de version de Word/Excel
L'exemple proposé ressemble à du VB.NET
Sinon la syntaxe suivante marche chez moi sous Word 2003; elle sélectionne dans le texte du 11e caractère (indice 10) au 12e (cf. plus loin !) :
ThisDocument.Range (10, 12).Select
 
La syntaxe Word est ici vraiment pourie puisque l'indice 12 devrait être le 13e caractère et en fait ce paramètre correspond au premier caractère non sélectionné !

n°1391596
shooker
Posté le 20-06-2006 à 16:18:02  profilanswer
 

Merci pour ta réponse.
 
voici mon code :
 
Private Sub bt_open_Click()
    Dim a As String
    Dim rng As Word.Range
    ThisDocument.Range(sentences(2), sentences(2)).Select
    MsgBox rng
     
    Set exl = CreateObject("excel.application" )
    a = InputBox("Saisir le nom du fichier" )
    exl.Visible = True
    exl.Workbooks.Open "c:\" & a & ".xls"
End Sub
 
quand je l'execute, j'ai une erreur 4218 (type d'argument incorrect)
 

n°1391602
tegu
Posté le 20-06-2006 à 16:22:13  profilanswer
 

Sur quelle ligne ton erreur ... ?
edit: j'avais pas vu que dans ton exemple tu ne te sers pas de rng !
Il faut au moins faire : Set rng = ThisDocument.Range(sentences(2), sentences(2))
Du moins si la syntaxe de « ThisDocument.Range(sentences(2), sentences(2)) » existe réeellement...


Message édité par tegu le 20-06-2006 à 16:25:58
n°1391612
tegu
Posté le 20-06-2006 à 16:29:09  profilanswer
 

Bon essaie plutôt ça : ThisDocument.Range(sentences(2).Start, sentences(2).End)

n°1391634
shooker
Posté le 20-06-2006 à 16:53:54  profilanswer
 

sur la ligne thisdocument.ran ....

n°1391637
shooker
Posté le 20-06-2006 à 16:56:54  profilanswer
 

ah ca marche déjà mieux :)
 
merci.

n°1394748
shooker
Posté le 26-06-2006 à 09:01:20  profilanswer
 

Je vais encore vous embêter, mais les ordres ont changé et il faut désormais selectionner un morceau de texte en se basant sur le titre de paragraphe qui se trouve juste au dessus. Cette méthode permettra à l'entreprise de pouvoir réutiliser le code pour prendre d'autres phrases juste en changeant la constante qui contiendra le nom du titre.
 
Je fais appel à vous car je ne m'y connais pas beaucoup en VBA. J'avais pensé utiliser les fonctions mid et len mais je ne sais pas comment les exploiter.
 
Voici un exemple :
 
    Titre 1
texte du titre 1. bla bla bla.
 
    titre 2
texte à selectionner. bla bla bla
 
 
Comment récupérer "texte à selectionner" dans une variable ?

mood
Publicité
Posté le 26-06-2006 à 09:01:20  profilanswer
 

n°1396377
shooker
Posté le 28-06-2006 à 11:09:52  profilanswer
 

Juste pour info, j'ai contourné le problème en insérant des signets dans ma page Word. Je recupère toutes les phrases dans la zone, puis je coupe ces phrases avec la fonction "split" pour récupérer la 1ere phrase. Voici le code utilisé :
 
    test = ActiveDocument.Range(ActiveDocument.Bookmarks("sg1" ).Range.Start, ActiveDocument.Bookmarks("sg2" ).Range.End)
    phrase = Split(test, "." )
 
sg1 et sg2 représentent mes signets.


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

  [VBA]Copier une phrase de word dans excel

 

Sujets relatifs
(vba excel) consolidation de tableau[VBA] Problème avec RecordCount
[VBA]Mise en forme étatvba : impression avec PDFcreator d'un fichier excel
graphique excel en macro[ Info VBA Excel ] Elargir Zone de Nom
Protection et signature d'un fichier excel[Xml/Excel] Ouverture fichier xml avec excel2000
Récupérer contenu d'un fichier word 
Plus de sujets relatifs à : [VBA]Copier une phrase de word dans excel


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