Macro - modifier texte sous condition

Bonjour à tous,

Je fais appel à votre aide car je cherche une macro qui me permette de modifier un texte sous condition.

J'ai essayé avec une formule simple du type : Si (valeur vrai; valeur 1; sinon valeur 2). Mais cela ne fonctionne pas car j'ai un message d'erreur avec une référence circulaire. J'ai contourné le problème mais cela ne convient toujours pas... donc la solution la plus simple serait, sans doute une macro....

Mon problème est le suivant :

Si je prends l'exemple dans mon fichier, on aurait :

Si A2 = "Monsieur" alors A2 est modifiée et on écrit "homme"

Si A2="Madame" alors A2 devient "femme"

Si A2="Mademoiselle" alors A2 devient "enfant"

Merci par avance pour votre aide.

11fichier-1.xlsx (13.44 Ko)

bonjour,

as-tu essayé chercher/remplacer (Ctrl-r) ?

Bonjour,

La solution la plus simple est celle proposée par h2so4, et de loin.

Sinon, juste pour l'exercice lors de l'entrée d'une valeur sur votre feuille (code à placer dans l'objet de la feuille) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LR%
With ActiveSheet
    LR = .Cells(.Rows.Count, 1).End(xlUp).Row
    If Not Application.Intersect(Target, Range(.Cells(2, 1), .Cells(LR, 1))) Is Nothing Then
        Select Case Target
            Case "monsieur"
            Target = "Homme"
            Case "madame"
            Target = "Femme"
            Case "mademoiselle"
            Target = "Enfant"
        End Select
    End If
End With
End Sub

Sinon merci d'être plus précise : remplacement en masse, suite à l'entrée d'une valeur, via bouton. Les conditions de déclenchement du code en soit.

Cdlt,

Bonjour H2so4 et Ergotamine,

Merci pour vos réponses..

En effet, je vois l'intérêt d'être plus précise.

En fait, ce qui m'intéresse est un remplacement en masse (sur des données déjà entrées). Le remplacement se ferait via un bouton ou après exécution de la macro.

Merci encore pour votre aide

Bonjour,

Un second test dans ce cas qui devrait mieux répondre au besoin :

Sub REMPLACEMENT()
Dim TAB_I()
Dim TAB_F()
Dim i%
TAB_I = Array("Monsieur", "Madame", "Mademoiselle")
TAB_F = Array("homme", "femme", "enfant")
For i = 0 To UBound(TAB_I)
    ActiveSheet.Columns(1).Replace What:=TAB_I(i), Replacement:=TAB_F(i)
Next i
End Sub

Cdlt,

C'est vraiment parfait ca fonctionne exactement comme je le souhaitais….

Merci beaucoup Ergotamine et H2so4 !!!

Bonne soirée

Rechercher des sujets similaires à "macro modifier texte condition"