Variation par clics successifs

Mickmagmicmac

XLDnaute Nouveau
Bonjour à tous,

je cherche désespérément à adapter ce code qui par simple clic copie un "V" et colorie la cellule en vert. (Puis recopie sur une autre feuille)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target = "V"
Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = xlNone, 4, xlNone)
Target.Copy Destination:=Feuil7.Range(Target.Address)
End Sub

Mon idée serait qu'au prochain simple clic, si il y a "V" alors la cellule deviendrait rouge avec un "N"
J'ai alors écrit :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = "" Then
Target = "V"
Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = xlNone, 4, xlNone)
Target.Copy Destination:=Feuil7.Range(Target.Address)
Else
If Target = "V" Then
Target = "N"
Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = xlNone, 3, xlNone)
Target.Copy Destination:=Feuil7.Range(Target.Address)
Else
Target= ""
End If
End If
End Sub

Nul et surtout débutant, j'ai désespérément besoin d'aide.
D'avance merci, simple lecteur ou sauveur !

Mick
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Variation par clics successifs

Bonsoir Mick, bonsoir le forum,

Essaie comme ça :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = "" Then
    Target = "V"
    Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = xlNone, 4, xlNone)
    Target.Copy Destination:=Feuil7.Range(Target.Address)
ElseIf Target = "V" Then
    Target = "N"
    Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = xlNone, 3, xlNone)
    Target.Copy Destination:=Feuil7.Range(Target.Address)
Else
    Target = ""
End If
End Sub
 

Mickmagmicmac

XLDnaute Nouveau
Re : Variation par clics successifs

Bonsoir,

j'avais posté mais le forum a été restauré et mon message a disparu !
Ainsi que celui de Papou-net ! Ouf j'ai pu le lire auparavant !

Donc je disais d'abord merci à Papou-net pour son code bien différent du If/Then/Else initial.
J'ai finalement opté pour ce code, sans vouloir vexer Robert qui m'a permis une avancée considérable.

J'ai ajouté une condition sur les colonnes et sur une cellule vide ou au contenu inadéquat, et j'ai adapté le code à mon fichier.
Voilà la version finale que j'utilise, inspirée du code fourni par Papou-net, j'y ai inséré quelques commentaires.
En espérant satisfaire les éventuels intéressés, simple retour après l'aide dont j'ai bénéficié.
Encore merci à Robert et Papou-net.

Mick

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$V$20" Then Exit Sub
If Target.Column > 20 Then Exit Sub

'par défaut les cellules contiennent NE (non évalué)
Select Case Target
Case Is = "NE"
Target = "V"
Target.Interior.ColorIndex = 4
'la cellule contient alors V (validé)
Case Is = "V"
Target = "NA"
Target.Interior.ColorIndex = 3
'la cellule contient alors NA (non acquis)
Case Is = "NA"
Target = "NE"
Target.Interior.ColorIndex = 0
Case Else
Exit Sub
'Ne rien faire si la cellule ne contient ni V ni NA ni NE
End Select
Target.Copy Destination:=Feuil7.Range(Target.Address)
Range("V20").Select
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz