Affecter une macro a une plage de cellule [Résolu]

- 20 déc. 2012 à 13:35 - Dernière réponse :
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 21 déc. 2012 à 18:51
Bonjour a tous

je suis en train de développer un tableau pour évaluer des analyses de risque.. bref... j'ai créer une userform dans laquelle l'utilisateur clic sur des option_button qui sont relier a la cellule active et lui affecte un nombre (10, 7, 5, 3 ou 1 suivant le risque). Tout marche très bien sauf que.. j'active cette macro via un bouton. J'aimerais que la macro se lance via un clic sur la cellule concerner (qui deviendrait la cellule active par la même occasion, ce qui est nickel pour ma macro..)
Je précise que cela ne concerne pas une seule cellule mais une plage de cellule (toute sur la même colonne).
Idéalement, j'aimerai créer un code du type :
If la cellule active est sur la colonne Z et que la ligne est superieur a 18 then
Userform.show

J'ai déja vu des code de ce type, mais chez moi ça ne marche pas.
j'ai tenter

if target.row > 18 and target.column = 26 then
mais aucun resultat.. ou alors je ne l'ai pas rentrer au bon endroit..

Si qqun pouvait m'aider..

Merci d'avance de l'attention que vous porterez a mon problème
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 21 déc. 2012 à 18:51
3
Merci
Bon.
Libère cette discussion (un clic sur tag "réponse acceptée).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 déc. 2012 à 13:53
0
Merci
Bonjour,
Oui ?
regarde ce qu'est l'évènement SelectionChange d'une feuille


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
- 20 déc. 2012 à 14:02
0
Merci
Re bonjour

J'ai bien vu l'evenement selection.change mais je ne sais pas comment intégrer la notion de colonne..
Commenter la réponse de NanomaxVBA
- 20 déc. 2012 à 14:06
0
Merci
et ou dois je rentrer ce code.. n'importe ou ou il y a t'il un endroit spécial ?
Commenter la réponse de NanomaxVBA
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 déc. 2012 à 14:57
0
Merci
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
- 20 déc. 2012 à 15:07
0
Merci
Désolé de te faire pleurer.. mais cela ne fait pas avancer grand chose.. :/

J'ai tenter Worksheet_selectChange (byval Target as Range)
Dim A as range

if A = "P18 : P500" then ' c'est la ou a mon avis ça coince, comment lui faire comprendre que je ça concerne toute les cellule de la colonne P a partir de la ligne 18

call procedure

end if

je precise que la procedure marche deja très bien..

Si qqun a une astuce ou une vrai aide a me donner car en rentrant les smiley qui pleure dans VBA, ça marche pas non plus.. ^^
Commenter la réponse de NanomaxVBA
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 20 déc. 2012 à 15:29
0
Merci
Worksheet_SelectionChange (byval Target as Range)
C'est là que tu dois utiliser Target.Row ou Column...

Tu pourrais aussi voir du côté d'un menu sur click droit qui te permettrait de lancer cette macro

Il y a un exemple de code ici
Codyx

Il y a d'autres méthodes un peu moins complexes pour créer un simple menu... sans passer par des objets déclarés Public...


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 déc. 2012 à 17:59
0
Merci
Ecrire :
Dim A as range
if A = "P18 : P500"

révèle beaucoup ! Tu ne semble même pas savoir ce qu'est un obvjet (ici un Range) !
Il est urgent que tu commence à lire ton aide VBA et que tu y apprennes au moins les choses les plus basiques, sans lesquelles tu ne saurais développer.
Target est un objet Range (lis donc comment il est défini en paramètre de la sub ...)
Fais ce test :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Row > 3 And Target.Column = 2 Then MsgBox "coucou"
 If Not Application.Intersect(Target, Range("C18:C" & Rows.Count)) Is Nothing Then MsgBox "vu ?"
End Sub

tu auras le message "coucou" chaque fois que tu cliqueras dans la colonne B, au delà de la ligne 2 et tu auras le message "vu ?" chaque fois que tu cliqueras en colonne C au-delà de la ligne 17)
Te voilà donc avec deux méthodes différentes. Saisis cette occasion (lecture de ton aide VBA) pour apprendre également ce qu'est Application.Intersect et ce qu'est Nothing.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
- 21 déc. 2012 à 18:17
0
Merci
Merci beaucoup pour cette réponse. Je l'avoue, je n'ai pas pris le temps d'aller sur l'aide en ligne et mes cours de VBA ne sont pas allez aussi loin pour pouvoir aborder les codes que vous m'avait présenté. Encore merci pour votre aide.
Commenter la réponse de NanomaxVBA

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.