bonsoir à tous,
je reste persévérant face à ce VBA...
donc en autodidacte , je poursuis un peu isolé..
en parcourant les archives j'ai trouvé qq chose de similaire:soit sur affectation de valeur 1 dans 1ère feuille, copie contenu cel dans 2ème feuille
Moi, il me faut que la même copie dans la 2ème feuille , mais sur simple coloration de(s)la(les) cellules de la 1ère feuille.
J'ai donc manipulé le code produit pat THIERRY espérant ne pas arriver à une 'usine à gaz'...
mais au moment de le tester;;;;;rien ne se passe
voici ce code et le fichier est joint en annexe:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'........... Déclaration de Variables
Dim WSCible As Worksheet
Dim Plage As Range, Cell As Range
Dim C As Byte, L As Integer, x As Integer
'............ Définition (Set) d'Objets qui vont être acteur dans l'algo
Set WSCible = Worksheets('CV(VSD ou VP)')
Set Plage = Range(Range('B2:C2'), Range('B5000:C5000').End(xlUp))
'.............NB Plage est Dynamiquement constitué
L = 2
'.............NB 2 est la première Ligne de la Feuille 'CV(VSD ou VP)'
'.............Condition : Si on change une valeur uniquement dans une cellule de la Colonne 'B:C'
'.............Pour ce faire si l'Intersection de la Target est Rien on sort de ce code...
If Application.Intersect(Target, Range('B:C')) Is Nothing Then Exit Sub
Leon 'Le Nettoyeur !!
'.............Début de boucle (Extérieure) pour chaque cellule de la plage définie plus haut
For Each Cell In Plage
'..............Condition : Si la Couleur de la cellule = 6 (soit le jaune)
If C.Interior.ColorIndex = 6 Then
'..............Début de seconde Boucle(Intérieure) pour les Colonnes B à C (2 à 3) de 'Detail'
For C = 2 To 3
'..............envoie des données vers feuille 'CV(VSD ou VP)'
'..............L(Ligne) étant 4 au premier passage, x étant C(Colonne) avec le décalage décrit ci-dessus
'le plus quatre étant le fait que l'on démarre en colonne 'E' sur 'Résulats'
'soit 4 de plus que 'B' sur 'Grille saisie'...
'Cells avec Cell.row et C signifiant La Cellule de 'Grille saisie' sur ligne Scannée
'par la Boucle For Each Cell, et sur la Colonne C par la boucle For Each C
WSCible.Cells(L) = Cells(Cell.Row, C)
ActiveCell.Value = ActiveCell.Value
'...............Passage au C suivant dans la Boucle intérieure
Next C
L = L + 1
End If
Next Cell
End Sub
Private Sub Leon()
Dim L As Integer
Dim C As Byte
For L = 2 To 100 Step 3
For C = 2 To 3
Worksheets('CV(VSD ou VP)').Cells(L, C).ClearContents
Next
Next
End Sub