2010-11-02 3 views
1

Je dois être en mesure de faire ce qui suit.Vérifiez si la cellule est d'une certaine couleur, si oui, copiez les données

Pour une colonne donnée de données (longueur de la colonne peut variable selon jours la charge de travail)

Vérifiez si la première cellule est de couleur verte (dans Excel .colour = 5296274)

S'il est alors copier des données et coller des données (spéciales) dans une colonne différente sur la même ligne

Répéter l'exercice complet pour chaque cellule de la première colonne, jusqu'à ce que toutes les cellules de la première colonne contenant des données aient été vérifiées et que le processus soit terminé .

+0

Quelle version?. Couleur de fond ou de premier plan? –

+0

regardez ici http://www.meadinkent.co.uk/excel-color-calcs.htm –

+0

Excel 2007, couleur de fond – Benji2010

Répondre

0

Essayez quelque chose sur ces lignes. Ce code n'a été mis dans aucune feuille ou jamais testé. En outre, il contient du code psuedo que vous devrez remplacer

Dim myspecifiedcolor= ' put your color here 
Dim countOfCells = worksheetfunction.counta("A:A") 
Dim cellsProcessed as integer 
cellsProcessed = 0 
<loop over all cells in column A> 
    if <cell.backgroundcolor = myspecifiedcolor> then 
     range("P"+cstr(<current cell>.row)).value = <current cell>.value 
     cellsProcessed = cellsProcessed +1 
    end if 
    if cellsProcessed = countOfCells then 
    <exit loop> 
    end if 
    'move to next cell 
<end loop> 

Ce serait votre choix sur la façon de boucler sur les cellules. Vous pouvez utiliser la ou une boucle régulière while/for.

0

Après 6 ans, ceci est la réponse à cette question:

Option Explicit 

Dim i As Integer 
Dim wsh As Worksheet 
Dim mycolor As Long 

Sub Color_identifier() 

Set wsh = ActiveSheet 
mycolor = 5296274 
i = 1 

While wsh.Cells(i, 1) <> "" 
    If wsh.Cells(i, 1).Interior.Color = mycolor Then wsh.Cells(i, 2) = wsh.Cells(i, 1).Value 
    i = i + 1 
Wend 

' 
End Sub 
Questions connexes