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

Réponses
2
Affichages
170
Réponses
6
Affichages
356
Réponses
3
Affichages
510

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD