Code VBA pour donner une valeur automatiquement.

Matjul

XLDnaute Occasionnel
Bonjour à tous,
J'ai une feuille excel avec les valeurs suivantes:
A1: C B1: Création
A2: A B2: Annulation
A3: M B3: Modification

Dans une autre feuille, il y a une colonne dans laquelle il faut rentrer les valeur "C" ou "A" ou "M", et lorsque l'on change de cellule (c'est à dire que l'on passe dans la cellule à coté) je souhaiterai que le "C" soit remplacé par "Création" ou bien le "A" par "Annulation".....

J'espère que je suis arrivé à me faire comprendre.

Merci pour votre aide.
 

Eric 45

XLDnaute Occasionnel
Re : Code VBA pour donner une valeur automatiquement.

Bonjour à tous
Bonjour Matjul

Si j'ai bien compris, et sans optimisation du code :
Code:
Option Explicit
Dim anciennevaleur As String
Dim anciennead

Private Sub Worksheet_Change(ByVal Target As Range)
anciennead = Target.Address(0, 0)
On Error Resume Next
anciennevaleur = Target.Value
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Select Case anciennevaleur
    Case "A": Range(anciennead).Value = "Annulation"
    Case "C": Range(anciennead).Value = "Création"
    Case "M": Range(anciennead).Value = "Modification"
End Select
End Sub
Tu peux supprimer ta liste dans la feuille, mais attention, ce code fonctionne pour toutes les cellules de toutes les colonnes, il faut donc mettre une restriction pour la zone ou colonne que tu veux

Eric
 

Matjul

XLDnaute Occasionnel
Re : Code VBA pour donner une valeur automatiquement.

Merci Eric,
je ne met peut être pas le code au bon endroit, mais ça ne fonctionne pas chez moi.

En fait je voudrais que cela fonctionne uniquement pour la colonne B de la feuille 1

Merci
 

GIBI

XLDnaute Impliqué
Re : Code VBA pour donner une valeur automatiquement.

Bonjour,

tu peux coder un événement comme suit
Private Sub Worksheet_Change(ByVal CelluleEnCours As Range)

If CelluleEnCours.Column = 1 And CelluleEnCours.Count = 1 Then ' limiter la modif sur une cellule de la colonne 1
Application.EnableEvents = False 'Inactiver l'événement
Select Case CelluleEnCours
Case "A": CelluleEnCours.Value = "Annulation"
Case "C": CelluleEnCours.Value = "Création"
Case "M": CelluleEnCours.Value = "Modification"
End Select
Application.EnableEvents = True

End If
End Sub

Recopie la macro en utilisant le bouton droit sur l'onglet de la feuille / visualiser le code

je te laisse le plaisir de découvrir la suite...

bon courage
 

Discussions similaires