Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 27/11/2006, 13h33   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
Par défaut Automatiser le champ INCLUDETEXT

Bonjour,

Comment en VBA rechercher une partie de mot (ex: CM) dans un doc word et ensuite, définir des champs qui vont reprendre le mot entier.

Exemple :

Dans le doc word,

on a les mots suivants :

CM840002001
CM214002001

remplacer ces mots par {INCLUDETEXT "C:\CM840002001.doc"}
et {INCLUDETEXT "C:\CM214002001.doc"}

Je vous remercie

Christel
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 15h11   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu dois mettre deux \ dans le chemin sinon ça marche pas C'est du Word, pas du VBA
Code :
{ INCLURETEXTE "D:\\Doc\\Il me reste à les insérer dans la phrase.doc" Nom \* FUSIONFORMAT }
A+
Edit
En VBA, chais pas
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 17h21   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Testé et tout
Code :
1
2
3
4
5
6
7
8
9
10
11
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "CM840002001"
        .Replacement.Text = ""
    End With
    Selection.Find.Execute
    With Selection
        .Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "INCLURETEXTE ""D:\\Doc\\Il me reste à les insérer dans la phrase.doc"" Nom \* FUSIONFORMAT" _
        , PreserveFormatting:=True
    End With
Où es-tu ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 18h16   #4
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
Merci pour ta réponse.

Mais cela ne fonctionne pas :-( Je teste sur WORD 2000.

Voici le message d'erreur "Erreur ! Signet non défini." et le texte CM840002001 n'est pas remplacé.

Merci pour ton aide.

Christel
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 18h26   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Dans le doc dans lequel tu prends la donnée, tu as bien défini le signet ?
Je pense que oui mais comme chez moi ça fonctionne...
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 11h04   #6
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
Désolée mais cela ne fonctionne pas.

Dans mon fichier doc, j'ai tapée CM840002001. Avant ce mot, j'ai inséré un signet Nom.

Lorsque j'exécute la macro, j'obtiens le champ suivant {INCLUDETEXT "C:\\Doc\\Il me reste à les insérer dans la phrase.doc" Nom \* MERGEFORMAT}.

Et avec F9, le message d'erreur suivant : Erreur ! Signet non défini.

Je ne comprends rien :-(

Merci pour ton aide

Christel
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 12h23   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Citation:
Envoyé par Tu
Avant ce mot, j'ai inséré un signet Nom.
Pour que m'a proposition fonctionne, tu dois sélectionner ton mot pour affecter le signet.
Sinon, pour récupérer le mot situé à droite du signet, tu dois faire un extend d'un mot. Or, dans ta formule, tu ne peux pas mettre une instruction VBA.
Voilà tout
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 13h16   #8
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
Désolée mais je viens de sélectionner le mot et lui affecter le signet Nom mais la macro ne fonctionne pas. Tjs le même pb, même message :-(

Peux-tu me préciser ce que c'est un extend ? (Je ne suis pas programmeur en VBA)

Je te remercie de ton aide
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 14h15   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Code :
    Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Permet de sélectionner un mot (wdWord, Count = 1) situé à droite de la sélection. Dans ton cas, tu ne peux pas l'utiliser
Mets ton code rien que pour voir
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 15h29   #10
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
Donc voici le code que j'utilise. J'ai supprimé \* FUSIONFORMAT car il est ajouté dès que je lance la macro.

Merci


Code :
1
2
3
4
5
6
7
8
9
10
11
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "CM840002001"
        .Replacement.Text = ""
    End With
    Selection.Find.Execute
    With Selection
        .Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "INCLUDETEXT ""C:\\Doc\\Il me reste à les insérer dans la phrase.doc"" Nom" _
        , PreserveFormatting:=True
    End With
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 16h38   #11
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu as mis le nom de mon fichier
Citation:
..."C:\\Doc\\Il me reste à les insérer dans la phrase.doc"
A la place de ça, mets le nom complet de TON fichier (avec le chemin - C:\\.... ) pas du mien
J'espère que ça va fonctionner maintenant
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 17h38   #12
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
J'ai créé un fichier sous C:\doc\ qui porte le nom de ton fichier.

Ce n'est malheureusement pas le pb :-(
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 21h35   #13
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Et tu mets bien le nom du signet sur le mot en excluant l'espace à droite ?
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 01h29   #14
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Un dernier effort :
Je te joins deux fichier Word. La procédure qui te permet d'insérer la formule au bon endroit est dans un module standard du fichier "FichierFormule.doc"
Le champ nommé est dans le fichierdonnées.doc. A moins que tu ne modifies l'adresse dans la macro, les deux fichiers doivent être placés dans D:\Doc
Testé et tout
Tu dis

Pièce jointe 7171
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 10h10   #15
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 0
Points : 0
Ca marche .... :-)

Merci pour ta patience
christel91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2006, 14h08   #16
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 675
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 675
Points : 7 654
Points : 7 654
Un petit , alors?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech 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 15h37.


 
 
 
 
Partenaires

Hébergement Web