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.

3 réponses

  1. scinarf Messages postés 1183 Statut Membre 294
     
    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. 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
  2. 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
    1. 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
  3. 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