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 01/03/2006, 13h47   #1
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 0
Points : 0
Par défaut [VBA-W] Chaine vers image

Bonjour à toutes et à tous,

Je n'ai jamais utilisé VBA sous Word et je tente de bidouiller un truc me permettant de remplacer le nom de ma société par notre logo.

Je cherche donc à créer une macro sous Word 2000. Elle me permettrait de remplacer le chaine de caractère "SARL SOCIETE" par le logo de mon entreprise "logo.png" dans le document actif.

Une bonne âme pourrait-elle m'aider s'il vous plaît ? merci d'avance.

Pour info, je sais remplacer une chaine par une autre, je sais insérer une image mais balayer un document entier pour changer une chaine par une image, ça, je ne sais pas !

François
barpi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h03   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 768
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 768
Points : 16 831
Points : 16 831
Envoyer un message via Skype™ à bbil
pour te donner une idée essai l'enregistreur de macro ... fait une recheche de la chaine ... puis en gardant la sélection active insére ton logo...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h10   #3
Membre confirmé
 
Avatar de repié
 
Inscription : décembre 2004
Messages : 336
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 336
Points : 243
Points : 243
Voila le code de l'enregistreur pour rechercher et remplacer une chaine

c'est un petit début!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "ma chaine"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
__________________
Pti Pié
repié est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h20   #4
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 0
Points : 0
Par défaut Re: chaine vers image

Je me répète (pourtant je pensais avoir bien fait en le précisant !)

Citation:
... Pour info, je sais remplacer une chaine par une autre, je sais insérer une image mais balayer un document entier pour changer une chaine par une image, ça, je ne sais pas ! ...
Là où je bloque c'est dans la fusion de ces 2 éléments. Merci pour vos réponses.

François
barpi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h28   #5
Membre confirmé
 
Avatar de repié
 
Inscription : décembre 2004
Messages : 336
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 336
Points : 243
Points : 243
Ce bout de code te permet de retouver et de selectionner toutes les occurences "ma chaine"

Ce code parcours donc toue le document...

Etant donné que les occurences sont selectionées, tu n'a plu qu'a les supprimer et mettre ton image à la place

Tu voit qu'on est pas si loin de ce que tu disait ! :

Citation:
mais balayer un document entier pour changer une chaine par une image, ça, je ne sais pas !
__________________
Pti Pié
repié est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h30   #6
Membre Expert
 
Avatar de Megaxel
 
Inscription : mai 2003
Messages : 1 188
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 1 188
Points : 1 308
Points : 1 308
Ok repie, tu lui as donc redonné le code qu'il connaissait déjà, mais maintenant, pour la partie qu'il ne sait pas faire, comment tu ferais, toi?
Megaxel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h42   #7
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 0
Points : 0
Citation:
Envoyé par repié
... tu n'a plus qu'à les supprimer et mettre ton image à la place
...
chose que je ne sais pas faire voilà pourquoi je laisse un message sur le forum.
barpi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h53   #8
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 0
Points : 0
Par défaut Mon code actuellement

Voilà le code que je suis capable de générer pour le moment.
Le seul inconvénient (pour moi le plus important), c'est que je ne balaye pas tout le document. Dès qu'il tombe sur ma chaine, il la remplace par le logo et c'est tout
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub RemplaceTexteParLogo()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "SARL SOCIETE"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.InlineShapes.AddPicture FileName:="c:\logo.png", LinkToFile:=False, SaveWithDocument:=True
End Sub
Ma question : Comment faire pour que ce code puisse agir sur l'ensemble de mon document :

Merci d'avance,

François
barpi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 14h57   #9
Membre confirmé
 
Avatar de repié
 
Inscription : décembre 2004
Messages : 336
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 336
Points : 243
Points : 243
j'était justement en train de chercher comment on fait pour trouver le nombre de fois que la nom apparait puis faire une boucle

Mais je ne connait plus excel que word donc je ne trouve pas une telle fonction.
__________________
Pti Pié
repié est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 18h41   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 768
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 768
Points : 16 831
Points : 16 831
Envoyer un message via Skype™ à bbil
tu pourrai t'inspirer de l'exemple dans l'aide en ligne Word... et remplacer

selection.find.Execute par :

Code :
1
2
3
 Do While Selection.Find.Execute
     Selection.InlineShapes.AddPicture FileName:="c:\lotus\leRugby.bmp", LinkToFile:=False, SaveWithDocument:=True
     DoEvents
bbil 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 12h52.


 
 
 
 
Partenaires

Hébergement Web