Autres Cellule écriture automatique

mythotem

XLDnaute Junior
Bonjour,
Dans mon exemple (voir PJ), je voudrais que dès que je rentre la 1ère lettre (M ou O), le nom (Marcel ou Olivier), s'écrive automatiquement.
Merci d'avance.
Denis
 

Pièces jointes

  • Classeur1.xlsx
    11 KB · Affichages: 4

chaelie2015

XLDnaute Accro
Bonjour,
Dans mon exemple (voir PJ), je voudrais que dès que je rentre la 1ère lettre (M ou O), le nom (Marcel ou Olivier), s'écrive automatiquement.
Merci d'avance.
Denis
Bonjour
Votre demande nécessite un peu de clarification. Pourriez-vous préciser si vous souhaitez que le nom (Marcel ou Olivier) s'écrive automatiquement dès que vous entrez la première lettre (M ou O) dans une cellule spécifique, ou si cela doit s'appliquer à toutes les cellules de la feuille ou à une plage prédéfinie ? Plus de détails sur la portée de cette automatisation seraient utiles pour vous fournir une réponse précise.
Merci
 

job75

XLDnaute Barbatruc
Bonjour,

Une solution VBA en plaçant dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each Target In Target
    If UCase(Target) = "M" Then Target = "Marcel"
    If UCase(Target) = "O" Then Target = "Olivier"
Next
End Sub
Les entrées multiples sont possibles.

A+
 

mythotem

XLDnaute Junior
Bonjour
Votre demande nécessite un peu de clarification. Pourriez-vous préciser si vous souhaitez que le nom (Marcel ou Olivier) s'écrive automatiquement dès que vous entrez la première lettre (M ou O) dans une cellule spécifique, ou si cela doit s'appliquer à toutes les cellules de la feuille ou à une plage prédéfinie ? Plus de détails sur la portée de cette automatisation seraient utiles pour vous fournir une réponse précise.
Merci
Oui, je n'ai pas été précis. Uniquement dans la colonne A.
 

chaelie2015

XLDnaute Accro
Oui, je n'ai pas été précis. Uniquement dans la colonne A.
Re voici une proposition
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
        Application.EnableEvents = False ' Désactiver temporairement les événements pour éviter une boucle infinie
        For Each cell In Target
            If UCase(cell.Value) = "M" Then
                cell.Value = "Marcel"
            ElseIf UCase(cell.Value) = "O" Then
                cell.Value = "Olivier"
            End If
        Next cell
        Application.EnableEvents = True ' Réactiver les événements
    End If
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour @mythotem, @job75, @chaelie2015 , le fil

Une autre possibilité : le format personnalisé
Ici le format est appliqué sur une plage de cellules de la colonne A
Si on saisit 1, s'affiche Marc
Si c'est 2, alors ce sera Olivier
FPerso.png
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm