Code vba...un peu d''aide svp

memene

XLDnaute Nouveau
Bonsoir à tous,

Je ne m'y connais pas en VBA et je voudrais créer plusieurs codes pour répondre à mes attentes.
Dans mon fichier, que je vous ai mis en PJ, je souhaiterais:

- en double cliquant sur une des cellules entre c18:g18, elle devient rouge. Si je double-clique sur une autre, elle devient rouge à son tour en remplacement de la précédente. Ensuite, en fonction de la cellule rouge, s'inscrit en n18, un nombre correspondant: si c18 rouge alors n18=0, si d18 rouge alors n18=0.5, si e18 rouge alors n18=1...si g18 rouge alors n18=2
- je souhaiterais reproduire le même code pour c20:g20, c22:g22, c24:g24,c26:g26 avec n20, n22, n24, n26
- je souhaiterais enfin le même genre de code pour c33:h33, c35:h35,c37:h37, c39:h39 sauf que n33 peut s'étendre de 0 à 2.5 (c=0, d=0.5...h=2.5)

Le plus simple pour bien comprendre est sans doute d'utiliser le fichier que je vous transmets.
Merci d'avance pour vos réponses

Memene
 

Pièces jointes

  • Arts du cirque.xlsm
    44.3 KB · Affichages: 58

Grand Chaman Excel

XLDnaute Impliqué
Re : Code vba...un peu d''aide svp

Bonjour memene,

Voici une proposition. Tu dois mettre le code dans la feuille "5"

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim notes() As Variant

notes = Array(0, 0.5, 1, 1.5, 2, 2.5)
    If Target.Columns.Count > 1 Then Exit Sub
    
    'De 18 à 27
    If Target.Column >= 3 And Target.Column <= 7 Then
        If Target.Row >= 18 And Target.Row <= 27 Then
            Range(Cells(Target.Row, 3), Cells(Target.Row, 7)).Interior.ColorIndex = xlNone
            Target.Interior.ColorIndex = 3
            Range("N" & Target.Row) = notes(Target.Column - 3)
        End If
    End If
    
    'De 33 à 40
    If Target.Column >= 3 And Target.Column <= 8 Then
        If Target.Row >= 33 And Target.Row <= 40 Then
            Range(Cells(Target.Row, 3), Cells(Target.Row, 8)).Interior.ColorIndex = xlNone
            Target.Interior.ColorIndex = 3
            Range("N" & Target.Row) = notes(Target.Column - 3)
        End If
    End If

End Sub

A+

Edit: Bien vu Staples! Merci.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Code vba...un peu d''aide svp

Bonsoir le fil, tout le monde

Pour info:
Erreur de syntaxe : C'est xlNone pas none

EDITION: Je me permets d'ajouter des endives (mon péché mignon ;) )
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim notes() As Variant

notes = Array(0, 0.5, 1, 1.5, 2, 2.5)
    If Target.Columns.Count > 1 Then Exit Sub
   
    'De 18 à 27
    With Target
   If .Column >= 3 And .Column <= 7 Then
        If .Row >= 18 And .Row <= 27 Then
            Cells(.Row, 3).Resize(, 5).Interior.ColorIndex = xlNone
            .Interior.ColorIndex = 3
            Range("N" & .Row) = notes(.Column - 3)
        End If
    End If
   
    'De 33 à 40
   If .Column >= 3 And .Column <= 8 Then
        If .Row >= 33 And .Row <= 40 Then
            Cells(.Row, 3).Resize(, 6).Interior.ColorIndex = xlNone
            .Interior.ColorIndex = 3
            Range("N" & .Row) = notes(.Column - 3)
        End If
    End If
    End With
End Sub

EDITION: Bonsoir Robert
 
Dernière édition:

Fo_rum

XLDnaute Accro
Re : Code vba...un peu d''aide svp

Bonsoir,

@Staple : tes endives avec une sauce personnelle.
Code:
Dim Li As Long, Col As Byte
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Li = Target.Row: Col = Target.Column
    If Not Intersect(Target, Range("C18:G27")) Is Nothing Then suite 5
    If Not Intersect(Target, Range("C33:H40")) Is Nothing Then suite 6
    Cells(Li, 1).Select
End Sub
Private Sub suite(n)
    Cells(Li, 3).Resize(, n).Interior.ColorIndex = xlNone
    ActiveCell.Interior.ColorIndex = 3
    Range("N" & Li) = Array(0, 0.5, 1, 1.5, 2, 2.5)(Col - 3)
End Sub
 

Bebere

XLDnaute Barbatruc
Re : Code vba...un peu d''aide svp

bonjour à tous
Staple
amour de l'endive(chicon) partagé
une préparation,cuire dans du beurre,salé,poivré
ajouté un peu d'eau,couvrir
vers la fin saupoudré de sucre et laissé un peu caramélisé
à bientôt
 

Fo_rum

XLDnaute Accro
Re : Code vba...un peu d''aide svp

Re,

et avec une préparation* des plus concentrées ?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("C18:G27,C33:H40")) Is Nothing Then Exit Sub
    Cells(Target.Row, 3).Resize(, 5 - (Target.Column = 8)).Interior.ColorIndex = xlNone
    Target.Interior.ColorIndex = 3
    Cells(Target.Row, 14) = Array(0, 0.5, 1, 1.5, 2, 2.5)(Target.Column - 3)
End Sub
* moins savoureuse et plus difficile à suivre que celle de Bebere :) !
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom