Mickmagmicmac
XLDnaute Nouveau
Bonjour à tous,
voilà un moment que je sèche sur ce problème sans trouver de solution, sur ce site notamment. J'ai joint un mini fichier reprenant la partie concernée.
Il existe un code dans la feuille qui me permet de changer le contenu de certaines cellules via un simple clic. Le hic est que pour appliquer des changements successifs, il me faut sélectionner entre deux une cellule "temporaire". (A1 par exemple !) Tout ça j'ai réussi !
Mais mon fichier initial fait plusieurs milliers de lignes... Revenir à A1, c'est faire défiler x lignes !
Mon idée est de choisir comme "cellule temporaire" la première cellule orangée (jamais modifiée) supérieure à la cellule sélectionnée. Par exemple, F12 si j'ai cliqué en F17.
Le problème : mes cellules F16 à F13 sont alors modifiées !!! Et je ne veux pas ! Snif !
Un p'tit coup de main me ravirait !
Merci quoi qu'il en soit de m'avoir lu.
Mick
voilà un moment que je sèche sur ce problème sans trouver de solution, sur ce site notamment. J'ai joint un mini fichier reprenant la partie concernée.
Il existe un code dans la feuille qui me permet de changer le contenu de certaines cellules via un simple clic. Le hic est que pour appliquer des changements successifs, il me faut sélectionner entre deux une cellule "temporaire". (A1 par exemple !) Tout ça j'ai réussi !
Mais mon fichier initial fait plusieurs milliers de lignes... Revenir à A1, c'est faire défiler x lignes !
Mon idée est de choisir comme "cellule temporaire" la première cellule orangée (jamais modifiée) supérieure à la cellule sélectionnée. Par exemple, F12 si j'ai cliqué en F17.
Le problème : mes cellules F16 à F13 sont alors modifiées !!! Et je ne veux pas ! Snif !
Un p'tit coup de main me ravirait !
Merci quoi qu'il en soit de m'avoir lu.
Mick
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 11 Then Exit Sub
If Target.Row < 4 Then Exit Sub
If Target.Row > 19 Then Exit Sub
Select Case Target
Case Is = "x"
Target.Font.ColorIndex = 1
Target = "A"
Target.Interior.ColorIndex = 5
Case Is = "A"
Target = "B"
Target.Interior.ColorIndex = 4
Case Is = "B"
Target = "x"
Target.Interior.ColorIndex = 0
End Select
Do While Target.Interior.ColorIndex <> 45 'couleur orange clair
ActiveCell.Offset(-1, 0).Select
Exit Do
Loop
End Sub