[VBA Excel] Valeur de cellule par simple sélection de case [Résolu]

Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
- - Dernière réponse : t2b2t
Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
- 20 déc. 2009 à 16:28
Bonjour,


Je débute en VBA, et j'aurais aimé créer une macro me permettant de déterminer la valeur d'une cellule par simple clic sur une autre cellule, contenant une valeur texte ici.

Pour résumer, j'ai envie que quand je clique (ou sélectionne) une cellule d'une colonne bien précise, que la valeur de cette cellule s'affiche dans une autre cellule. Cela signifie que quand je clique sur la cellule d'en-dessous c'est la valeur de la cellule d'en-dessous qui s'affiche.

Je voudrais que cela marche uniquement pour une colonne précise (voire deux colonnes maxi) et non pour toutes les cellules de la feuille.


J'espère avoir été clair, si ce n'est pas le cas demandez-moi d'expliciter. En espérant que les suggestions seront nombreuses.
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
3
Merci
C'est fort clair (et cela marche fort bien .... testé à l'instant bien que non nécessaire !)
Quel est ton problème ?
Cela implique que tu passe d'une cellule quelconque à une autre cellule de la colonne B. Si cette cellule contient "bonjour", "bonjour apparaîtra bien en ccellule J12 (pardi)
Ne serais-tu par par hasard (seule explication plausible) resté en mode création ?


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,

l'évènement click n'existe pas pour une cellule.
Existe par contre l'évènement SelectionChange d'une feuille et ce dernier se déclenche chaque fois que l'on active une nouvelle cellule.
C'est donc dans cet évènement que tu dois mettre tes instructions, que tu peux subordonner à la réunion de certaines conditions, en utilisant le paramètre Target (qui représente la cellule). Dans ton cas, la propriété Column de l'objet Target devrait être utilisée pour savoir si la cellule appartient à une colonne telle que tes instructions devraient être exécutées.
Voilà la base de travail.
Reviens avec ton code d'essai si tu n'y parviens pas avec ces éléments faciles à comprendre.

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
[color=red]Cliquer sur le bouton "Réponse acceptée" (en bas d'une solution qui s'avère efficace) permet à d'autres forumeurs de mieux
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Allez va (pour un vendredi soir...)
exemple :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Column = 2 Then MsgBox "t'as cliqué sur une cellule de la colonne B"
End Sub

Tu n'auras un affichage de cette msgbox qu'en cliquant sur une cellule de la colonne B
A toi de remplacer la msgbox par les instructions que tu veux...
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
[color=red]Cliquer sur le bouton "Réponse acceptée" (en bas d'une solution qui s'avère efficace) permet à d'autres forumeurs de mieux
Commenter la réponse de ucfoutu
Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
0
Merci
Bonjour,


Avant tout merci pour vos réponses très rapides, ça m'aide à avancer. Seulement j'ai un problème.

Voici le code qui m'intéresse, je ne sais pas si la syntaxe est bonne :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Column 2 Then Range("J12").Value Target.Value
End Sub


Or d'une part je ne sais pas si ce code est bon, et d'autre part pour faire tourner la macro, il me demande de l'enregistrer, et je mets donc le nom "Worksheet_SelectionChange". Cependant on me dit que c'est déjà utilisé dans la bibliothèque, donc je ne peux pas l'enregistrer sous ce nom. Et si je change de nom la syntaxe ne marche plus.

Désolé pour ces questions un peu stupides, mais je suis un novice.
Commenter la réponse de t2b2t
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bon...
1) les évènements (et leurs sub) concernant une feuille sont gérés par Excel.
Tu as à (successivement) :
- cliquer sur l'onglet développeur
- cliquer sur Visual Basic
- cliquer (dans la fenêtre dfe ton projet) sur la feuille de ton choix
- y choisir ton évènement (dans la parie droite) et y coller ton code.

Mais c'est là le B.A.BA de l'utilisation de VBA/Excel, ami ... es-tu certain de ne pas vouloir mettre la charrue avant les boeufs (= te lancer à développer sans même connaître l'IDE de VBA ?) ?


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Commenter la réponse de ucfoutu
Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
0
Merci
Possible, car il est vrai qu'avant je me servais uniquement de l'enregistreur de macro. Je ne connais pas très bien VBE pour ce qui est de créer son propre code.

Peut-être en effet devrais-je commencer par apprivoiser l'interface.

Je fais ça et si j'ai un problème je reviens vous voir.

Encore merci.
Commenter la réponse de t2b2t
Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
0
Merci
Re-bonjour,


Désolé je suis toujours bloqué, mais cette fois c'est différent, car j'ai compris mon erreur.

Je me suis mal exprimé la dernière fois, car en réalité c'est une erreur de compréhension de ma part, ayant déjà utilisé des macros avec des boutons de déclenchement des évènements, je me suis laissé piéger par ça. En effet, j'essayais de faire tourner la macro en cliquant sur le bouton de lecture, ce qui m'obligeait à nommer ma procédure dans un module, et vu que je ne savais pas comment appeler la procédure... Donc j'ai compris qu'ils s'agissait d'évènements se produisant automatiquement et que le bouton lecture ne servait qu'à faire tourner des évènements non automatiques.

Donc le souci désormais est qu'en mettant mon code et en cliquant sur une cellule de la colonne 2, rien ne se passe. J'ai même recopié le code d'ucfoutu avec la MsgBox mais rien se passe non plus.

Est-ce que qqn peut me dire si mon code et valable et pourquoi rien se passe ?


A bientôt
Commenter la réponse de t2b2t
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Montre donc ce code... en nous précisant où tu l'as mis exactement.

Je te précise qu'il doit être écrit ici et ainsi :
1) en mode développeur ===>> visdual Basi ===>> : double clicl sur la feuille concernée, dans la fenêtre VbaProjects
2) dans la colonne de gauche : chois de ta Worksheet ===>>> évènement selectionChange ===>> c'est là, que ton code doit être inclus.
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Commenter la réponse de ucfoutu
Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
0
Merci
Je pense que ça sera plus clair comme ça :
Lien vers capture d'écran
Commenter la réponse de t2b2t
Messages postés
6
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
20 décembre 2009
0
Merci
En effet, j'ai désactivé le mode création et ça marche, je te remercie.

Pour ce qui est de l'utilité, c'est juste que pour l'instant cette solution m'évite de rentrer dans un code VB.NET trop compliqué et que je n'ai pas le niveau pour le faire. Donc je me sers de cette macro et des formules d'Excel pour le moment, le temps de pouvoir l'améliorer.

Encore merci.
Commenter la réponse de t2b2t