Affecter une valeur (0,5) à toutes les cellules par simple clic.

cartiers -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

J'aimerai affecter ,dans certaines colonnes seulement, définies par avance, la valeur 0,5 (ou une autre) en cliquant (simple clic) sur les cellules choisies.
Est-ce faisable de façon assez simple?
Merci de votre aide.

A voir également:

3 réponses

scinarf Messages postés 1183 Statut Membre 252
 
Oui c'est faisable,

reste à savoir ce que tu veux vraiment.

Juste quand tu sélectionnes une cellule particulière ça te la remplie avec un 0.5 ?
0
cartiers
 
Voilà,
Je dois mettre des bonus à certains élèves.
J'ai 10 colonnes. Ces 10 premières colonnes sont remplies avec des couleurs par vba
Les 4 colonnes suivantes, j'aimerai pouvoir attribuer 0,5 point par simple clic dans les cellules choisies. Je ne sais pas si ça suffit comme explications.
0
ccm81 Messages postés 11033 Statut Membre 2 434
 
bonjour

il va falloir passer par une macro

Alt-F11 pour passer dans l'éditeur VBA
Dans la fenêtre Projet (a gauche) clic sur la feuille à traiter
Coller ce code dans l'éditeur

Option Explicit  

Const plage = "$K:$M"  

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
If Not Intersect(Target, Range(plage)) Is Nothing Then  
  ' pour ajouter 0.5 à la cellule
  ' Target.Value = Target.Value + 0.5  
  ' pour attribuer 0.5 à la cellule
  Target.Value = 0.5
  Target.Offset(1, 0).Select  
End If  
End Sub


L'ajout du demi point se fera avec un double clic sur toute cellule de la plage "K:M"

bonne journée
0
cartiers
 
Merci beaucoup, ça fonctionne très bien.
J'avais déjà rencontré ce type de code pour colorer mes cellules, mais je n'avais pas réussi à l'adapter car je ne comprends pas bien ce que signifient les lignes
If Not Intersect(Target, Range(plage)) Is Nothing Then

Target.Offset(1, 0).Select

Pourriez-vous m'expliquer un peu que je puisse l'adapter sans devoir revenir poser une question bête la prochaine fois, s'il vous plait.
Encore merci pour tout.
0
ccm81 Messages postés 11033 Statut Membre 2 434
 
1. Const plage = "$K:$M"
définit la plage où la macro va s'appliquer

2. If Not Intersect(Target, Range(plage)) Is Nothing Then
- Target est la cellule cible (la cellule active)
en français
si l'intersection (au sens mathématique) de la cible et de plage n'est pas vide ..
ou plus simplemen: si la cellule cible est dans plage alors ...

3. Target.Offset(1, 0).Select
déplace le curseur de 1 ligne et 0 colonnes par rapport à la cible
si on ne met pas cette instruction la cible va garder la main en attente d'une validation par exemple (tu peux essayer en inhibant cette ligne en mettant un ' apostrophe devant)

bonne journée
0