Téléphone : 06.36.02.19.40 | Mail : contact@morpheus-formation.fr
Aujourd'hui, nous allons explorer en détail la fonction REPLACE
dans Excel VBA.
Je suis là pour vous guider à travers les subtilités de cette fonction puissante.
La fonction REPLACE
est utilisée pour remplacer une partie d'une chaîne de caractères par une autre chaîne.
C'est un outil incontournable pour les développeurs VBA souhaitant manipuler des textes de manière dynamique et efficace.
Voici la syntaxe de base de la fonction REPLACE
:
Replace(expression, find, replace, [start, [count, [compare]]])
Paramètres
Paramètre | Description |
---|---|
expression | Obligatoire. La chaîne de caractères contenant la sous-chaîne à remplacer. |
find | Obligatoire. La sous-chaîne à rechercher dans l'expression. |
replace | Obligatoire. La sous-chaîne qui remplacera chaque occurrence de find . |
start | Facultatif. La position de départ pour la recherche (par défaut : 1). |
count | Facultatif. Le nombre de remplacements à effectuer (par défaut : -1, remplace toutes les occurrences). |
compare | Facultatif. Le type de comparaison à utiliser. |
Valeurs de retour
La fonction REPLACE
renvoie une nouvelle chaîne de caractères dans laquelle toutes les occurrences de find
sont remplacées par replace
, à partir de la position start
et jusqu'à ce que le nombre de remplacements spécifié par count
soit atteint.
Types de Comparaison
Constante | Valeur | Description |
---|---|---|
vbUseCompareOption | -1 | Utilise le paramètre de l'instruction Option Compare . |
vbBinaryCompare | 0 | Effectue une comparaison binaire (sensible à la casse). |
vbTextCompare | 1 | Effectue une comparaison textuelle (insensible à la casse). |
vbDatabaseCompare | 2 | Comparaison basée sur les informations dans la base de données (Access uniquement). |
Exemple d’utilisation FONCTION REPLACE VBA
Voyons quelques exemples concrets pour mieux comprendre l'utilisation de la fonction REPLACE
, avec des explications détaillées pour chaque cas.
Exemple 1 : Remplacement d’un mot dans une phrase
Dans cet exemple, nous allons remplacer le mot "chat" par "chien" dans une phrase.
Sub RemplacementMot()
Dim phrase As String
phrase = "Le chat dort sur le canapé."
' Remplace "chat" par "chien"
MsgBox Replace(phrase, "chat", "chien") ' Renvoie : Le chien dort sur le canapé.
End Sub
Explication : la fonction Replace recherche la sous-chaîne "chat" dans la chaîne phrase et la remplace par "chien". Le résultat est affiché dans une boîte de message, montrant "Le chien dort sur le canapé."
Exemple 2 : Remplacement de caractères spéciaux
Dans cet exemple, nous allons remplacer tous les points-virgules par des virgules dans une liste de valeurs séparées par des points-virgules.
Sub RemplacementCaractereSpecial()
Dim liste As String
liste = "pomme;orange;banane;kiwi"
' Remplace ";" par ","
MsgBox Replace(liste, ";", ",") ' Renvoie : pomme,orange,banane,kiwi
End Sub
Explication : La fonction Replace
remplace chaque point-virgule dans la chaîne liste
par une virgule. Le résultat est une liste de fruits séparés par des virgules.
Exemple 3 : Remplacement conditionnel avec position de départ
Dans cet exemple, nous allons remplacer le mot "jour" par "soir" seulement après le 10ème caractère de la phrase.
Sub RemplacementConditionnel()
Dim phrase As String
phrase = "Bonjour, aujourd'hui est un beau jour."
' Remplace "jour" par "soir" après le 10ème caractère
MsgBox Replace(phrase, "jour", "soir", 10) ' Renvoie : Bonjour, aujourd'hui est un beau soir.
End Sub
Explication : En définissant le paramètre start
à 10, la fonction Replace
commence à rechercher "jour" après le 10ème caractère. Seule l'occurrence de "jour" après ce point est remplacée par "soir".
Exemple 4 : Limiter le nombre de remplacements
Ici, nous allons remplacer seulement les deux premières occurrences du caractère "i" par "I".
Sub LimiterNombreRemplacements()
Dim phrase As String
phrase = "Il fait froid ici, mais il y a du soleil."
' Remplace les deux premières occurrences de "i" par "I"
MsgBox Replace(phrase, "i", "I", 1, 2) ' Renvoie : Il faIt froId ici, mais il y a du soleil.
End Sub
Explication : En définissant count
à 2, la fonction Replace
remplace seulement les deux premières occurrences de "i" par "I". Le résultat est "Il faIt froId ici, mais il y a du soleil."
Exemple 5 : Remplacement insensible à la casse
Dans cet exemple, nous allons remplacer "VBA" par "Visual Basic" sans tenir compte de la casse.
Sub RemplacementInsensibleCasse()
Dim texte As String
texte = "Le VBA est puissant. Le vba permet de faire beaucoup de choses."
' Remplacement insensible à la casse de "VBA" par "Visual Basic"
MsgBox Replace(texte, "VBA", "Visual Basic", , , vbTextCompare) ' Renvoie : Le Visual Basic est puissant. Le Visual Basic permet de faire beaucoup de choses.
End Sub
Explication : En utilisant vbTextCompare
pour le paramètre compare
, la fonction Replace
effectue une recherche insensible à la casse et remplace toutes les occurrences de "VBA" par "Visual Basic", peu importe leur casse originale.
Nos meilleures pratiques
Voici, d'après-moi, les meilleurs pratiques de la fonction REPLACE :
- Utiliser des valeurs de comparaison appropriées : choisissez
vbTextCompare
si vous voulez une comparaison insensible à la casse, etvbBinaryCompare
si la casse est importante. - Définir clairement le point de départ et la limite : utilisez les paramètres
start
etcount
pour contrôler précisément où et combien de fois le remplacement doit avoir lieu.
Les erreurs à éviter
Voici, d'après-moi, les erreurs à éviter de la fonction REPLACE :
- Oublier de spécifier le type de comparaison : si vous ne spécifiez pas
compare
, la fonction utilisera la comparaison par défaut, ce qui pourrait ne pas correspondre à vos attentes. - Ne pas gérer les chaînes vides ou nulles : assurez-vous que les paramètres
expression
,find
etreplace
ne sont pas vides ou nulles pour éviter des comportements inattendus.
Formation VBA Excel
Vous êtes à l'aise avec Excel et vous souhaitez passer à un niveau supérieur ? Il est temps d'apprendre le langage de programmation VBA pour créer de véritables applications dans Excel ! Explorez notre programme de formation Excel VBA pour apprendre à créer des macros et automatiser vos classeurs.
Que vous soyez une entreprise ou un particulier, nous avons conçu une formation Macros VBA Excel adaptée à vos besoins spécifiques. Nous vous offrons la flexibilité de choisir entre des formations à distance ou en présentiel, selon vos préférences et contraintes.
En choisissant notre formation VBA Excel (macros), vous pourrez également passer la certification TOSA, une référence en matière de certification bureautique.
Les autres fonctions VBA TYPE
Fonction InStr VBA Excel
FONCTION CHR VBA Excel
Fonction FORMAT Excel VBA
Découvrez toutes les fonctions dans Excel VBA ici.