(VBA) Validation de données = Résultat direct

sebamak

XLDnaute Nouveau
Bonjour à tous,

Voici mon souci, je n’ai pas trouvé la réponse dans le forum, mais si l’un d’entre vous a déjà rencontré le sujet, merci de me donner le lien correspondant.

Voilà, j’ai créé une liste de « Validation de données » et quand je sélectionne une valeur dans cette liste, je désirerais que cela remplisse une cellule à côté avec une valeur déterminé, le tout en VBA.

Le problème que je rencontre, c’est que je n’arrive pas à obtenir la valeur en DIRECTE. Je suis obligé de cliquer sur une cellule à côté pour que la valeur change.

J’ai écrit la procédure dans « Worksheet_SelectionChange »

Je joins un fichier résumant mon problème.

Je voudrais que quand je sélectionne « OUI » dans la liste, cela m’inscrive « OUI » 2 cellules plus loin sans devoir cliquer ailleurs. Et la même chose avec la sélection de « NON ».

Je précise bien que ceci est un résumé du programme que je suis en train d’élaborer. L’ensemble final regroupe bien plus de données. Mais je pense qu’il suffit à expliquer mon problème.

Merci d'avance pour vos réponse :D
 

Pièces jointes

  • Exemple.xlsm
    13.1 KB · Affichages: 32
  • Exemple.xlsm
    13.1 KB · Affichages: 32

CHALET53

XLDnaute Barbatruc
Re : (VBA) Validation de données = Résultat direct

bonjour,

Un essai :

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("B7").Value
Case "OUI"
Range("B7").Offset(0, 2).Value = "OUI"
Case "NON"
Range("B7").Offset(0, 2).Value = "NON"
End Select
End Sub
 

Paf

XLDnaute Barbatruc
Re : (VBA) Validation de données = Résultat direct

bonjour sebamak, CHALET53

en utilisant la même sub que CHALET53

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$7" Then Target.Offset(0, 2).Value = Target
End Sub

A+
 

sebamak

XLDnaute Nouveau
Re : (VBA) Validation de données = Résultat direct

Bonjours, à vous et merci déjà d’avoir pris le temps de me répondre,

Alors pour tout vous dire, le problème que je vous ai exposé, n’est pas : « Comment remplir une cellule après avoir sélectionné une donnée dans une liste de « validation de données » ? », mais de remplir cette cellule en direct, sans devoir cliquer ailleurs.

Ce que propose CHALET53 est exactement le code que j’ai dans mon fichier d’exemple, et le problème, c’est que lorsqu’on sélectionne « OUI » ou « NON », la cellule de destination ne change pas directement.

Il faut que je clique à un autre endroit de la feuille pour qu’elle se mette à jour.

Quant à la solution de Paf, cela marche aussi, mais je donnais « OUI » ou « NON » comme exemple. Vous vous doutez bien que ce que je cherche à faire et plus complexe que ça :
Sélection d’une valeur dans une liste de « validation de données » renvoie une autre « valeur » dans une cellule déterminée.

Mais ce que je souhaite c’est qu’elle renvoie cette valeur instantanément sans devoir cliquer ailleurs.

Donc si vous avez la solution, je suis preneur.
 

Paf

XLDnaute Barbatruc
Re : (VBA) Validation de données = Résultat direct

re,

la proposition de CHALET53 et la mienne modifient instantanément la cellule D7 après sélection en B7, sans avoir à cliquer quelque part.
Si non, pourquoi proposer une solution qui présente le même inconvénient que le problème soumis ?

Peut-être avez vous copier le code dans la mauvaise sub ?

A+
 

sebamak

XLDnaute Nouveau
Re : (VBA) Validation de données = Résultat direct

Toutes mes excuses,
Effectivement, je ne m’étais pas aperçu que vous faisiez la procédure dans « Worksheet_Change » et non dans « Worksheet_SelectionChange » et cela fonctionne très bien.

Mais quand je l’intègre à mon programme, il se met à bugger de partout.

Du coup je me suis rabattu sur une solution de substitution qui laisse mon programme viable.

Encore un grand merci à vous pour vos réponses rapides et constructives.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote