Changer de Sexe de plusieurs sujets

Bonjour à tous,

Comme je ne suis pas un expert en vba, je me permets de vous solliciter et vous demander votre aide qui sera précieuse.

Informations sur le contenu de mes cellules :

Toutes les cellules de la colonne "A" se terminent soit par "F" ou "M", ce dernier caractère de la colonne "A" détermine le sexe du sujet. Si la cellule de la colonne "A" se termine par "F", il s’agit d’une Femelle, de même, si la cellule en colonne "A" se termine par "M", il s’agit d’un Mâle.

Vous pouvez remarquer que lorsque le sujet est une "Femelle", en retrouve le mot "Femelle " au début de la cellule de la colonne "J". De même, lorsque le sujet est un "Mâle", en retrouve le mot "Mâle " au début de la cellule de la colonne "J"

En résumé, les cellules en colonne "J" commencent soit par le mot "Femelle" ou "Mâle ", en fonction du sexe indiqué à la fin des cellules en colonne "A".

Actuellement, si je souhaite modifier le sexe d’un sujet , je le fais manuellement.

Prenons le cas où je souhaite changer le sexe d’un sujet "Mâle en "Femelle" : pour cela, je sélectionne la cellule en colonne "A" pour remplacer le dernier caractère "M" par "F" et puis je me déplace à la de la colonne "J" pour remplace le premier mot "Mâle " (s'!i existe) dans la cellule en colonne "J" par "Femelle ".

Quand il y’a beaucoup de sujets auxquels je dois modifier le sexe, c’est vraiment laborieux.

D’où ma demande de le faire via une Macro.

Il serait intéressant que la futur Macro puisse changer le sexe d’un seul ou de plusieurs sujets, je m’explique en prenant un exemple :

Supposons que je souhaite changer le sexe de 4 sujets en une fois dans la feuille "Parents", les 4 lignes concernées sont : 3, 5, 7 et 8 (elles sont coloriées), voir la feuille "Parents" en pièce jointe.

Pour cela, je sélectionne les 4 cellules : "A3", "A5", "A7" et "A8" au même temps, ainsi, on pourra déterminer les numéros des lignes, la Macro devrait changer le sexe de la ligne 3 au niveau de la cellule "A3", en remplaçant le dernier caractère "F" par "M", ensuite, on remplace le mot "Femelle " de la cellule "J3" par "Mâle ".

Ensuite, On fera de même en "A5", on va remplacer le dernier caractère "M" par "F", ensuite, en va remplacer la mot "Mâle " à la cellule "J5" par "Femelle "

Un petit détail qui se présente parfois en colonne "J" et qu’il serait souhaitable de l’intégrer dans la programmation, c’est le cas des lignes : 7 et 8

, parfois le mot "Mâle" ou "Femelle" ne figurent pas au début des cellules de la colonne "J", (voir lignes : 7 et 8 de la feuille "Parents"), dans ce cas, il faut les ajouter en fonction du sexe qui sera indiqué par le dernier caractère en colonne "A".

Sauf erreur de ma part, le résultat souhaité pour l’exemple après exécution de la Macro se trouve dans la feuille "Résultat".

Je reste à votre disposition pour d’autres informations supplémentaires, si besoin.

Bonne programmation et au plaisir de vous lire.

16changer-sexe.xlsm (16.03 Ko)

Bonjour,

Essayez ceci, sélectionnez les cellules à changer de la colonne A, puis cliquez sur le bouton:

Cdlt

Bonjour

Bonjour à tous

Une variante :

16changer-sexe.xlsm (23.54 Ko)

Bye !

Bonjour arturo 83,

Merci pour votre retour et le code proposé.

Je suis content que vous avez bien cerné ma demande, j’avais peur de ne pas arriver à bien expliquer ma demande de manière à vous permettre de résoudre le problème.

J’ai mis un peu plus de données et j’ai fait quelques tests, il y’a un cas ou le code ne répond pas favorablement et ne donne pas le résultat attendu, vous pouvez le tester par vous-même, les cellules pour faire le test se trouvent en bas du tableau de la colonne "A" et sont colorées en jaune (Voir pièce Jointe).

Pouvez-vous les sélectionner et puis cliquer sur le bouton, vous verrez que dans certaines lignes, les mots au début de la colonne "J" ne sont pas remplacé par les nouveaux mots à mettre en place.

Je me demande si ce n’est pas le fait que les mots "Mâle" et "Femelle" ne s’écrivent pas avec un espace en fin de mot.

Si c’est le cas, pourriez-vous apporter une mise à jour au code de manière à ajouter un espace après les mots "Mâle" et "Femelle" ou je dois absolument les écrire avec un espace en fin de mot comme ceci : "Mâle " et "Femelle ".

Cordialement.

le code modifié:

Sub Changer_Sexe()
    Dim Sexe As String, Sexe1 As String, Sexe2 As String
    Dim Cell As Variant
    Dim Ligne As Long

    Application.ScreenUpdating = False
    Sexe1 = "M"
    Sexe2 = "F"
    For Each Cell In Selection
        Ligne = Cell.Row
        Sexe = Right(Cell, 1)
        If Sexe = Sexe1 Then
            Cell.Value = Replace(Cell, " M", " F")
            Cells(Ligne, "J") = "Femelle " & Cells(Ligne, "J")
            Cells(Ligne, "J") = Replace(Cells(Ligne, "J"), "Mâle", "")
        ElseIf Sexe = Sexe2 Then
            Cell.Value = Replace(Cell, " F", " M")
            Cells(Ligne, "J") = "Mâle " & Cells(Ligne, "J")
            Cells(Ligne, "J") = Replace(Cells(Ligne, "J"), "Femelle", "")
        End If
    Next
End Sub

Cdlt

Bonjour gmb,

Merci pour votre retour et votre code. Quelle belle surprise de constater que le code proposé utilise des Tableaux qui sont souvent rapides.

Pour votre information, le sexe est toujours indiqué par le dernier caractère indiqué en colonne "A", soit par "M" ou "F".

Il arrive parfois que le sexe "Mâle" ou "Femelle" n’ai pas indiqué au début de la colonne "J", c’est le cas de la ligne 7 et 8, pouvez-vous (SVP) traiter ce cas de manière à ajouter le mot "Femelle" ou "Mâle " au début de la colonne "J" en fonction du sexe indiqué en fin de cellule de la colonne "A".

Bonne programmation.

Maintenant je vais tester le code d’arturo83.

A vous lire.

Bonjour Arturo83,

Merci pour la dernière mise à jour selon ma dernier demande.

J’ai fait mes tests et je peux vous assurer que le code proposé fonctionne très bien et me satisfait totalement.

Bien à vous et au plaisir de dialoguer avec vous par clavier interposé peut-être dans une futur demande de code. Qui sait!

Salutations.

Nouvelle version

Bye !

Bonjour gmb.

Merci pour votre retour avec le nouveau code, ce dernier fonctionne merveilleusement bien.

Je me retrouve avec deux solutions fonctionnelles, la vôtre et cellule d’Arturo83, je suis très content.

Merci à vous deux pour le travail accompli.

Cordiale poignée de mains à tous les deux.

Je me retrouve avec deux solutions fonctionnelles

Abondance de biens ne nuit pas.

Et Arturo est plein de talent. Qu'il me soit permis de lui rendre hommage !

Je lui souhaite une longue participation sur ce forum où il fera encore de nombreux heureux.

Bye !

Rechercher des sujets similaires à "changer sexe sujets"