salut,
c'est la solution 2 soumise par cedvinc.
en effet
replace remplace toutes les occurences d'une chaîne par une autre.
il te faut donc soit supprimer toutes ces occurences en tableau (instruction
split) puis reconcaténer avec ta suite aléatoire en boucle de 1 à ubound(Tableau), soit une boucle en utilisant
instr left right mid.
dans les 2 cas il faut en effet initialiser ton aléa avec radomize

Option Explicit
'
Private Sub Form_Load()
Randomize
Dim sMess As String
Dim aAleat() As Variant
aAleat = Array("vie", "fraise", "pomme", "poire", "herbe", "jardin")
Dim sChaine1 As String
sChaine1 = "vie, manger, manger, manger, herbe, jardin"
sMess = sChaine1 & vbCrLf
If InStr(1, sChaine1, "manger") > 0 Then
Dim i As Integer
Dim aChaine() As String
Dim sChaine2 As String
aChaine = Split(sChaine1, "manger")
sChaine2 = aChaine(0)
For i = 1 To UBound(aChaine)
sChaine2 = sChaine2 & aAleat(Int(Rnd * 6)) & aChaine(i)
Next i
MsgBox sMess & sChaine2
Else
MsgBox "'manger' n'est pas contenu dans la chaîne"
End If
Unload Me
End Sub

Coloration
syntaxique automatique [AFCK]

PCPT [AFCK]
Prenez un instant pour répondre à ce sondage svp 