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

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.

3 réponses

  1. 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
    1. 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
  2. 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
    1. 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
  3. 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