Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro sous word pour transformer chaque lettre d'un texte par une image donnée

4 réponses
Avatar
c_guillon
bonjour

question simple: ma femme est instit et a cr=E9=E9 un ab=E9c=E9daire pour s=
es
gamins, sous la forme de 26 images .jpg pour chaque lettre
elle voudrait imprimer une liste des pr=E9noms de ses =E9l=E8ves avec ces
lettres
pour l'instant, le seul moyen qu'elle connaisse (et moi aussi) c'est
d'ins=E9rer les lettres une par une pour recomposer les pr=E9noms, ce qui
est fastidieux
quelqu'un saurait il comment faire une macro pour transformer le texte
d'un document en rempla=E7ant chaque lettre par l'image correspondante ?
j'ai essay=E9 mais je ne suis arriv=E9 =E0 changer que la premi=E8re lettre
d'un texte et je ne sais pas changer de ligne, il faut dire que mes
connaissances en vba sont limit=E9es

Merci d'avance
Chris

4 réponses

Avatar
Driss HANIB
Salut c_guillon

Moi je ferai comme cela (je pense que ce la est dispnible en VbA)
- nommer chaque image par sa lettre : exemple "A.jpg"
- tu peux écrire un truc de la forme
for i = 1 to len(mot$)
'je ne connais plus la commande pour insérer une image mais ce serai de
la forme
insererImage mid$(mot$,i) & ".jpg"
next

à toi de définir proporement le répertoire ou sont stockées tes images


Driss

"c_guillon" a écrit dans le message de news:

bonjour

question simple: ma femme est instit et a créé un abécédaire pour ses
gamins, sous la forme de 26 images .jpg pour chaque lettre
elle voudrait imprimer une liste des prénoms de ses élèves avec ces
lettres
pour l'instant, le seul moyen qu'elle connaisse (et moi aussi) c'est
d'insérer les lettres une par une pour recomposer les prénoms, ce qui
est fastidieux
quelqu'un saurait il comment faire une macro pour transformer le texte
d'un document en remplaçant chaque lettre par l'image correspondante ?
j'ai essayé mais je ne suis arrivé à changer que la première lettre
d'un texte et je ne sais pas changer de ligne, il faut dire que mes
connaissances en vba sont limitées

Merci d'avance
Chris
Avatar
bahn po
c_guillon a couché sur son écran :
bonjour

question simple: ma femme est instit et a créé un abécédaire pour ses
gamins, sous la forme de 26 images .jpg pour chaque lettre
elle voudrait imprimer une liste des prénoms de ses élèves avec ces
lettres
pour l'instant, le seul moyen qu'elle connaisse (et moi aussi) c'est
d'insérer les lettres une par une pour recomposer les prénoms, ce qui
est fastidieux
quelqu'un saurait il comment faire une macro pour transformer le texte
d'un document en remplaçant chaque lettre par l'image correspondante ?
j'ai essayé mais je ne suis arrivé à changer que la première lettre
d'un texte et je ne sais pas changer de ligne, il faut dire que mes
connaissances en vba sont limitées

Merci d'avance
Chris



En VBA aucune idée, mais en vb6



Private Sub Command1_Click()

Picture1.Picture = Picture1.Image
SavePicture Picture1.Picture, Text2
Clipboard.SetData Picture1.Picture
End Sub

Private Sub Command2_Click()
On Error GoTo recup:
Picture1.Width = 0

Picture1.Cls
For i = 1 To Len(Text1)
Picture2.Picture = LoadPicture(App.Path & "" & Mid(Text1, i, 1) &
".jpg")

Picture1.Width = Picture1.Width + Picture2.Width
If Picture1.Height < Picture2.Height Then Picture1.Height =
Picture2.Height
Picture1.PaintPicture Picture2.Picture, y, 0, , , , , , , vbSrcCopy
Picture1.Picture = Picture1.Image
y = y + Picture2.Width
Next i
Exit Sub
recup:
Label4.Caption = "Etat: " & Err.Description
End Sub

Private Sub Form_Load()
Text1_Change
Label3.Caption = Label3.Caption & ": " & App.Path & ""
Label3.Caption = Replace(Label3.Caption, "", "")
End Sub

Private Sub Text1_Change()
chaine = "c:@"
Text2 = Replace(chaine, "@", Text1)
Text2 = Text2 & ".bmp"
End Sub


J'ai crée un exécutable, fonctionnel immédiatement.

http://cjoint.com/?lpn1FiCCt4

Cela créera une image en fonction d'une texte qu'il est possible
d'insérer après la sauvegarde via le menu idoine de Word ou de
n'importe quelle autre programme disposant de l'option.
Avatar
c_guillon
On 15 nov, 14:02, bahn po wrote:
En VBA aucune idée, mais en vb6

Private Sub Command1_Click()

Picture1.Picture = Picture1.Image
SavePicture Picture1.Picture, Text2
Clipboard.SetData Picture1.Picture
End Sub

Private Sub Command2_Click()
On Error GoTo recup:
Picture1.Width = 0

Picture1.Cls
For i = 1 To Len(Text1)
Picture2.Picture = LoadPicture(App.Path & "" & Mid(Text1, i, 1) &
".jpg")

Picture1.Width = Picture1.Width + Picture2.Width
If Picture1.Height < Picture2.Height Then Picture1.Height =
Picture2.Height
Picture1.PaintPicture Picture2.Picture, y, 0, , , , , , , vbSrcCopy
Picture1.Picture = Picture1.Image
y = y + Picture2.Width
Next i
Exit Sub
recup:
Label4.Caption = "Etat: " & Err.Description
End Sub

Private Sub Form_Load()
Text1_Change
Label3.Caption = Label3.Caption & ": " & App.Path & ""
Label3.Caption = Replace(Label3.Caption, "", "")
End Sub

Private Sub Text1_Change()
chaine = "c:@"
Text2 = Replace(chaine, "@", Text1)
Text2 = Text2 & ".bmp"
End Sub

J'ai crée un exécutable, fonctionnel immédiatement.

http://cjoint.com/?lpn1FiCCt4

Cela créera une image en fonction d'une texte qu'il est possible
d'insérer après la sauvegarde via le menu idoine de Word ou de
n'importe quelle autre programme disposant de l'option.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



hey merci beaucoup, ça marche du feu de dieu, c'est exactement ce que
je voulais.
En plus, si j'ai bien compris, si je veux rajouter de nouveaux
fichiers (admettons un chiffre) il me suffit de le sauvegarder du même
nom que le caractère à taper (ex 1.jpg) pour que ça marche aussi ?
bonne journée
Avatar
bahn po
c_guillon a couché sur son écran :
On 15 nov, 14:02, bahn po wrote:
En VBA aucune idée, mais en vb6

Private Sub Command1_Click()

Picture1.Picture = Picture1.Image
SavePicture Picture1.Picture, Text2
Clipboard.SetData Picture1.Picture
End Sub

Private Sub Command2_Click()
On Error GoTo recup:
Picture1.Width = 0

Picture1.Cls
For i = 1 To Len(Text1)
Picture2.Picture = LoadPicture(App.Path & "" & Mid(Text1, i, 1) &
".jpg")

Picture1.Width = Picture1.Width + Picture2.Width
If Picture1.Height < Picture2.Height Then Picture1.Height >> Picture2.Height
Picture1.PaintPicture Picture2.Picture, y, 0, , , , , , , vbSrcCopy
Picture1.Picture = Picture1.Image
y = y + Picture2.Width
Next i
Exit Sub
recup:
Label4.Caption = "Etat: " & Err.Description
End Sub

Private Sub Form_Load()
Text1_Change
Label3.Caption = Label3.Caption & ": " & App.Path & ""
Label3.Caption = Replace(Label3.Caption, "", "")
End Sub

Private Sub Text1_Change()
chaine = "c:@"
Text2 = Replace(chaine, "@", Text1)
Text2 = Text2 & ".bmp"
End Sub

J'ai crée un exécutable, fonctionnel immédiatement.

http://cjoint.com/?lpn1FiCCt4

Cela créera une image en fonction d'une texte qu'il est possible
d'insérer après la sauvegarde via le menu idoine de Word ou de
n'importe quelle autre programme disposant de l'option.- Masquer le texte
des messages précédents -

- Afficher le texte des messages précédents -



hey merci beaucoup, ça marche du feu de dieu, c'est exactement ce que
je voulais.
En plus, si j'ai bien compris, si je veux rajouter de nouveaux
fichiers (admettons un chiffre) il me suffit de le sauvegarder du même
nom que le caractère à taper (ex 1.jpg) pour que ça marche aussi ?
bonne journée



Oui absolument, chaque caractère doit avoir sa correspondance en nom de
fichier, du moment que Windows accepte le nom de fichier car certains
caractère sont interdits, comme " ou ?, mais à la limite tu peux
tricher et remplacer ? par ÿ.

Si cela te convient c'est parfait, bon week end.