Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2012, 10h52   #1
Invité régulier
 
Homme John Matches
Inscription : août 2010
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme John Matches
Localisation : Belgique

Informations professionnelles :
Secteur : Associations - ONG

Informations forums :
Inscription : août 2010
Messages : 32
Points : 5
Points : 5
Bonjour,

Voici ma question.

J'ai ma cellule F31 qui peut contenir deux données différentes (définies par la fonction de validation de données) soit TRAIN, soit VOITURE.
Si je choisis la valeur TRAIN pour cette cellule, je souhaite donner la valeur LOCOMOTIVE à une autre cellule : J25.
Si je change la valeur en VOITURE, je souhaite que la valeur de la cellule J25 devienne ROUE.

Quelqu'un à une idée ?

Une solution serait de mettre une formule SI dans la cellule J25, mais je ne veux pas car l'utilisateur peut faire un autre choix de valeur (qui de tiendrait plus compte de la valeur recommandée par le choix de la cellule F31.
Prof_Matches est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 11h13   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Dans le code de la feuille en question :
Code :
1
2
3
4
5
6
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$F$31" Then
        If Target.Value = "TRAIN" Then Me.Range("J25").Value = "LOCOMOTIVE"
        If Target.Value = "VOITURE" Then Me.Range("J25").Value = "ROUE"
    End If
End Sub
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2012, 11h31   #3
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut modification

Bonjour match, zebreloup, Bonjour le Forum,

Si je peux me permettre.
Sachant que la cellule F31 répond à une liste de validation de 2 valeurs, il est possible d'utiliser la méthode IIF.

D'où cette variante :

Code :
1
2
3
4
5
6
Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
            If .Address <> "$F$31" Then Exit Sub
            Range("J25").Value = IIf(.Value = "TRAIN", "LOCOMOTIVE", "ROUE")
    End With
End Sub
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 11h53   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Tout à fait. Et si ensuite tu as plus de 2 valeurs, il faudra mieux utiliser un Select Case plutôt que des If
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 12h07   #5
Invité régulier
 
Homme John Matches
Inscription : août 2010
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme John Matches
Localisation : Belgique

Informations professionnelles :
Secteur : Associations - ONG

Informations forums :
Inscription : août 2010
Messages : 32
Points : 5
Points : 5
Super !
Ça fonctionne.
Un grand merci à tout le monde.
Prof_Matches est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h22.


 
 
 
 
Partenaires

Hébergement Web