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 20/06/2007, 10h30   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Par défaut [VBA-Word] Bidouillage de texte

Bonjour,
J'aimerais une petite aide pour modifier du texte qui apparait comme ceci:

"le fichier se situe dans NomduDossier"

Je souhaiterais que la macro efface la fin de la phrase jusqu'à "dans", NomduDossier étant plus ou moins long, afin de pouvoir concaténer le nom du dossier par la suite.

Pouvez-vous m'aider?
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 16h15   #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
En VBA on ne bidouille pas, Môssieur !

Bref, tu veux bricoler ta chaîne de façon à ajouter le nom du dossier quel qu'il soit...
Si c'est ça, teste ça
Code :
msgbox "le fichier se situe dans " & NomduDossier
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 17h24   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Ok je voulais pas te blesser, mais à mon niveau c'est encore du bidouillage.

Ce que tu m'indiques, ce n'est pas ce que je veux faire. Le but est bien de concatener par la suite, mais le texte apparrait dans une variable. C'est à partir de cette variable que je souhaite retirer la fin de la phrase.
Je pourrais utiliser du code que tu m'as déjà aidé à développer mais cela implique de connaitre le nombre exacte de caractères à retirer, ce que je ne peux avoir comme information.
Il me faut donc développer un code qui me permette d'effacer des caractères jusqu'à...
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 17h43   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Bon ça reprend un peu un sujet sur lequel j'ai déjà posé une question, mais peux-tu m'indiquer comment dans mon code je peux définir mon texte comme une sélection pour laquelle je peux utiliser le code:
Code :
Selection.MoveLeft Unit:=wdCharacter, Count:=16, Extend:=wdExtend
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 17h44   #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
Citation:
Envoyé par Tu
Ok je voulais pas te blesser, mais à mon niveau c'est encore du bidouillage.
C'est là que tu me blesse Je plaisantais
Deux choses l'une :
Ou tu connais la longueur de ce que tu veux conserver ("le fichier se situe dans ")
Ou tu connais le nom NomduDossier
Il faut bien que tu aies l'un des deux sinon ça va être compliqué
Dans le premier cas tu fais
Code :
LaChaîneArécupérer = "le fichier se situe dans "
et ça m'étonnerait que ce soit ça
Dans le second, tu fais
Code :
LaChaîne = Left(LaChaîneDuDépart, len(LaChaîneDuDépart) - Len(NomduDossier))
Et là tu n'as plus le nom du dossier.
Tu dis
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 18h08   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Mais moi aussi je plaisantais, t'en fais pas.

Sinon nickel, c'est presque ça que je voulais, mais j'ai une insulte qui me dis erreur de syntaxe!
Dans les parenthèses des len, tu mets bien des expressions, ou des chiffres?
Car le code suivant:
Code :
chemin = Documents.Application.ActiveDocument.Path
me renvoie C:/Dossier technique/03 Rapports
Donc j'écris
Code :
LaChaîne = Left(chemin, len(chemin) - Len(03 Rapports))
Et là il ne veut pas: erreur de syntaxe
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 18h37   #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
Ben voui, 03 Rapports est une chaîne de caractères, doit avoir des guillemets
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 18h39   #8
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Ah bah voilà c'étaient les guillemets.
Ca marche encore une fois nickel chrome.
Merci beaucoup
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web