> Tous les forums > Forum Bureautique
 remplacer mot par un autre en vbaSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
furtif111
  Posté le 25/02/2019 @ 12:16 
Aller en bas de la page 
Petit astucien

bonjour a vous!

Je voudrais sous exel 2003 mettre un code vba pour que sur ma sheet ou ce trouve pas mal de donnees remplace un mot par un autre lorsque ce dernier est entre

exemple; transforme automatiquement "albert" par "mon 1er adjoint" , meme si on ecrit albert en majuscule "ALBERT" ou "Albert "

merci a vous



Modifié par furtif111 le 25/02/2019 12:18
Publicité
Debrief
 Posté le 26/02/2019 à 10:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Un fichier texte avec un code de remplacement -> https://cjoint.com/c/IBAjnVxzEen

Cordialement,
D.

DjiDji59430
 Posté le 26/02/2019 à 11:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour a vous deux,

essaye

dans accueil==>rechercher==>remplacer

rechercher :albert

remplacer par : mon 1er adjoint


Crdlmt

furtif111
 Posté le 26/02/2019 à 12:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour et merci pour vos contribution

Le fichier texte avec code est installe mais ca ne fonctionne pas ! je tape "AaA "il ne me remplace pas automatiquement par "B")

DjiDji59430 pour la fonction acceuil →recherche→ remplacer je comprend mais je désirerais que cela ce fasse automatiquement apres la frappe

merci a vous

Debrief
 Posté le 26/02/2019 à 21:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir,

Comme tu as écrit:

remplace un mot par un autre lorsque ce dernier est entre

Je n'ai pas compris et pensé que tu avais oublié de définir "entre quoi et quoi". En français il y a des accents qui ne sont pas totalement inutiles, entré ou plus clairement saisi, j'aurais compris.

Sur la feuille concernée il faut que tu définisses la fonction:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call Remplace(Target, "albert", "mon 1er adjoint")
Application.EnableEvents = True
End Sub

et que tu ajoutes un module dans le projet (au cas où il aurait plusieurs feuilles concernées) et y place la fonction:

Sub Remplace(Target As Range, ChaineInitiale As String, ChaineFinale As String)
Dim Cel As Range
Dim CelValue As String
Dim k As Long
Dim b As Boolean

'Protection chaine initiale nulle
If Len(ChaineInitiale) = 0 Then
MsgBox "Erreur: la chaine initiale est de longueur nulle"
Exit Sub
End If

'Protection chaine finale contient la chaine initiale en low case
If InStr(LCase(ChaineFinale), LCase(ChaineInitiale)) > 0 Then
MsgBox "Erreur: la chaine initiale """ & ChaineInitiale & """ est présente dans la chaine finale """ & ChaineFinale & """"
Exit Sub
End If

'Parcours des cellules du Range Target
For Each Cel In Target
'Cel doit être de type String
If VarType(Cel) = vbString Then
CelValue = Cel.Value
k = InStr(LCase(CelValue), LCase(ChaineInitiale))
b = k > 0

'Remplacement
Do While k > 0
CelValue = Left(CelValue, k - 1) & ChaineFinale & Mid(CelValue, k + Len(ChaineInitiale))
k = InStr(LCase(CelValue), LCase(ChaineInitiale))
Loop

'Affectation de la nouvelle valeur si il y a eu remplacement
If b Then Cel.Value = CelValue
End If
Next Cel
End Sub

Peut être utilisé pour remplacer dans toute la feuille active.

Sub a()
Call Remplace(ActiveSheet.UsedRange, "AaA", "B")
End Sub

Avant Après

Cordialement,
D.

Edit: peut-être plus facile avec l'indentation dans un fichier texte -> https://cjoint.com/c/IBAvfuwinWn



Modifié par Debrief le 26/02/2019 22:05
furtif111
 Posté le 27/02/2019 à 20:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Magnifique!!! merci beaucoup!!!!

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
vba remplacer les cellules vides mais garder les cellules non vides
comment remplacer automatiquement le contenue d'une cellule sur excel
Remplacer le bloc notes de Win 7
Remplacer dans cellules fusionnées
Plusieurs remplacer en même temps
remplacer une valeur
Remplacer un module par la liste
Remplacer tableau et note (Word 2013)
Excel : Un mot est remplacer par un autre automatiquement
quel log peut remplacer microsoft word
Plus de sujets relatifs à remplacer mot par un autre en vba
 > Tous les forums > Forum Bureautique