VBA Remplacement automatique d'une valeur d'une cellule

Bonjour à tous,

Je viens prendre conseil auprès de la communauté :

Je cherche à créer une fonction ou un module qui me permette de modifier automatiquement la valeur d'une cellule située entre A2:A3000.

L'idée est la suivante :

Si valeur cellule "A2" est égale à "F" ou " F " ou "F " ou " F" alors valeur cellule "A2" est égale à "Femme"

Si valeur cellule "A2" est égale à "H" ou " H " ou "H " ou " H" alors valeur cellule "A2" est égale à "Homme"

Si valeur cellule "A2" est égale à "M" ou " M " ou "M " ou " M" alors valeur cellule "A2" est égale à "Homme"

Si valeur cellule "A3" est égale à "F" ou " F " ou "F " ou " F" alors valeur cellule "A3" est égale à "Femme"

Si valeur cellule "A3" est égale à "H" ou " H " ou "H " ou " H" alors valeur cellule "A3" est égale à "Homme"

Si valeur cellule "A3" est égale à "M" ou " M " ou "M " ou " M" alors valeur cellule "A3" est égale à "Homme"

Et ainsi de suite jusqu'à la cellule "A3000".

J'avais pensé à ce type d'approche (malheureusement pas concluante):

Sub Worksheet_change(ByVal Target As Excel.Range)
On Error Resume Next
If Not Intersect(Target, [A2]) Is Nothing Then
If Target = "F" Then Range("A3").Value = "Femme"
If Target = " F" Then Range("A2").Value = "Femme"
If Target = " F " Then Range("A2").Value = "Femme"
If Target = "F " Then Range("A2").Value = "Femme"

If Target = "H" Then Range("A3").Value = "Femme"
If Target = " H" Then Range("A2").Value = "Femme"
If Target = " H " Then Range("A2").Value = "Femme"
If Target = "H " Then Range("A2").Value = "Femme"

If Target = "M" Then Range("A3").Value = "Femme"
If Target = " M" Then Range("A2").Value = "Femme"
If Target = " M " Then Range("A2").Value = "Femme"
If Target = "M " Then Range("A2").Value = "Femme"
End If
End Sub

Est-ce possible à réaliser ? Si oui, peut-on le faire pour l'ensenble de la colonne (excepté la cellule "A1") ?

La cellule "A1" sert de filtre pour créer après des TDCs.

Un grand merci pour vos idées !

La Ganache

Salut!

Premièrement tu peux utiliser un boucle for pour parcourir ton fichier.

Deuxièmement tu peux simplifier ton code en utiliser "Or" dans tes conditions.

Bon courage,

Zigzag12

Bonjour,

Tu peux tester le code suivant ...

Sub Worksheet_change(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, [A2:A300]) Is Nothing Then Exit Sub
If Trim(Target) = "F" Then Target = "Femme"
If Trim(Target) = "H" Or Trim(Target) = "M" Then Target = "Homme"
End Sub

En espèrant que cela t'aide ...

Bonjour James,

Je viens d'essayer d'adapter ton code (en modifiant juste la colonne).

J'ai reçu un message d'erreur :

"Object doesn't support this property or method"

Une idée d'où cette erreur peut provenir ?

En tout cas un grand merci à vous deux pour vos idées!

Re,

Je viens de tester le code qui fonctionne ...

Peux-tu joindre un échantillon simplifié de ton fichier ...

Re James,

en effet le code fonctionne néanmoins pour que l'opération fonctionne il faut que je clique sur la cellule pour que celle-ci puisse se mettre à jours.

Peut-on automatiser l'opération ?

Merci encore pour ton aide !

Re,

Ta remarque laisse entendre qu'il pourrait y avoir une confusion de genre ...

La macro évènementielle est ... par définition ... automatique ... puisque c'est l'évènement qui la déclenche ...

Est-ce-que ta question concerne le fait de corriger une plage existante de données déjà saisies ...???

Re James,

Tu as raison James.

La situation concerne bien une donnée déja saisie. Pour être plus exacte une donnée qui sera copié collé dans les cellules.

Est-il possible dans ce cas si d'automatiser le changement ?

La Ganache

Bonjour,

As-tu déjà fait le test d'un copier-coller .... à destination de ta Colonne A ...???

Re,

J'ai également fait le test la solution fonctionne mais je dois toujours cliquer sur chacune des cellules (une par une) pour que le changement opère.

Cela peut-il provenir des filtres ?

Merci encore pour ton aide !

Re,

Malheureusement ... ma boule de cristal est en panne ...

Je viens de tester le code qui fonctionne ...

Peux-tu joindre un échantillon simplifié de ton fichier ...

Rechercher des sujets similaires à "vba remplacement automatique valeur"