sur change couleur - copier dans autre feuille

  • Initiateur de la discussion CAPRI_456
  • Date de début
C

CAPRI_456

Guest
bjour tous,

suis nouveau et recherche solution ,

J'ai un tableur dans lequel , l'affectation d'une couleur à une cellule ou plage devrait inscrire le contenu(texte) de celles ci dans une autre feuille.

exemple :
feuil 1 ...color B3;C4--feuil2..texte C2;D3
feuil 1 ...color B14;C15--feuil2..texte C4;D5
feuil 1 ...color B18;C24--feuil2..texte C6;D12
etc... pour autant que le contenu s'ajoute en feuil 2 sous forme de bloc. (lignes a la suite des autres)

mais si je supprime la coloration d'une plage par la suite en feuil 1 , la feuil 2 se modifie automatiq et le bloc se reconstitue automatiquement

Merci pout votre contribution [file name=KWESSAI_20060305141718.zip size=11963]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KWESSAI_20060305141718.zip[/file]
 

Pièces jointes

  • KWESSAI_20060305141718.zip
    11.7 KB · Affichages: 21

CAPRI_456

XLDnaute Occasionnel
bsoir tous,
en parcourant les questions similaires sur le forum j'ai trouvé une contribution intéressante: 'vba pour recopie conditionnelle' du 23/2/06 , question pour laquelle THIERRY apporte une solution sous forme algo.

Serait-il donc possible dans la condition de remplacer
-- la condition valeur = 1 en col A1 et suivantes
---par la condition sur changement de couleur

Si oui , comment , car VBA n'est pas ma tasse de café
le fichier de base 'amélioré' par thierry est joint à titre de support. Et donc comment réaliser cette amélioration.
Merci
:eek:
 

CAPRI_456

XLDnaute Occasionnel
avec le fichier prévu cela sera mieux [file name=XLD_Recopie_Automatique_VBA_20060305214235.zip size=14622]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD_Recopie_Automatique_VBA_20060305214235.zip[/file]
 

Pièces jointes

  • XLD_Recopie_Automatique_VBA_20060305214235.zip
    14.3 KB · Affichages: 29

CAPRI_456

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 270
Messages
2 086 681
Membres
103 370
dernier inscrit
pasval