Bonsoir,
gmb, bonsoir,
si je puis me permettre :
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' déclaration de variables
Dim col&, i&
' annulation du double clic qui normalement passe la cellule en mode de saisie de donnée
Cancel = True
' on ne met plus à jour l'affichage de l'écran
Application.ScreenUpdating = False
' si plus d'une cellule sélectionnée on quitte
If Target.Count > 1 Then End
' si la cellule cliquée est en intersection avec la plage des noms des mois
' en réalité ici c'est une double négation :
' opposé (Not) du résultat de la non (nothing) intersection entre la cellule cliquée et la plage des noms des mois
If Not Intersect(Target, Range("E1:P1")) Is Nothing Then
' on récupère le numéro de la colonne de la cellule cliquée
col = Target.Column
' on boucle sur les lignes allant de la 5 à la dernière ligne dont la cellule est "non vide"
' on récupère ce numéro de ligne avec ceci : Cells(Rows.Count, col).End(xlUp).Row
' on par de la cellule tout en bas de la feuille (Rows.count)
' et on remonte jusqu'à trouver une cellule non vide .End(xlUp)
' et on récupère son numéro de ligne (.Row)
For i = 5 To Cells(Rows.Count, col).End(xlUp).Row
' si la cellule en cours de test a un fond bleu
If Cells(i, col).Interior.Color = RGB(0, 112, 192) Then
' on passe la cellule sans couleur de fond
Cells(i, col).Interior.Color = xlNone
' ici je met en commentaire la copie/collage valeur
' ' on copie la cellule
' Cells(i, col).Copy
' ' on colle sur cette même cellule sa valeur ce qui efface la formule
' Cells(i, col).PasteSpecial xlPasteValues
' ou plus simplement
Cells(i, col) = Cells(i, col)
End If
Next
' on sélectionne la cellule se trouvant en dessous de celle qui vient d'être double cliquée
' c'est inutile car on joue avec le double clic et non pas le Selection.Change
' Target.Offset(1, 1).Select
' du fait de ne pas faire de copie, cette ligne est rendue inutile également
' Application.CutCopyMode = False
End If
End Sub
@ bientôt
LouReeD