× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > 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 !


Les bons plans du moment PC Astuces

Tous les Bons Plans
39,99 €Amazon Fire TV Stick 4K Ultra HD à 39,99 €
Valable jusqu'au 27 Novembre

Amazon a lancé récemment en France un nouveau modèle de son Fire TV Stick, une clé HDMI à brancher sur votre TV. En ce moment, l'Amazon Fire TV Stick 4K Ultra HD est à 39,99 € livrée gratuitement au lieu de 59,99 €. Ce nouveau modèle offre désormais une sortie en 4K pour tous vos contenus en ultra haute définition, est compatible Alexa et possède une télécommande améliorée avec plus de boutons de contrôle. Avec cette clé, vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, MyCanal Molotov sur votre TV.


> Voir l'offre
20,71 €Ecouteurs intra-auriculaires Aukey EP-T21 bluetooth à 20,71 €
Valable jusqu'au 27 Novembre

Amazon fait une vente flash sur les écouteurs sans fil intra-auriculaires Aukey EP-T21 bluetooth qui passent à 20,71 € au lieu de 36 € ailleurs. Ces écouteurs sont discrets, légers, tiennent bien dans l'oreille et offrent une autonomie de 5h environ. Un micro est intégré. 3 modèles de protège-oreilles sont fournis s'adapter parfaitement à vos oreilles et à vos activités : vous pouvez tout à fait courir avec. Ils sont accompagnés de leur boitier de charge sans fil qui vous offre 4 charges supplémentaires, soit 25 heures de lecture au total. Une très bonne affaire ! L'offre est limitée, ne tardez pas.


> Voir l'offre
Gratuit3 mois d'abonnement à Amazon Music Unlimited gratuits
Valable jusqu'au 15 Janvier

Amazon vous permet d'essayer son service de streaming musical pendant 3 mois gratuitement. Avec Amazon Music Unlimited, accédez à plus de 50 millions de titres, sans publicité et en illimité sur tous vos appareils : smartphone, tablette, PC/Mac, Fire, Alexa. Vous avez même la possibilité de télécharger vos playlists pour des écoutes hors connexion. A la fin de ces 3 mois, vous pourrez basculer vers l'offre payante à 9,99 € / mois ou bien arrêter sans frais le service. A noter l'existence d'une offre famille à 14,99 € / mois qui permet jusqu'à 6 utilisateurs d'écouter leur musique à tout moment et sur leurs appareils préférés. Vous pouvez annuler l'abonnement à tout moment. L'offre se termine ce soir. Ne tardez pas !


> Voir l'offre

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